Hack (プログラミング言語)
Hack Hackのロゴ | |
登場時期 | 2014年 (11年前) (2014) |
---|---|
設計者 | Julien Verlaguet, Alok Menghrajani, and others[1] |
開発者 | meta ウィキデータを編集 |
最新リリース | 4.172 / 2022年11月2日[2] |
型付け | 静的、動的、弱い型付け |
影響を受けた言語 | PHP、Java、C Sharp、OCaml、Scala、Haskell ウィキデータを編集 |
ライセンス | MIT License ウィキデータを編集 |
ウェブサイト |
hacklang |
テンプレートを表示 |
Hackは、Metaにより開発されたプログラミング言語である。オープンソースとして公開されており、同社が開発したPHP実行環境のHipHop仮想マシン (HHVM) で動作する[3] 。
HackはHHVM環境で動作するPHPの新しいバージョンと見なすこともできるが、PHPとは異なり動的/静的双方の型システムが使用可能となっている。MetaではHackを「漸進的型付き言語」であるとしており、これがHackの強みとされている。
歴史
[編集 ]Hackは2014年3月20日に一般に公開された[4] 。Hackは公開以前からMeta社内において広く使用されており、同社の実環境における厳しいテストをくぐり抜け開発された。
Hackの登場はPHPにも影響を与えており、2015年12月にリリースされたPHP7は、Hackと同一構文の型システムを搭載している。
特徴
[編集 ]Hackの特徴としては、Web開発において広く用いられているPHPとシームレスに連携できることがまず挙げられる。PHPで書かれたほとんどのスクリプトは、そのままHackのスクリプトとして実行可能である。[5] Hackの型システムでは、関数の引数や戻り値、クラスのプロパティに型の指定が可能となる(ローカル変数は不可)[6] [7] 。
構文
[編集 ]Hackスクリプトの基本的なファイル構造は、PHP スクリプトのものとわずかに異なるもののほぼ同じである。PHPがスクリプトの開始を <?php で宣言するのに対して、Hackでは <?hh で宣言する。
<?hh echo 'Hello World';
上のスクリプトはPHPと酷似している。実行すると、以下の出力がブラウザに対して与えられる。
Hello World
注意が必要な点だが、HackのコードはPHPのようにHTML中に埋め込むことができない。例えば、PHPでは以下のようにPHPとHTMLを一つのファイルに記述することができる。
<html> <head> <title>PHP Test</title> </head> <body> <!-- hhではこうした記述はできない --> <?php echo '<p>Hello World</p>'; ?> </body> </html>
しかし、Hackではこの構文はサポートされていない。そうした用途には、同じくMetaが開発したXHP (英語版)や、別途テンプレートエンジンを用いる必要がある。[5]
関数
[編集 ]Hackでは関数の引数や戻り値に型を指定することができる。型の指定は以下のように行う。
<?hh // Hackの関数では以下のように型を指定する。 function negate(bool $x): bool { return !$x; }
脚注
[編集 ]- ^ "Contributors to facebook/hhvm". Github.com. 2014年3月25日閲覧。
- ^ 出典URL: https://hhvm.com/blog/2022/11/02/hhvm-4.172.html, 閲覧日: 2024年4月15日, 題名: Release 4.172, 出版日: 2022年11月2日
- ^ Cade Metz (2014年3月20日). "Facebook Introduces 'Hack,' the Programming Language of the Future". wired.com. 2014年4月15日閲覧。
- ^ "Hack: a new programming language for HHVM". Code.facebook.com. 2014年3月23日閲覧。
- ^ a b "Hack and HHVM: Unsupported PHP Features in Hack - Manual". Docs.hhvm.com. 2014年4月2日閲覧。
- ^ "Hack and HHVM: Type Annotations - Manual". Docs.hhvm.com. 2014年3月25日閲覧。
- ^ "Hack and HHVM: Type Inference - Manual". Docs.hhvm.com. 2014年3月25日閲覧。
関連項目
[編集 ]外部リンク
[編集 ]- 公式ウェブサイト (英語)
- Hack言語リファレンス (英語)
この項目は、ソフトウェアに関連した書きかけの項目 です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。
Family of Apps(アプリ部門)/ Reality Labs(VR・AR部門)/ Meta AI (英語版)(AI部門) | ||
サービス | ||
オープンソース | ||
VRヘッドセット | ||
その他の製品 |
| |
人物 | ||
関連項目 | ||
カテゴリ Category:Facebook |