JavaScript開発者にとって、選択肢が増えることは難しい選択を意味する

JavaScript開発者にとって、選択肢が増えることは難しい選択を意味する

プログラミング言語を学ぶことは、ソフトウェア開発者になるためのほんの一部に過ぎません。今日のソフトウェア開発には、開発者がコードを書くために使用するプログラムから、それを実行するクラウドコンピューティングサービスに至るまで、ツールのエコシステムが関わっています。ツールを選ぶことも仕事の一部です。

フロントエンド開発者、つまりブラウザで実行されるコードを書く開発者は、サーバー上で実行されるコードを書くバックエンド開発者に比べて、これまで選択肢が限られていました。ブラウザは主にJavaScriptプログラミング言語で実行されますが、バックエンド開発者は膨大な数のプログラミング言語と関連ツールから選択しなければなりません。

フロントエンド開発者の作業を楽にするためのツールが爆発的に増える中で、状況は変わりつつあります。新しいツールは良い面と悪い面があります。選択肢が増えるのは良いことですが、ツールの人気はすぐに下がったり、人気が下がったりすることもあります。

開発者は現在、アプリケーションフレームワーク(再利用可能なパーツのバンドルであり、ソフトウェア構築のための全体的な構造)に大きく依存しています。JavaScriptコードパッケージの管理ツールを開発するNPMが収集したデータによると、2015年初頭、最も多くダウンロードされたJavaScriptフレームワークはBackboneでした。しかし、同年末までに、Backboneは当時Facebookが発表したばかりのReactライブラリに追い抜かれました。それから4年も経たないうちに、Backboneは5位にまで落ちぶれ、NPMが先月発表したデータによると、過去2年間で利用が急増している新興のVueなどの新しいフレームワークに後れを取っています。

この混乱は、開発者と雇用主の両方に課題をもたらしています。アリゾナ州スコッツデールのコンサルティング会社でフロントエンドエンジニアとして働くジョー・プレヴィテ氏は、多くのプログラマーと同様に、余暇にサイドプロジェクトに取り組むことで最新技術の習得に努めています。しかし、彼はしばしば、自分が間違ったことに集中しているのではないか、あるいは手を広げすぎているのではないかと不安を感じています。「どんなキャリアにおいても、目標はそのスキルのエキスパートになることです」と彼は言います。「JavaScriptで作業していると、次々と新しいライブラリやフレームワークが登場します。Reactを深く掘り下げたかと思えば、次のプロジェクトで全く別の分野に切り替え、ある技術の深い専門知識を身につける代わりに、Reactの学習に6ヶ月も費やさなければならないこともあります。」

これは、開発者を惹きつけ、ソフトウェア開発に使用するツールが今後何年にもわたってサポートされるよう保証する必要がある雇用主にとっても課題です。「水晶玉を覗き込むようなものです」と、チーム管理ソフトウェアを開発するKoanのCEO兼共同創業者であるマット・タッカー氏は言います。「何年経っても何が残っているかに賭け、技術的な考慮とコミュニティへの配慮のバランスを取る必要があるのです。」

なぜこんなに複雑なのでしょうか?

暗号通貨企業MyBitのCTO、ホセ・アギナガ氏は、2016年に広く共有された記事の中で、現代のJavaScript開発の混乱ぶりを鮮やかに描き出しました。記事の中で、彼は数年JavaScriptに注目していなかった開発者と、最新のトレンドに精通した開発者との架空の会話を描いています。あまり注目されていない開発者は、サーバーからデータを取得してWebページに表示したいと考えており、同僚からGrunt、Gulp、Broccoliといった新しいツールを使うことを提案され、次第に苛立ちを募らせていきます。

画像にはテキスト、文書ページ、チラシ、紙、広告、パンフレット、ポスターが含まれる場合があります

Jose Aguinaga による 2016 年の 2 人の JavaScript 開発者間の架空の会話の一部です。

ホセ・アギナガ

この記事は風刺的なものだったが、言及されているツールは現実のものだった。アギナガの架空のヒップスターによる提案はおそらくやり過ぎかもしれないが、それらのツールを使う理由の多くは、より大規模なプロジェクトであれば納得できるだろう。「私たちが構築しているソフトウェアがより複雑になっているため、ツールもますます複雑になっている」とタッカー氏は言う。

教育サイトFreeCodeCampの創設者クインシー・ラーソン氏は、これはフロントエンドの仕事において比較的新しい現象だと語る。歴史的に、JavaScriptは主にウェブページをインタラクティブにするために使われてきた。開発者は、ユーザーがフォームに記入するための手順を案内したり、デジタルフォトアルバムをめくったりするコードを書いても、ページが再設計されるまでは、そのコードをすっかり忘れてしまうことが多かった。しかし今日では、Koan、プロジェクト管理アプリTrello、職場向けチャットアプリSlackといった、ブラウザ上で動作するデスクトップスタイルのソフトウェアの開発を求められることが増えている。

