(jp) =
<!–
–>

この投稿は、私のニュースレターで最初にリリースされました。 この種の投稿を最初に見たい場合、およびそれらについてメールで直接私と話したい場合は、お気軽に購読してください.
ときどき、おそらく数年ごとに、誰かがテクノロジー業界に革命を起こすアイデアを思いつきます。 React、TypeScript、Tailwind、Electron、Laravel など、私たちが日常的に使用している一般的なフレームワークはすべて、かつては小さくて取るに足らないアイデアとして始まりました。
それらの枠組みのない世界を想像するのは難しいです。 それでも、15 年前に JavaScript エコシステムが今日のようになると言われたら、信じられないでしょう。
Eric Evans はかつて、私たちが今日慣れ親しんでいるフレームワークやライブラリに代わるものを想像しようとしているという話をしました。 彼は、人気のある Java 時間ライブラリーである Joda Time を見て、それが最善の解決策であるかどうか疑問に思いました。 確かに一番使われていましたが、それは「最高」という意味でもありますか? 続いて行われたのは、時間の扱い、既成概念にとらわれない考え方、ドメインの問題をゼロから解決することについての思考実験で、事前の知識やレガシーの期待に影響されることはありませんでした。
白紙の状態から始めたらどうだろう、とエリックは考えました。
まさに革新的なアイデアが生まれる場所だと思います。 現在のソリューションを当然のことと考えず、ゼロから始めたらどうなるでしょうか?
Laravel が良い例だと思います。 10 年前には、「PHP 用の MVC フレームワーク」の問題は、すでにいくつかのフレームワークによって解決されていたと言っても過言ではありません。 なぜもう1つ必要なのですか? それでも、Laravel はわずか数年で他のすべてのフレームワークを凌駕することに成功しました。 それを確認するかなりの数のデータソースがあります。 たとえば、Google トレンドで長年にわたって他の主要な PHP フレームワークと比較した Laravel を次に示します。
他にもいくつかの情報源がありますが、すべて同じ傾向を確認しています。
現実世界を 100% 正確に表現した単一のデータ セットがないことは事実ですが、これらのソースは利用可能な中で最も正確であり、すべて同じことを確認しています。競合他社と比較して問題がありましたが、人気が急上昇しました。
皮肉なことに、それは同じ人気であり、長期的にはその終わりを意味する可能性が最も高い.
エリックの思考実験で私が気に入っているのは、別の目標がなかったということです。彼は単に手元にあるソフトウェアを正直に見て、「もっと良くなるだろうか」と考えたかっただけです。
ただし、Eric のアプローチには隠れた注意点があります。彼は、レガシー コードと下位互換性を無視しながら、世界で最高のソリューションを考え出すことができます。 既存のユーザー ベースについて心配する必要がない場合は、そうです。 できる 与えられたほとんどすべての問題に対して、より良い解決策を思いつきます。
Joda Time は人気がなかった。 最高の、しかし、それは何年にもわたってユーザーとともに成長したためです。 それは信頼できるソリューションでした。確かに癖はありましたが、十分すぎるほど証明されていました。
人気のあるソフトウェアを管理することの皮肉なことに、それが人気になると、最初と同じ品質を保証することはできません。 既存のユーザー ベースに対応する必要があるため、同じ混乱を何度も起こすことはできません。 最終的には、妥協を余儀なくされます。
誕生から10年を経た今、Laravelに起きていることのような気がします。 ところで、それは悪いことではありません。 これは成熟度と安定性のしるしであり、長期にわたる価値のあるソフトウェアを作成するための 2 つの重要な要素です。
その上、Laravel は、Web アプリケーションを作成する際に発生する問題のすべてではないにしても、ほとんどを解決しました。 欠けている画期的な機能はこれ以上多くありません。 リリースごとにいくつかの優れた点がもたらされますが、絶対に命に関わるものは何もありません。 一方で、最新の PHP の追加に慣れるまでには非常に長い時間がかかります。これは、レガシー ユーザー ベースを念頭に置いておく必要があるためです。
ユーザーを満足させ、安定性を保証することにより、あらゆるフレームワーク しなければならない 彼らが最初のように破壊的であることをやめる. 彼ら しなければならない 将来どこかで別のフレームワークによって埋められる空白を作成します。
それこそが、Laravel が人気を博した理由です。他の一般的なフレームワークによって作成された空白を埋めました。 10 年前、PHP コミュニティの空白は単純さと低レベルの参入障壁でした。 それが Laravel が埋めた空白であり、非常に成功したことが判明しました。
Laravel は今日、他のフレームワークが 10 年前にあった場所と同じ場所にあります。 微妙な空白が生まれており、今後何年にもわたって着実に成長します. そこを信じます 意思 その空白が、新しいフレームワークの誕生に火をつけるのに十分な大きさになる時点になります。 そして、Laravel は今後何年にもわたって関連性を保ち続けますが (Laravel に依存する製品コードはかなり多くあります)、別の「最良のもの」が存在するでしょう。 Laravel は、他のフレームワークと同様に転換点に到達します。 jQuery、Rails、Bootstrap、Symfony、Angular と同じです。
そこで問題となるのは、誰が、何がその空白を埋めるのでしょうか?
# 一方で…
どんなフレームワークでも自分の穴を埋めることは可能だと思いますが、それには画期的な変更が必要です。 Laravel の場合、フレームワークが今日ゼロから作成された場合にフレームワークに期待できることをいくつか思いつくことができます。
- 適切なタイプのサポート (まだ改善の余地はたくさんありますが、これはすでに部分的に取り組んでいます)。
- 不必要な技術的負債を取り除く。 たとえば、Facades やその他の形式の魔法: 10 年前、ターゲット ユーザーが適切な IDE を使用していなかったり、静的分析に依存していなかったりしたときに、それらは目的を果たしましたが、PHP コミュニティは通常、別の種類のプログラミングに移行しています。
- 名前付き引数、列挙型、属性などの最新の PHP 機能を利用できます。
- 非同期やサーバーレスなどの新しい領域に挑戦する Laravel は、実際にすでにそれを行っており、PHP コミュニティ内でこの分野の最前線に立っています。
Laravel が次の 10 年ほどで自分自身の空白を埋めることができるかどうかを見るのは興味深いことです。 それがあったとしても、少なくとも部分的には驚かないでしょう。
//platform.twitter.com/widgets.js