クリスマスにただ欲しいものは…

in Vlog

(jp) =

<!–

–>

注: この投稿は、PHP の「12 月の 24 日間」アドベント イベントの一環として最初に公開されました。

実用的な懸念事項はすべて脇に置いておきましょう。結局のところ、今日はクリスマスです。 自由に選択できるとしたら、PHP について何を変更しますか?

ジェネリックまたはパイプ演算子が必要ですか? 一貫した関数シグネチャを表示したり、ドル記号を削除したりしたいと思うかもしれません。 型エイリアス、スカラー オブジェクト、名前空間関数の自動読み込み、パフォーマンスの向上、重大な変更の減少、重大な変更の増加 — リストは続きます。

しかし、私があなたに言ったら、あなたは1つだけを選ぶ必要がありました. それはどうなりますか?

私の一番の機能はこのリストにありません。 さらに悪いことに、私の一番の PHP への願いはおそらく実現しないでしょう。 しかし、最初に言ったように、実際的な懸念はすべて脇に置きましょう。 すべての夢が叶うと信じているからではありません。 しかし、夢はそれ自体が価値があり、希望を与えるからです。 やっぱりクリスマス。


別のプログラミング言語の話をさせてください。 PHP と同じように、何十年も弱者だった言語です。 魅力的な構文ではなく、パフォーマンスが低く、メソッドが乱雑で、クラスがわかりにくいものでした。 それは…JavaScriptでした。

伝説によると、それは 2 週間で書かれた言語でした。 それでも、ほとんど偶然に、これまでに見た中で最も人気のあるプログラミング言語になりました。

実際、何年もの間、開発者は JavaScript にとらわれていました。あらゆる種類のフロントエンド プログラミングを行う唯一のオプションは JavaScript でした。 誰もが貧弱な JavaScript をからかっていたにもかかわらず、他に代替手段がなかったため、それを使用するしかありませんでした。

つまり、多くの頭のいい人たちが独創的に考え始めるまでは。 アイデアは単純でした。もう JavaScript を書くのではなく、別の言語でプログラムを書き、そのコードを JavaScript に変換したらどうなるでしょうか? そうすれば、私たちのプログラムは引き続きブラウザーで動作することができますが、JavaScript の醜さと風変わりさに我慢する必要はありませんでした。

こうして歴史が書かれました。私たちは C のような言語を JavaScript のサブセット (はるかにパフォーマンスの高い最適化されたサブセット) にコンパイルしました。 それは asm.js と呼ばれていました。 これにより、ブラウザで既存のゲーム エンジンを実行できるようになりました。 Babel を使用して JavaScript を JavaScript にコンパイルしました。ブラウザーで使用できない新しい構文は、古い JavaScript バージョンに「トランスパイル」されました。 CoffeeScript のようなスーパーセットが登場しました。 彼らはより良い、より便利な構文を追加しました。

JavaScript コミュニティはますます多くの言語に変化し、JavaScript は単にコンパイルの対象になりました。

確かに、JavaScript をコンパイルするということは、ビルド ステップを追加することを意味しますが、開発者はそれに慣れているように見えました。 何よりもまず、ビルド手順がパフォーマンスのために最適化されました。次に、多くの静的機能を突然言語に追加できました。つまり、プログラムのコンパイル時にのみ実行され、実行中には実行されなかったタスクです。 TypeScript が作成され、静的型チェックが実現しました。 判明したのは、コンピューターに十分な情報 (タイプ) を提供する限り、コンピューターは間違いを検出するのに非常に優れていたということです。

JavaScript は小さなフロントエンド スクリプト言語から、世界一のプログラミング言語に成長しました。


PHPの話をしましょう。 もう十年以上書き続けています。 私は PHP コミュニティが大好きで、エコシステムが大好きで、言語が何年にもわたってどのように進化してきたかが大好きです。 同時に、PHP には成長の余地があると信じています。 そして、私は夢を見ます。

PHP が JavaScript の足跡をたどる世界を夢見ています。 それが単なるPHP以上のものになるところ。 私は、PHP 用の TypeScript を夢見ています。これは、現在でもすべての PHP コードと 100% 互換性がある言語ですが、ジェネリックと適切な静的型チェックを追加し、実行時のパフォーマンス コストを心配する必要がない言語です。 私は、現代の言語機能のすべて (またはほとんど) を備えた言語を夢見ています。それは、単純で古くて退屈な、しかし機能する PHP にコンパイルされます。

しかし、夢が叶うことはめったにありません。

誰かが言ったことがあります。 JavaScript とは異なり、PHP は それだけ バックエンド プログラミングに使用できるオプション。 また、当時の JavaScript よりもはるかに優れているとも言えます。 JavaScript がそれ自体以上のものに成長するために必要だったこれら 2 つの主要なコンポーネントは、PHP には同じようには存在しません。

そして、それは大丈夫です。 それは私の夢がおそらく非現実的であることを意味しますが、それはまたもっと重要なことを意味します.

最近気づいたのは、PHP はすでに素晴らしいものだということです。 人々はすでにそれを使って素晴らしいものを構築しています。 確かに、最新かつ最高のプログラミング言語に比べて PHP はつまらないかもしれません。非常識なパフォーマンスが必要な 0.1% のエッジ ケースのために何かを構築する場合は、別の言語を使用する必要があるかもしれません。 PHP のスーパーセットという私の夢は、多くのアプローチの 1 つかもしれませんが、それが実現可能な唯一の道ではないことは確かです。

私の夢がなくても、PHP はうまく機能しています。 設計方法や構文のせいではありません。 それは、その最高のパフォーマンスのためでも、信じられないほどの型システムのためでもありません。 それは人が好きだから それを使って素晴らしいものを作っています。 PHP 8.2 を使用しているかどうか。 サーバーレスまたは非同期で実行しているかどうか。 OOP、FP、DDD、ES、CQRS、サーバーレス、またはそれに投げかけたい用語を書いているかどうか — 素晴らしいものを構築しています。 言語は単なるツールであるため、ボトルネックになることはめったにありません。 しかし、「PHP」は単なる言語ではなく、単なるツールでもありません。 それは .

PHP を素晴らしいものにしてくれてありがとう。 ハッピーホリデー。

//platform.twitter.com/widgets.js

関連記事

前の投稿
クモの葉: 茶色または黄色の斑点とその修正方法
次の投稿
子犬を持つ最も古い犬