こうした複雑なアプリケーションでは、開発者チームが共同でコードを作成し、ユーザーがバグを発見するたびに更新し、時間をかけて新しい機能を追加していく必要があります。JavaScriptツールの安定版は、プログラマーが共通の機能をゼロから作り直す手間を省き、他の人がコードを理解・修正しやすくし、大規模なコードベースにおけるバグの発見を容易にすることで、プログラマーの負担を軽減することを目指しています。

開発者は1990年代半ばからバックエンドプログラミング向けにこのようなツールを開発してきましたが、フロントエンド開発者は基本的に追いつこうとしている状況です。JavaScriptツールの盛衰は、バックエンドの先行ツールの盛衰を、圧縮されたタイムラインで模倣しているのかもしれません。

この混乱は、他のプログラミングトレンドによってさらに悪化する可能性があります。KoanのCTO、アーレンド・ネイラー氏は、「関数型プログラミング」の人気が高まっていると指摘しています。これは、プログラムのある部分のコードが、同じプログラムの別の部分のコードに悪影響を与える可能性を低くするものです。FacebookのReactは、ソフトウェアの複雑化に伴い普及が進む関数型プログラミングをサポートするツールの一つです。

未来のためのスキルを学ぶ

この不安定さが、一部のマネージャーに社外のツールの使用を躊躇させる原因となっています。クラウドコンピューティングのスタートアップ企業BeginのCTO、ブライアン・ルルー氏は、同社はJavaScriptフレームワークやその他のサードパーティ製ツールへの依存を可能な限り避けるよう努めていると述べています。Beginがこれらのツールを全く使用していないわけではありませんが、ライブラリの新バージョンが古いコードを壊してしまう可能性は、たとえ製品開発の迅速化には役立つとしても、長期的には開発者の作業負担を増やす可能性があるとルルー氏は指摘しています。

とはいえ、Reactのようなライブラリは標準になりつつあり、労力を節約できるという点では一定の合意が得られています。ネイラー氏によると、Koanチームは社内で簡単に機能を再現できる場合はライブラリを使用しませんが、チームはReactや関連ツールに依存しています。CTOも開発者も、テクノロジーを選択する際には、プロジェクトを支えるコミュニティの規模を重視すると語っています。高品質なツールであっても、バスに轢かれる可能性のある開発者が1人しかいないようなプロジェクトでは、そのプロジェクトに賭けることは難しいでしょう。

予測不可能な状況に対処するため、フロントエンド開発者は特にJavaScriptにおいて、しっかりとしたプログラミングの基礎を身につけることに重点を置くべきだという点では、ほぼ全員が同意しています。「基礎をマスターしてしまえば、これらはすべて単なるブランド名の違いに過ぎません」とルルー氏は言います。例えば、プレヴィテ氏は当初Vueでの経験があったにもかかわらず、Reactを扱う仕事に就くことができました。

しかしアギナガ氏は、基礎を熟知しているだけでは不十分だと主張する。彼は、Reactのような、異なる思考法を必要とする最新のツールに精通した開発者を求めている。「書類上は優秀そうに見えても、Reactに触れたことがないという理由で採用しなかったことが何度もあります」と彼は言う。「入社初日からReactを使って生産性を発揮できる人材が必要なのです。」

採用担当者がアギナガ氏ほど厳しくないとしても、開発者は同じスキルセットに永遠に頼り続けることはできません。幸いなことに、ほとんどの開発者は一夜にして職を失うことはありません。例えば、Backboneでソフトウェアを開発している企業は今でも多く、それらの企業は何年もそのソフトウェアを保守する開発者を必要としています。そのため、開発者は他のツールでスキルを磨く時間を持つことができます。

残念なことに、開発者は新しいことを自分の時間を使って学ばなければならないことが多い。「開発者の友人はあまりいませんし、なぜ私が家で独学に多くの時間を費やしているのか理解してくれません」と、ギリシャのテッサロニキでフロントエンドプログラマーとして働くエレフテリア・バトソウさんは言う。

「最初は、こんなに新しいことばかりじゃなければいいのにって思っていました」と彼女は言います。でも、絶え間ない変化こそが、この仕事の面白さの一部なんです。「物事が進化していくのが好きなんです。確かに大変ですが、本当に好きなんです。」


WIREDのその他の素晴らしい記事

  • ケリー・スレーターの人工サーフプールは本当に波を起こしている
  • 補聴器メーカーがアップルの戦略を模倣
  • 衝撃を吸収するベッドが超スムーズなバスの乗り心地を約束
  • フォトエッセイ:ウラジミール・プーチン大統領との巨大な家族写真
  • Twitterの使い方:新規ユーザーのための重要なヒント
  • 次のお気に入りのトピックについてさらに深く掘り下げたいですか?Backchannelニュースレターにご登録ください。