PHP plus:P ++の提案はより厳格な方言を作成します

PHPの新しい方言であるコードネームP ++は、より高度な機能と手荷物の少ない、動的な前身のより厳密なバリアントとして開発できます。

この提案は、PHPの共同創設者であるZeev SuraskiによってPHPコミュニティに提出され、P ++、または最終的に呼ばれるものはすべて、PHPと共存しますが、PHPの歴史哲学に拘束されることはありません。P ++はフォークではありませんが、本質的により厳密であり、下位互換性を備えたより大胆なものになる可能性があります。

短いタグなど、現在「手荷物」と見なされている要素は削除できますが、複雑な機能、特に厳密な演算子や型付き変数などの厳密に型指定された言語の機能は、PHP方言に同じ複雑さを導入することなく追加できます。

PHP自体と同様に、P ++は主にサーバー側のWeb開発用です。計画されているPHP8リリースは、ジャストインタイムエンジンとC / C ++ライブラリとの相互運用性により、PHPをWeb開発を超えて拡張することがすでに期待されています。

PHPとP ++のコードの大部分は同じです。ほとんどのコードは、ソースと実行時の両方でPHPノードとP ++ノードの間で共有されます。しかし、それらは異なる実装を持っているでしょう。バイナリは同じになります。

まだ明確ではないのは、ファイルがP ++ファイルとしてどのようにマークされるかです。おそらく上部に特別なヘッダーがあります。ビルダーは、名前空間全体をP ++としてマークする方法を見つけることもできるため、フレームワークは各ファイルをP ++としてマークする必要はありません。

データ構造、Webサーバーインターフェイス、主要なサブシステム、およびその他のほとんどすべては、ファイルがPHPまたはP ++のどちらで実行されるかに関係なく、まったく同じコードになります。それでも、特定のコードの2つのバージョンを維持する必要があります。また、P ++には、PHPと比較して追加のチェックがある可能性があります。開発者は、同じアプリでPHPとP ++を組み合わせることができます。両方の方言を単一のサーバーで実行できます。

P ++が発生した場合、PHPの進化は異なります。厳密性とタイプ関連の機能は、P ++で使用される可能性があります。下位互換性のバイアスはPHPに残ります。エンジンのパフォーマンスの向上や拡張機能の開発など、関連のない機能は、P ++とPHPの両方で利用できます。

Zuraskiは、P ++言語の潜在的なオプションを指摘しています。

  • より厳格な言語の支持者には受け入れられない動的なPHPを使用する。
  • より厳密なPHPに向けて進化しており、より動的な言語の支持者には受け入れられません。
  • コードベースのフォーク、関係者全員の純損失。
  • 両方の聴衆に対応するためのソリューションを考案することは、P ++提案が試みることです。

P ++提案に関する懸念事項は次のとおりです。

  • PHPコードをP ++に変換するのは簡単ではありません。それがどれほど真実であるかは、最終的にP ++になるものによって異なります。
  • PHPツールはP ++をサポートしません。ただし、ベンダーにとっては、きめ細かいdeclare()や無制限のエディションをサポートするよりも、P ++をサポートする方が簡単な場合があります。
  • PHPの互換性を破る。しかし、PHP自体を壊すのではなく、新しい方言を介してそうする方が、より口に合うかもしれません。

P ++は、PHP上に構築されたFacebookのHack言語とは次の点で異なります。

  • ハックは単一の会社によって開発されました。
  • Hackとそれに付随するHHVM仮想マシンには、PHPの大規模な配布手段がありません。