あらゆるフレームワークはやがて「言語」になる

開発者はしばしばフレームワークの機能に注目しがちです。

ルーティング、状態管理、ビルドツールなどに目が行きます。これらは重要な要素です。しかし、長く使い続けられるフレームワークにとって、機能こそが最も重要な部分というわけではありません。

フレームワークはやがて、一つの「言語」になります。

それはプログラミング言語ではありません。概念、パターン、そして意図の言語です。この言語は、コードそのものよりも価値を持つようになります。

ほとんどのフレームワークは、技術的な問題の解決策として始まります。リクエストをどうルーティングするか、コードをどう整理するかといった問題を解決するものです。この段階では、フレームワークは単なる機能のリストに過ぎません。

そして、何かが変わります。

利用者が増えるにつれ、パターンが生まれます。人々は同じ解決策や規約(コンベンション)を使い始めます。フレームワークは、人々に「考え方」を教え始めるのです。

単にAPIを学ぶのではありません。哲学を学び、前提条件を学ぶのです。

これは経験豊富な開発者に顕著に現れます。彼らを識別するのは構文(シンタックス)ではなく、メンタルモデルです。彼らはそのエコシステムの言語を話しているのです。

構文は変わります。バージョンも変わります。機能も変わります。しかし、その根底にある言語は変わりません。

共通の語彙は複雑さを軽減します。一つの用語が概念全体を説明し、一つの規約がワークフロー全体を説明します。これこそが、開発者がアイデアを迅速に伝える方法なのです。

これによって、ドキュメントの書き方も変わります。

優れたドキュメントは、語彙や概念を教えます。ユーザーがシステムの考え方を理解する助けとなります。一方、悪いドキュメントは単に機能を羅列するだけです。前者は理解へと導き、後者は暗記へと導きます。

実践的なプロジェクトが、この言語を形作ります。言語を孤立した状態で設計することはできません。それは実際の利用や、実際の摩擦の中から生まれるものです。有用なアイデアは残り、良くないアイデアは淘汰されていきます。

これはあらゆる分野で起こります。ビジネス、音楽、建築、そのすべてが言語を発展させてきました。共通の語彙があることで、コラボレーションが容易になります。

ソフトウェアを構築する際、「次にどの機能を追加すべきか」と問うのはやめましょう。代わりに、次のような問いを投げかけてみてください。

  • これは言語に適合しているか?
  • これは哲学を強化するものか?
  • これによってシステムは理解しやすくなるか?

機能はツールを作ります。言語はエコシステムを作ります。最も成功しているフレームワークは、単にソフトウェアを提供するだけではありません。アイデアを表現するための手段を提供しているのです。

出典: https://dev.to/stinklewinks/every-framework-eventually-becomes-a-language-1b4h