DUICUO

今後10年間のフロントエンドオープンソース技術の展望

2020年は新たな10年の幕開けとなりました。このスタート地点に立ち、フロントエンド開発の未来を見据えると、私たちは途方もない変化と課題に直面することになるでしょう。正直なところ、次の10年間で何が起こるのでしょうか?インターネットにとっても、フロントエンド開発にとっても、10年は長すぎます。10年後の状況を想像するのは難しいですが、すでにいくつかの出来事が起こっています。

[[316406]]

TypeScript は現在、政治的に正しいアプローチですが、フロントエンド開発は最終的には言語に依存しなくなります。

TypeScriptが今後長きにわたって主流であり続けることは間違いありません。大規模なフロントエンド・オープンソース・プロジェクトのほとんどは、既にTypeScriptを採用しているか、あるいは全面的に採用を進めています。TypeScriptは、オブジェクト指向言語や強い型付け言語でしか実現できない多くの高度な機能を実現します。コード品質の向上、チームコラボレーションのコストとリスクの削減にも役立ちます。もしプロジェクトがまだTypeScriptに移行していないのであれば、今こそ行動を起こすべき時です。

しかし、オープンソースプロジェクトの質は言語自体とは直接関係ありません。TypeScriptは依然として静的型チェックを伴う弱い型付け言語であることは言うまでもありません。オブジェクト指向プログラミングは不要です。ネイティブJavaScriptでも、エレガントなカプセル化と継承を記述できます。さらに興味深いのは、WebAssembly (https://www.zhihu.com/question/362893829) のポテンシャルが真に発揮されれば、フロントエンド開発は最終的に言語に依存しなくなり、人間とコンピュータのインタラクションインターフェースの成果物となることです。

ブラウザ テクノロジーとクラウド コンピューティングの進化により、フロントエンド開発とリソース読み込みの変革が加速します。

Webpack 5が正式リリースされ、物理キャッシュによるビルドパフォーマンスの大幅な向上が図られ、短期的には主流のビルドツールとしての地位を維持しました。しかし、ESモジュールの主流化、CJSの衰退、ESM CDNの普及に伴い、ビルドツールはバンドルソリューションへと移行し、Webpackは必然的に徐々に姿を消すでしょう。特に、リクエストとレスポンスの多重化をサポートし、HTTPヘッダーフィールドを大幅に圧縮するHTTP/2の登場により、伝送効率が大幅に向上します。そうなれば、リソースファイルのマージは不要になり、ビルドツールは加速度的に進化していくでしょう。

C/SからB/Sへ、そして再びC/Sへ

歴史は常に循環し、繰り返しながら上昇していくように見えます。インターネット、特にクラウドは、ソフトウェアをクライアント/サーバー(C/S)からブラウザ/サーバー(B/S)へと導いてきました。WebAssemblyのような技術によって、クライアントサイドのソフトウェアをブラウザに低コストで移植できるようになり、すべてがB/Sへと移行しているように見えます。しかし、もう一つのトレンドも認識する必要があります。WeChat、Alipay、Facebookなど、独自のエコシステムを持つ巨大アプリケーションが、ブラウザベースのソフトウェアをクライアントに統合しつつあるのです。その背景にある代表的な技術は、ミニプログラムとPWA(プログレッシブウェブアプリ)です。PCクライアントにもミニプログラムが登場しています。Electronなどのプロジェクトの支援を受け、多くのB/Sソフトウェアサービスは、より集中的なユーザーエクスペリエンスを提供するために、独自のクライアントを立ち上げています。特に、従来はC/Sベースのサービスであり、クライアントの起動がユーザーの好みにより合致するからです。これは私たちが目撃している歴史的な循環ですが、来たるC/S時代で使用される技術は、過去のものとは全く異なります。ミニプログラム、PWA、Service Workers、Electron など、クライアント側のオープンソース プロジェクトは、今後ますます盛んになるでしょう。

新たなインタラクティブシナリオがマイクロUIを目覚めさせる

マイクロフロントエンド(https://micro-frontends.org/)は人気を集めていますが、これは本質的には、長年人気がありながらも依然として議論の的となっているマイクロサービスアーキテクチャ(https://microservices.io/)をフロントエンド開発に適用したものです。マイクロフロントエンドは、複雑なアプリケーションの開発と保守における問題をより効果的に解決するのに役立ちます。人間とコンピュータのインタラクションにおいて、複雑な製品の中でユーザーが特定の瞬間に最も必要なUIをどのように見つけるかは、依然として未解決の問題です。ユーザーは大規模なアプリの複雑なUIに迷い込むことがよくありますが、多くの場合、特定のタスクを効率的に完了できるUI、つまりマイクロUIが必要です。SF小説や映画『ファウンデーション』などでは、「情報ウィンドウ」と呼ばれる高度な技術が頻繁に登場しますが、これらはすべてマイクロUIです。AI、AR、VR、IoTの進歩に伴い、デバイスはますます人間中心になり、情報やデータの提示はますます鮮明になるでしょう。 SF にしか登場しないこれらの事柄のいくつかは、今後 10 年以内に確実に現実のものとなり、この UI 開発手法はフロントエンド開発に質的な変化をもたらすでしょう。

RPAとマシン駆動型UI

AIとIoTの時代においても、アプリケーションは専門家によって設計・開発され、モバイルを通じてユーザーが積極的に使用する必要があると主張すれば、将来生き残れる可能性は高いでしょう。

かつてゲームのチートなどに広く利用されていた古代の技術であるRPAは、AIや標準化された製品の急速な発展の中で、再び活性化し、進化を遂げています。UiPath(https://www.uipath.com/)、Zapier(https://zapier.com/)、Microsoft Power Platform(https://flow.microsoft.com/zh-cn/)、UI Bot(https://www.uibot.com.cn/)などのツールは、多くの業界の働き方を変えており、Googleアシスタントに代表されるインテリジェントアシスタントは、人々がコンピュータを使用する方法を変えています。フロントエンド開発者として、私たちはUIが人間だけでなく機械も使用するものであり、場合によっては意図を説明するだけで済む場合もあることを考慮する必要があります。これには、アプリケーションをロボットが操作できる効率的な方法が必要です。さらに、アプリケーションはもはや今日私たちが目にする物理的な実体ではなく、個々のロボットになるかもしれません。私たちは、RPAロボット作成ツールと、RPAで操作できる標準UIを提供します。ロボットと人間の両方が同時に使用できる UI を設計および実装することは、私たちが直面している大きな課題です。

グラフィックス技術はインターフェースデザインにおいて今後も注目される話題です。

脳とコンピュータをつなぐインターフェースは既に実験段階にありますが、今後10年間、人間が情報を取得する主な手段は依然として目であり続けるでしょう。グラフィカルな表現は、テキストの10倍、あるいは1万倍もの速さで、情報を明確かつ効果的に伝えることができます。これは、長い進化を経て獲得した強力な視覚的思考本能です。今後10年間、データがますます豊富になり、利用シナリオが多様化する中で、データから効率的に洞察を得ることへの需要は依然として高いでしょう。データ可視化能力モデルに最も近い専門職であるフロントエンド開発は、この分野の主力であり続けるでしょう。一方で、IoTにおける物理的なスクリーンであれ、VRやARにおける仮想スクリーンであれ、今後は新たな「スクリーン」が登場するでしょう。既に十分に開発され標準化された描画APIは、これらの新たな「スクリーン」によってサポートと採用が優先される可能性が高いでしょう。この基盤の上に構築することで、グラフィックス技術を用いた新しいUIインフラストラクチャや言語を実装することが可能になります。

フロントエンドインテリジェンス

近年、フロントエンド開発者は、ビジュアル開発、システム構築、エンジニアリングとツール、マルチプラットフォームソリューションといった手法を用いて、効率向上に努めてきました。しかし、その限界は既に訪れており、次のステップは必然的にインテリジェント機能の導入へと移行するでしょう。これは、既存のテクノロジーシステムや製品に自然言語処理や画像認識機能を組み込むことで、効率性の質的な変化を次々と生み出し、この限界を突破するものです。より大規模な視点で見ると、職場における課題解決にインテリジェント機能を活用することは、フロントエンド開発者にとって徐々に不可欠なスキルと思考様式へと変わっていくでしょう。

AIの波に乗りたくなくても、AIを受け入れ、学び始めることは避けられません。パーソナライズされたバナーやマーケティングキャンペーンページなど、多くのシンプルなアプリケーションは既にAIによって自動生成されており、フロントエンドの開発は不要です。複雑なバックエンドのフォーム、表、グラフもAPIを通じてインテリジェントに生成できるようになり、たった1行のコードとデータ入力で最適なページ実装を実現できます。デザイン案から直接ページを生成することも現実のものとなるでしょう。フロントエンドのインテリジェント化プロジェクトはますます一般的になるでしょう。始めるのに遅すぎるということはありません。しかし、始めないのは遅すぎるのです。

エンドツーエンドの研究開発

クラウドネイティブ技術とビジネスプラットフォームの機能がますます高度化するにつれ、エンドツーエンド開発においてサーバーレス機能を活用することが徐々にトレンドになるでしょう。このトレンドの背景には、2つの課題があります。1つ目は、既存のツールとプラットフォームをサーバーレスに拡張し、開発ツール、監視システム、品質システムなど、エンドツーエンドの統合的な視点を維持しながらサーバーレスをサポートする必要性です。2つ目は、フロントエンド開発者の能力と意識に対する新たな要求です。フロントエンドの役割における機能的境界と能力の範囲は必然的に変化します。

オープンソースのフロントエンド開発の将来において最も魅力的なプロジェクトは、インテリジェントなフロントエンド開発とエンドツーエンドのソリューションを基盤とするプロジェクトです。より広い視点で見ると、魅力的なフロントエンドプロジェクトには、通常、以下の2つの重要な特徴があります。

  1. 既存の関連システム上で、新たなコンセプトやアイデアが提案されるでしょう。フレームワークやビルドライブラリといったインフラが統合されるにつれて、類似した反復的なオープンソースプロジェクトは減少するでしょうが、イノベーションは止まることはありません。インフラ上で新たなコンセプトやアイデアを提案できるプロジェクトは、より多くの注目と認知を得るでしょう。
  2. 既存の関連システムを基盤として、他分野との連携が進んでいます。WebAssemblyのように、新しい技術ではないものの、新たな応用シナリオが発見されたことで、フロントエンド業界で再び注目を集めている技術もあります。今後、既存のフロントエンド技術と他技術分野を組み合わせたプロジェクトや設計は、オープンソースコミュニティからより一層の注目を集めるでしょう。