いつから始まったのかはわかりませんが、ますます多くのプログラマーがPHPからGo、Java、Pythonに移行しています。もちろん、これらの間でも移行はありますが、PHPに戻る人はほとんど見かけません。この現象を考えてみると、PHPは確かに完璧なスケープゴートであることに気づきました。ロゴが象だからかもしれません。象は重荷を運ぶのが得意ですからね。
システムの問題?PHPのせい
システムがオンラインで常に問題を抱えているとき、それはPHPのせいです。ポストモーテムが必要になり、誰かが責任を取らなければならないとき、それは自分たちの無能のせいではないでしょう。だから、PHPのせいにしましょう。結局のところ、PHPは反論しません。PHPが動的言語であり、制約が緩いために見逃されがちな落とし穴が多いと非難されます。リファクタリングが必要です。
最初にコードを書いたのと同じ人たちがリファクタリングを行う場合、言語にかかわらず結果は同じになるでしょう。ただ新しい言語で古いコードを書き直しているだけで、最初の設計が間違っていたかどうかを問いません。
中にはPHPの考え方でGoやJavaのコードを書く人もいます。mainメソッドで多くのものを手動で初期化したり、Goでmap[string]interface{}を大量に定義したり、Javaでロックなしでクラスプロパティにアクセスするためにマルチスレッドを使用したりします。
高いITコスト
サーバーコストが高いのは、PHPのパフォーマンスが悪く、シングルスレッドで実行されるからです。正直なところ、多くの企業は大量のトラフィックを持っていません。1日にそんなに多くのクリック数を得る企業はほとんどありません。パフォーマンスが問題である場合、それはおそらく常に実行されている遅いクエリのせいです。C++やRUSTに切り替えても、それが魔法のように解決するわけではありません。
覚えておいてください、Facebookは動的なウェブサイトコンテンツとサーバーサイド機能を構築するために最初にPHPを使用しました。Facebookよりも多くのトラフィックを持つ企業はほとんどないでしょう。
新しいチーム
新しいリーダーが来ると、チームの一新が行われることもよくあります。多くの人が、なぜある企業のシステムが3つの異なるプログラミング言語を使用しているのかと尋ねます。通常の答えは、それぞれの言語が異なるタスクに適しているというものですが、実際の理由は、多くの企業がCTOを何度も変更しており、それぞれが自分のお気に入りの言語を持ち込んだということです。
新しい技術ディレクターが来ると、古いチームを一掃しようとします。このとき、PHPはさまざまな問題の原因として非難され、将来のビジネス展開やIPO計画を妨げているとされます。この戦術は、反対者を排除するために開発言語に関係なく使用されます。
PHPが非難され、他の言語への切り替えが提案されると、一部のプログラマーは歓声を上げるかもしれません。JavaをGoに切り替えたり、その逆を試してみてください。同じ話です。昨年、新しいCTOがGoからJavaへの切り替えを命じ、一部の同僚は匿名のフォーラムで、それが逆行だと不満を述べました。
実際には、新しいリーダーがJavaを見たら、Goに切り替えるように指示するでしょう。技術スタックの全面的な見直しは、チームを一新し、新しい方向に一致しない人々を排除するための手段に過ぎません。
KPIと昇進の足がかり
新しい技術リーダーがいなくても、このKPI駆動のOKRにこだわる時代では、誰もが自分の存在を正当化するための仕事を見つけなければなりません。どうやってチームが一生懸命働いていることを示し、毎晩遅くまで働いていることを示すのでしょうか?
PHPは完璧な足がかりになります。マネージャーは、レガシーなPHPシステムを最新の流行の言語で再構築する必要があると上層部に提案し、信頼できる人にそのタスクを割り当てます。これにより、昇進が保証されなくても、高いパフォーマンス評価はほぼ確実です。
結論として、これがPHPがしばしばスケープゴートになる理由に関する私の考えと個人的な見解です。この分析は、本当に技術駆動の企業には当てはまらないかもしれません。人々はプログラミング言語を比較するのが好きですが、最良の言語はあなたのニーズに合ったものです。言語を比較することは、スポーツスターをランク付けするようなもので、主に主観的ですが、関心とトラフィックを生み出し、結果的に多くの人々を支援します。
最後に、私が使用しているPHPの開発環境をお勧めします。ServBayは、複数のプログラミング言語とデータベースコンポーネントを備えたオールインワンの開発環境管理ツールです。PHP、Node.js、MariaDB(MySQL)、PostgreSQLが含まれています。ServBayの最も重要な機能は、存在しないドメイン(Domain)やサフィックス(TLD)をローカル開発で使用できることです。これらのドメインに無料のSSL証明書を作成し、開発者が暗号化されたHTTPS環境(例:https://api.servbay )で作業できるようにします。これにより、開発プロセスのセキュリティが向上し、ドメインとSSL証明書の投資を大幅に節約できます。