バグのないコーディングを目指した新しいプログラミング言語「Hack」をフェイスブックがリリース
Pocket

フェイスブックは、開発者がコードをもっと素早く書けるようになることを望んでいる。これを受けて同社は先週、オープンソース言語「Hack」をリリースした。同社によれば、開発者は「Hack」を使用することでバグのないコードを迅速に構築することが可能になるいう。

フェイスブックは10年前に、PHP で記述されたウェブサイトとしてスタートを切った。PHP はインタラクティブなウェブページの急速な発展を目的としたスクリプト言語だ。フェイスブック Hack チームの責任者であるブライアン・オサリバンによれば、同社の成長につれて PHP での管理は次第に難しくなり、開発者のミスを誘発するようになったそうだ。膨大なコードベースからエラーを除去するため、オサリバンと彼のチームは PHP の迅速な開発サイクルと、より堅苦しいプログラミング言語の規律性を組み合わせた「Hack」を作り出した。

facebook-hack

フェイスブックは去年一年かけて同社のコードベースのほぼ全部 Hack に移植し、先週になって Hack のオープンソース版を一般公開した。

Hack の特徴は、コードの整合性を保つためにデータ型のチェックを行う方法にある。データタイプのチェックはプログラミング言語にとって、プログラムをクラッシュさせたり、予期しない出力を発生させたりするバグを回避するための重要な機能だ。PHP のような言語はこうしたチェックを動的に素早く行うが、実行前にコンパイルを必要とするような他の言語ではこれを「静的型付け」と呼ばれる手法で行う。

「PHP の型システムはプログラムが実行されるまで何もしません。サイトを表示してみるまでは論理エラーを見つけることができないのです」とオサリバンは言っている。「Hack ではこうしたエラーのチェックを事前に行うことができるため、早めにエラーを発見することができます」

オサリバンのチームは Hack を、フェイスブックが開発した他のテクノロジー上でも動作するように設計した。例えば、PHP で書かれたコードをコンパイルされたネイティブなコードにコンバートして効率化を目指す HipHop Virtual Machine(HHVM)だ。この互換性により、フェイスブックの大部分が Hack に移行したとしても、PHP と Hack 間でスムーズに行き来させることが可能となる。

同社はブログの投稿内で、既にほとんどの PHP ファイルが有効な Hack ファイルに置き換えられたが、静的型付けと互換性のない機能はサポートしないことにしたと述べている。

伝統的に、動的型付け言語は迅速な開発を可能とする代わりに、エラーの早期発見と、特に大規模なコードベースにおけるコードのイントロスペクションを犠牲にする。逆に静的型付け言語では、セーフティーネットが提供される代わりに迅速な開発が犠牲となる。我々は、どこかに丁度いい着地点があると信じていた。

こうして Hack が誕生したのだ。我々は Hack が動的型と静的型両方の長所を兼ね備えていると考えている。だから、あらゆる規模のプロジェクトに対して有効だろうと思う。

Hack は PHP と似ており、PHP と同じソフトウェア環境で動作するとオサリバンは言っている。よってプログラマーは全てを完全にやり直す必要はなく、コードベースのうちで重要な個所だけを Hack にコンバートすることが可能だ。Hack を使えば開発者は静的型と動的型を組み合わせる(漸進的型付けと言われる手法)ことができ、プログラムを迅速かつ正確に構築することができるのだ。

画像提供:Hacklang.org

Pocket