Facebook は今年、新しいプログラミング言語 Hack をリリースしました。どう分析しても、この言語は人気のある PHP に似ています。静的型付けなど、その機能の多くは、PHP 開発者が長年要求してきたものと一致しています。構文はさておき、Hack は実際には PHP ではありません。 Hack は Facebook の仮想マシン HHVM 上で動作しますが、競合他社は従来の PHP Zend エンジン上で動作します。
Facebook はなぜ Hack を構築したのですか?
まず第一に、Facebook の内部コードは PHP で書かれています。同時に、Facebook は学習と使用が簡単な言語であるため、多くの新しい開発者が PHP を使用できるようにすることができます。もちろん、Facebook の PHP コードは、運用環境にプッシュされる前に C 派生コードに変換される可能性があります。問題の核心は、Facebook が新しい人材を惹きつけ、開発者の効率を向上させるために PHP 言語に大きく依存しているということです。
厳格なタイプ
残念ながら、PHP を Facebook の規模で実行することは不可能です。 PHP は型付けが緩い言語であるため、多くの型エラーは実行時に検出されない可能性があります。これは、Facebook が型エラー チェックを実行するために早い段階で多くのテストを作成するか、起動後のランタイム エラーの再構築により多くの時間を費やす必要があることを意味します。この問題を解決するために、Facebook はランタイムの戻り値の型を攻撃するための厳密な型付けを追加しました。厳密な型指定により、関連する多くの単体テストが不要になるだけでなく、開発者が開発プロセスの早い段階で型関連のバグを発見する意欲も高まります。
インスタント型チェック
開発中にエラーを見つけやすくするために、Facebook の HHVM エンジンには、ローカルで実行されているときにハック コードを監視する一種のチェック サーバーが含まれています。開発者のコード エディターと IDE は、この型チェック サーバーを使用して、コード開発中に構文または型関連のエラーを即座に報告できます。
既存の PHP コードはどうですか?
既存の PHP コードのほとんどは Facebook の HHVM エンジン上で実行されます。Facebook の既存のコード ベースは主に PHP コードであるため、これが必要になります。結局のところ、Hack コードにはいくつかの異常があり、たとえば、一部の言語機能 (変数など) や Zend 拡張機能はまだサポートされていません。時間が経つにつれて、HHVM はできるだけ早く Zend エンジンとのパリティ検証も実装する予定です。
さらに、Facebook によって作成された Hack 言語は、従来の PHP コードから徐々に移行されています。
これは、PHP が「死んだ」ということですか?
Hack がそれほど優れているということは、PHP の時代も終わりに近づいているということでしょうか?答えはもちろん「いいえ」です。従来の PHP Zend は専門組織によって管理およびレビューされており、そのような投票は 100% 公正かつオープンに行われます。
しかし、Hack は非常に優れており、Hack には独自の機能が多数あるため、従来の PHP 言語になることはできません。 Facebook の HHVM エンジンは Zend エンジンよりも優れたパフォーマンスを備えており、HHVM エンジンの継続的な改善に専念する社内開発者が多数います。
これは、PHP の Zend エンジンが消滅するという意味ではなく、Zend エンジンと HHVM エンジンは共存可能です。競争は良いことであり、Zend と HHVM の両方が互いの強みを活かし合うことを願っています。
Facebookに責任はあるのか?
Hack は Facebook の製品であり、主に Facebook エンジニアから生み出されました。現在、一般の人々はそれが発表されることを期待していますが、Hack と HHVM は依然として Facebook との継続的な投資と関与に大きく依存しています。
未来
Hack と HHVM の優位性により、Hack は PHP の未来であるとある程度考えています。
よりも優れています