昨日は久しぶりに、オンサイトでのミートアップに参加してきた。内容としては、WASMに対する理解を深める内容のもの。[^1] 内容もさることながら、少し昔の話を思い返して、当時無駄だと思ったことがどこで活きてくるのかわからない(使い古された表現だけど"Connecting the dots"というやつ)、を感じる機会だったので振り返る。 人気であることだけが重要なわけではないという前提を置いた上で、今では、フロントエンドのフレームワークの人気といえばReact、それを使わない事情があるとするならVueというのが流れなのかなと個人的には認識している。 5年前はどうだったか。 あの頃はもう少し拮抗していて、そこにはAngular(AngularJS)がいた。そして当時の自分はそこにBetしていた。 もう少しだけ昔話を。 このAngular、触り始めた頃はAngularJSという名称だった。ただ、フレームワークの進化の過程で互換性のない変更を加えたいというコミュニティの方針が出てきていて、その結果として、元々あった(v1と呼ぶこともある)をAngularJS、それ以降のバージョンをAngularと呼ぶようになった。 自分が触っていたのはv1からv6の頃までだったかと思う。 ちょうど、Angularに新しいレンダリングやビルドのシステムとしてIvy(Apache Ivyかと思ったら違ったのでびっくりした)やBazelの導入がされてまた新しい風が吹いた頃に、自分の中のフロントエンド熱は冷めた。周りではReactとVueが多数だったこともあり、「勝ち馬」に乗り損ねた、というのも遠因にはなっていると思う。そして思った、ああ、投資する技術選定に失敗したな、と。 話を戻してミートアップ。 WASMの話をする中で、聞き覚えのある内容をいくつも耳にした。 「JITではなくAOTで高速化を......」 「Tree-shakingをマニュアルでやるなんて......」 このミートアップの参加者の基本プロファイルはRustの開発者。Rustの前はC, C++, Pythonあたりを触っていた人が多いという印象。その言語の文脈では、あまり耳馴染みのない言葉のように思う。[^2] でも、自分にはわかる。わかる。 Angularで散々見てきたからわかるんだ。AOTすることで読み込...
ソフトウェアエンジニアリング的なこととかいろいろ