はしがき
私は変な気性を持っています。いろいろなことについて文句を言います。私はこの地球上のほとんどのテクノロジーが好きではありません。
PHP は使いにくいだけでなく、私が望むものには適していないか、最も満足のいくものではないか、私の信念に反しています。私が避けたい言語の良い点も、気に入っている悪い点もすべて話すことができます。さあ、聞いてください!会話も面白くなりますよ!
php が唯一の例外です。 PHP が抽象化するほとんどすべてのものは断片化されています。言語、フレームワーク、そしてエコシステム全体を含めて混乱しています。悪口だけはあちこちに壊れているので、かろうじて挙げることができます。 PHP に関する苦情の複雑なリストをまとめようとするたびに、些細な詳細に脇道にそれてしまい、深く掘れば掘るほど、より衝撃的な事実が見つかります。
php は恥ずかしいです。とても壊れていましたが、訓練されたアマチュアはそれを賞賛しました。 PHP はいくつかの些細な改善策を講じていましたが、私はそれを忘れることにしました。
しかし、これをシステムから取り出さなければならないので、これが最後の試みです。
例え
私は何気なくメルに苦情を言っただけですが、彼女はそれを出版するよう主張しました。
PHP の何が問題なのかさえ分かりません。なぜなら、それは問題ないからです。工具箱があるように考えてください。たくさんのツール。見た目は大丈夫、標準的なもの。
ネジを外すと、奇妙な頭が 3 つ付いています。まあ、これはあなたにとってあまり役に立ちませんが、いつか役に立つでしょう。
ハンマーを取り出すと、両側に鋭い爪がありました。それでも効果はあります、つまり両端の真ん中で斜めに打つことができます。
バイスを取り出しますが、側面には鋸歯状の部分がありません。表面は平らで滑らかです。それほど便利ではありませんが、それでも機能するので、問題ありません。
続行できます。道具箱の中身は奇妙で曖昧ですが、価値がないわけではありません。全体的に大きな問題はなく、ツールはすべて揃っています。
さて、これらの道具を使っている大工がたくさんいて、彼らがあなたにこう言うと想像してください。「これらの道具の何が問題なのですか? 私たちは皆、それらを使っていますが、とてもうまくいきます!」。職人が建てた家を見せてもらいます。扉は五角形で、屋根は曲線を描いています。玄関のドアをノックするとドアが内側に落ちてしまい、あなたがドアを壊したと彼らは苦情を言います。
これは PHP の問題です。
位置
言語の生産性と使いやすさには次の性質が重要であると思いますが、PHP はそれらの性質を大規模に損なうものです。もしあなたがこのどれにも同意しないなら、私たちが同意するとは到底思えません。
言語は予測可能でなければなりません。人間の思考をコンピュータの実行に反映する媒体であるため、重要なのは、プログラムに対する人間の理解が実際に正しくなければならないということです。
言語は一貫していなければなりません。似ているものは似ていて、違うものは違って見えるはずです。言語の一部を学習すれば、残りの部分は簡単に理解できるはずです。
言語は簡潔でなければなりません。新しい言語は、古い言語からそれほど悪くない形式を継承する必要があります。 (マシンコードを書くこともできます。) 新しい言語では、新しい独自の形式を織り込むことを避けるように努めるべきです。
言語は信頼できるものでなければなりません。言語は問題を解決するためのツールであり、新しい問題を持ち込むことはできるだけ避けるべきです。いかなる「罠」も、大きな混乱を招くことになります。
言語はデバッグ可能である必要があります。何か問題が発生した場合、プログラマーはそれを修正しなければならず、私たちは必要な支援を得る必要があります。
私の立場は次のとおりです:
PHP には驚きがたくさんあります: mysql_real_escape_string、E_ACTUALLY_ALL
PHP の不一致: strpos、str_rot13
PHP には特別な形式が必要です: error-checkingaroundCAPIcalls、===
PHP の奇妙さ: ==。 for($fooas&$bar)
PHP は不明瞭です: デフォルトではスタック トレースや致命的なエラーはなく、複雑なエラー レポート
なぜこれらのカテゴリに分類されるのかを 1 つの質問でも説明することはできません。そうでないと、際限なく説明してしまいます。読者はご自身で考えていただけると思います。
このようなことについて私に話すのはやめてください
私は有利な議論をたくさん知っています。という反論もよく聞きます。これは会話を即座に停止させるだけです。こんなくだらないことを私に与えるのはやめてください。
「優れた開発者はどんな言語でも良いコードを書ける」とか、悪い開発者について私に話さないでください。 .バーバーバーバー。これでは意味がありません。優れた職人は石やハンマーを使って釘を扱うことができますが、石を使っている職人を何人見たことがありますか?優れた開発者であるための基準の 1 つは、ツールの選択が上手であることです。
何千もの例外や癖を覚えるのが開発者の仕事だなんて言わないでください。はい、コンピュータは愚かなので、これはどのシステムでも必要です。これは、システムが上限なしで異常な金額を受け入れることができるという意味ではありません。 PHP には例外があるだけでは十分ではありません。言語に取り組み始めると、実際にプログラムを作成するためにさらに労力を費やす必要があります。私のツールはアプリの作成方法に良い影響を与えません。
「それが CAPI の仕組みだ」とは言わないでください。高級言語が提供できるのはいくつかの文字列ヘルパー関数と多数の C ラッパーだけである場合、この地球上での高級言語の目的は何でしょうか?その場合は、C を使用してください。ここでは、CGI ライブラリも用意されています。
「変なことをするのは自業自得だ」なんて言わないでください。 2 つのプロパティが存在する場合、いつか誰かがそれらを一緒に使用する理由を見つけるでしょう。繰り返しますが、これは C ではありません。ここには仕様がなく、「未定義の動作」も必要ありません。
Facebook や Wikipedia が PHP を使用しているなんて言うのはやめてください。それはもう知っています。これらは Brainfuck で書くこともできますが、十分に賢く、これらをいじくり続ける限り、いつでもプラットフォームの問題を克服できます。誰もが知っているように、他の言語で書かれた場合、開発時間は半分または 2 倍に短縮される可能性があります。これらの数字だけを引き出すことに意味はありません。
神様、これ以上私からくだらないことを言わないでください!ここに挙げた点があなたの PHP の意見を傷つけないのであれば、それで構いません。ですから、オンラインで無意味な議論をするのはやめて、私が間違っていることを証明するクールでクールなサイトを開発し続けてください。
こっそり教えてください。私は Python がとても好きです。あなたが本当に聞きたくないことも、喜んで話します。完璧であることを求めているわけではありません。長所を活かして短所を避け、自分が望む最高のものをまとめようとしているだけです。