べにやまぶろぐ

技術寄りの話を書くつもり

『新プログラミング言語「Hack」を体験してみよう!』に参加してきました

Facebook 謹製の言語、および PHPVM HipHopVM について勉強したいと思い、新プログラミング言語「Hack」を体験してみよう! : ATND に参加してきました。

講師は、

の著者である米林 (id:yone098) さんで、宣伝というよりほとんどこの書籍の内容を説明する感じの太っ腹?なイベントでした。曰く、この技術の素晴らしさを広めたいとのこと。

個人的にポイントとして感じたところは、

  • Hack ではなく素の PHP でも高速化の恩恵を受けられる。php hoge.php としてたのを hhvm hoge.php とするだけで圧倒的に速くなる。
  • IDE 等使わなくてもある程度のデバッガが提供されている(ステップ実行、HTTP リクエストや Cookie のダンプなど)
  • <?hh で始まる Hack 言語での記述にすると PHPJava に歩み寄る
    • 引数や戻り値に静的な型や null 値の許容を許すかなどを指定し、(実行時に)チェックができる
    • Generics に加え Vector/Map などのコレクションを使用できる。便利!
    • type user_id = int などとして型にエイリアスをはれる。便利!
    • <<Override>>アノテーションを付けてオーバーライドしたメソッドを明示的に宣言できる(親クラスにオーバーライド先が無かったりするとエラーになる)。便利!
    • 実行時エラーのチェックを先んじて行うためのツール (hh_client) が提供されている
  • 結構頻繁にバージョンアップされていて設定方法やオプションなど劇的に変わったりする
  • hh と php が混在していても動く

というあたりでしょうか。既存の PHP 資産は修正要らずで高速化でき、Hack で書けば PHP だといろいろトラブルになりやすい(個人的にはオーバーライドではまったとか)あたりを解消できるとか上手く作られているなと感じつつも、Facebook さんに首根っこ掴まれるのを良しと判断するかは単純に性能面の話では語れないと思いました。

まぁ、単に hhvm で高速化というだけならぽしゃったときに外せば元通りなので良い気もします。

あとはちょっと調べたら えふしんさんの記事でも言及されていましたが、いわゆる PHP アクセラレータとの比較が気になるのと、IDE 含めて開発環境とかどうなっているのか、コミュニティの温度感とかそもそも短所ないの?というのが気になったので、どっかで触りながら調べてみようと思います。

Amazon マシンイメージ (hacklang - HHVM Hackをすぐに試す方法(AWS AMI公開しました) - Qiita) とか Docker のイメージ (yone098/hhvm-hack Repository | Docker Index) も公開されているということなので、とりあえず触るだけでも非常に簡単そうです。

あとは Gihyo の電子本執筆環境は GitHub ではなくて GitLab 使っているあたりで謎の好感を感じました(笑)