人気の PHP フレームワーク Laravel の発明者兼メンテナーである Taylor Otwell 氏は、過度に複雑なコードとフレームワークを回避するリスクに対して警告を発しています。
開発者は時々、「変更がそれほど容易ではない複雑な大聖堂」の構築に惹かれることがある、と同氏は、Ruby on Rails コンサルタント会社 Planet Argon が制作する maintainable.fm のポッドキャスト シリーズで語った。
ソフトウェアは「シンプルで使い捨て可能、そして変更が容易」であるべきだと彼は述べた。中には真に複雑な問題もあるが、一般的に、開発者がLaravelやRuby on Railsといったフレームワークで標準的なドキュメント化された方法を超えた「巧妙な解決策」を見つけた場合、「それは一種の匂いのようなものだ」。
コード臭 ( The Reg の読者の中で初心者の方のために説明すると) とは、正常に動作するものの、後日問題を引き起こす可能性があるコードに対して開発者が使用する用語です。
オットウェル氏は自分自身を「ごく普通のプログラマー」と表現したが、他の多くの人も同様で、基本的な問題をできるだけ迅速かつ効率的に解決していると考えている。
彼は2010年に7ヶ月かけてLaravelを開発し、PHP向けのRuby on Railsに相当するものを作りました。既存のPHPフレームワークはJavaに偏りすぎており、オットウェルはORM(オブジェクトリレーショナルマッパー)を内蔵し、より多くの機能をすぐに使えるものを求めていました。
Laravelの一部の要素は、Razorと呼ばれるビューエンジンを持つMicrosoftのASP.NET MVCから引き継がれていると彼は述べた。「そこで、私たちのビューエンジンをBladeと名付けました。ASP.NETから直接インスピレーションを得たものです。」
このフレームワークは急速に普及し、オットウェル氏は、PHPの新規プロジェクトではLaravelかSymfonyが主流になりつつあると考えている。Symfonyは米国よりもヨーロッパで人気が高いかもしれない。WordPressもあるが、これは「独自の世界」であり、「私たちはあまり関わりたくない」と彼は付け加えた。
JetBrainsの開発者エコシステム調査によると、PHP開発者の60%以上がLaravelを使用していることがわかった。
JetBrainsの最新の開発者エコシステム調査によると、PHP開発者の61%がLaravelを使用しており、次いでWordPressが23%、Symfonyが21%となっています。Stack Overflowの最新の調査では、開発者全体(PHPに限らない)の8.9%がLaravelを使用し、Symfonyが4%となっています。WordPressはどちらよりも人気が高く、13.6%ですが、これもPHPベースのDrupalと同様に、汎用フレームワークではなくコンテンツ管理システムであるため、直接比較することはできません。
- GoogleとZedがVS Codeの魔の手からAIエージェントを解放するためのプロトコルをプッシュ
- Bun JS ツールキットに MySQL ドライバー、シークレット API、YAML などが追加されました
- GoogleがAndroidのインディー開発者を妨害、登録を強制
- 「Windowsではすべてが違う」:Zedの移植遅延が開発者間の摩擦を浮き彫りにする
オットウェル氏はLaravelオープンソースをしっかりと掌握している。「プルリクエストをマージするのは私だけです」と彼は言う。週5日、1日に10~15件のプルリクエストをマージまたはクローズするという時間的負担にもかかわらずだ。
2013年と2014年、オットウェル氏はLaravelのコアアーキテクチャを書き直しました。元の設計に限界が明らかになったためです。この書き直しによって後方互換性が失われ、この経験から彼は、今後は「非常に重要な」修正が必要な場合を除き、このような不具合は避けようと決意しました。PHP自体も含め、他のツールが不具合を起こすと、彼は苛立ちを覚えると彼は言います。
オットウェル氏は、Laravelの「設定より規約」アプローチがPHPStanなどの標準的なPHP静的解析ツールと相性が悪いという問題について質問を受けました。オットウェル氏は、Laravelに特化したサポートを提供するPHPStanの拡張機能であるLarastanというプロジェクトに言及しました。オットウェル氏によると、Laravelはもともと「PHPの動的な性質を取り入れる」ために書かれたものでしたが、現在のトレンドは強い型付けへと向かっており、今後はそれに対応していく予定です。そして今日では、「おそらくPHP開発者の大多数でさえ、強い型付けのアプリケーションをより重視しているでしょう」と述べました。
Laravelは、Laravel専用に設計されたInertiaJSなどのツールを通じてReactとの統合も進めています。Otwell氏は自身はReactをあまり書いていないと認めていますが、コミュニティからの強い要望があることを認識しています。
Laravelはどれほど優れているのだろうか? Hacker Newsでの議論では、様々な意見が飛び交い、2013年のアップグレードに問題があったことが確認されている。あるコメント投稿者は、LaravelはSymfonyよりも初心者に優しいが、「他のほとんどすべてを犠牲にしている」と述べている。しかし、この議論はオットウェル氏の主張を裏付けるものとなっている。つまり、Laravelを最大限に活用するには、その動作原理を受け入れることが重要なのだ。
このアプローチを好まない開発者は、このアプローチをうまく利用できないかもしれませんが、このアプローチが長く人気を博していることから、多くの人が望む結果を得られていることが分かります。®