position: absolute;

もう本が出てるし!『Facebook発 新プログラミング言語「Hack」スタートアップガイド』

Facebookが2014年3月24日に「Hack」というプログラム言語をリリースしました。「Facebookは自社向けにカスタマイズしたPHPを利用しているのかー、まあ用途もはっきりしてるし最適化はしてても不思議じゃないよね。」などと思いつつも、「そもそもなんでリリースしたんだ?」というのが気になってちょっと調べてようにもまだ情報は少ないし…、と思っていたら『Facebook発 新プログラミング言語「Hack」スタートアップガイド』が出ているではないですか。なにこれ早い。なんでも世界最速の解説書だとか(2014年4月1日発売)。それはなぜ日本から?それはともかくこのスピード感を実現した関係者の皆さんに拍手。パチパチパチパチ。しかも400円。英語のドキュメント漁ったり、情報の出ているエントリーとか探してめぐることを考えればエラくお得な感じです。

書籍の内容は、著者が実際にHackをインストールして動作を確認しながら主だった特徴について書かれています。で、最後まで読んでみてなんとなく何故Facebookがこれをリリースしたのかについて考えることもできました。

Hackの特徴

本書内に書かれているHackの言語的特徴についてピックアップすると、

  • 基本はPHP
  • 静的型付けやnull許容などLL言語的要素からの脱却
  • Java的なGenericsやコレクション、型のエイリアスの採用
  • オーバーライドの改善、可変長引数の採用

という感じでしょうか。

Webアプリケーションでの採用実績が最も高いPHPをベースにしつつ、多人数での開発の際に問題になりやすい部分をJavaなどの言語から考え方を持ってきたという感じでしょうか。開発速度の向上を図っている(JavaScriptに対してのaltJSみたいなものでしょう)のだと思いますが、Webのフィールドで活躍している人たちはPHPを習得している可能性は高いですから、そこからなるべく学習コストを抑えつつも自社の開発体制に素早く対応してもらおうという狙いが見えます。

PHPも動作するHHVM(Hackの実行環境)

で、Hackの実行環境はHHVM(HipHop Virtual Machine)と言いますが、パフォーマンスの向上が大きく図られています。で、Hackではなく、PHPも動作するというものです。本書内での比較ではHackのプログラムは当然だと思いますが、HHVMでPHPを動作した場合もコマンドラインで約8倍の動作の向上が確認されています。で、Webサーバー越しにHHVMでWordPressを動作させる検証では、PHP5.5.3での動作よりも倍以上のパフォーマンスを見せています。高速化のためにいろいろと切り捨てている部分があるでしょうから何でもかんでも動くということは無いでしょうが、この辺りの情報は今後も気にしていきたいですね。

当然しっかりと検証する必要がありますが、WordPressなどポピュラーなプロダクトであれば検証スピードも早いでしょうから、場合によってはHHVMでの実行というのが今後選択肢に入ってくるかもしれません。

Facebookの狙いは?

ま、ここからは私の個人的な推測ですが、どうしてこれを公開したんだろう?ということについて考えてみました。

例えば、WordPressは利用しているけど、別にそれ以外は独自のPHPプログラムとかは利用していないというサイトは非常に多いと思います。そこで、HHVMを採用してしまえばパフォーマンスが上がるというのは大きなメリットかなと。Facebookは最近The Internetにコミットしていこうという姿勢をよく見せるので、Facebook以外のサイトのパフォーマンス向上を1つのミッションとしてこれを公開したのかなと。Facebookは仕様としてFacebook以外のページであってもFacebook内の1つのオブジェクトとして処理していこうとしているわけですから、その一つ一つのパフォーマンスが上がるのはFacebookとしてもメリットが大きいのでしょう。更にはあくまでもベースはPHPなので、Hackに書き換えてもらえば(本書に書き換えの手順もあります)より高速に動作すると。

うん、こんな感じでしょうか。

最後に

今後、PHPとの互換性やセキュリティについての検証が進むでしょう。で、その後の育ち方次第ではなかなか放っておけない存在になるかもしれません。その取っ掛かりを知るという意味で、このスピード感で発売されたこの本はちょうどいいと思います。

献本頂いた技術評論社さん、ありがとうございました。