長くエンジニアとして活躍するために必要な素養とは?
世の中一般的に「最新技術」というものは、常に「今までできなかったことができるようになった革新的な技術」と捉えられがちなのですが、ことIT/Web系の最新技術においては、そうともいえないなと思うことが結構あります。
IT/Web系の領域では「新しい技術」といわれるものが非常に多いです。
ここ最近ではWeb3.0やメタバース、ここ数年のスパンではAI領域など、最新技術とそれに立脚したビジネス/未来像は、様々なメディア上で絶え間なく取り上げられています。
それらメガトレンドに限らず、Web系のサービスを実装するための技術領域でも、プログラミング言語の新仕様や、開発に利用するフレームワークやライブラリの新機能、技術の使い方のトレンドなどは、まさに日進月歩で新しくなっていて、エンジニアはキャッチアップをし続けるのが大変です。
それらIT/Web系最新技術は、もちろん何らかの革新的な要素を持つことがほとんどではあるのですが、その技術が全く新しいもののように見えて、実は過去にあった同様の技術を単に焼き直しただけのもの、見せ方を変えただけのものが多くあります。
私はこれまで20年近くをエンジニアとして、または技術を活用したビジネスの場に身を置いてきたのですが、最新技術とされるものを5~10年くらいのスパンで見たときに、これは以前あった技術の焼き直しと感じる技術が少なくないと感じた経験が多くあります。
例えば、10年ほど前、私はWeb系のサービスを開発するエンジニアでした。当時はWeb界隈ではRubyやJavaScriptをはじめとした「動的型付け言語」に分類されるプログラミング言語がもてはやされていた時期で、C系やJavaなどの「静的型付け言語」は非常に古臭い、めんどくさい技術として下に見られていた雰囲気がありました。
「動的型付け言語」は一見制約が少なく、また書かなければならないソースコードが少なくなるためスマートに見えるのですが、デメリットとして、ソースコードの解釈が曖昧になるため、コードが読みにくくなりやすい、不具合が潜みやすい、入力時のエラーチェックやコード補完処理ができない、などのデメリットがあります。
当時の私としては(そして今でも)、明らかにデメリットがメリットを上回っているように感じていたのですが、Webエンジニア界隈では、静的型付け言語は古い技術として疎まれる風潮がありました。
ところがここ数年になって、動的言語として代表的な言語であるJavaScripを筆頭に、RubyやPHPなどの言語ですらも、静的型付け機能を持たせるようになってきました。
静的型付けとそのメリットを生かした機能の追加を、あたかも技術進化のように捉えられている節があるのですが、Javaなどの静的型付け言語では20年以上前から当たり前にできていたことで、そこに改めてフォーカスが当たっていることには、もやもやとした違和感があります。
他の例として、15年ほど前、一時的に流行の兆しのあったAdobeFlashの技術を利用したFlexなどは、ブラウザ上での高レベルでのインタラクションやSPA開発など、現在のWebでようやくできるようになったこと、主流となりつつあることを、当時から簡単に(現在のJavaScriptライブラリよりさらに簡単に)実装できるようになっていました。
スティーブジョブスの鶴の一声によってFlashに実質的に死刑宣告がなされ、Flashに立脚するFlexを利用できなくなったことには当時本当に絶望しかなかったですが(笑)、今日、15年前ごく簡単にできたことが改めて新技術として脚光を浴びてる現状には、いまだになんとももどかしい思いです。
IT/Web界隈では、良くも悪くも「最新技術」をファッション的に捉え、取り入れていくことがよりカッコいい、より優れているという風潮があります。
一方で、このような「最新技術」と言われている技術の本質が、一部とはいえ過去の焼き直しであったり、単に見せ方を変えるケースがあることを考えると、技術が最新であることが無条件に優れたものでもありがたいものでもなく、とりあえずどんなものなのか?と懐疑的に見る必要性を感じます。
もちろんそれが古い技術の焼き直しであっても、=価値が無い、ではありません。
同じ技術であっても、世の中の仕組みが変化する中で過去とは違った価値を出せるようになったり、過去には発揮されなかった技術のポテンシャルが大きく引き出されるケースもあります。
大事なのはその技術が新しいか古いかにあまりこだわらず、技術の持っている根本的な機能や価値を、広く視野でとらえて都度見極めることだと思います。
これまで20年近くにわたって様々なサービスやプロダクトを開発してきた中で、表面的な実装方法や実現手法は大きく変わりましたが、クライアントからの要求の本質的な部分は、実はずっと変わっていません。
技術の流行は適度に取り入れつつも、より技術の価値の本質を意識し、見極める目を育てることが、急激な技術進化に振り回されて疲弊することなく、長くエンジニアとして活躍する重要な素養の一つなのではないかと感じています。
この記事が気に入ったらサポートをしてみませんか?