X



Hack (プログラミング言語)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん垢版2014/03/24(月) 20:41:33.49ID:6L4QVMHI
■概要 [編集]
HackはFacebookが2014年に発表したPHPを魔改造したプログラミング言語である[1]。PHP自体を魔改造により
独自拡張したものなので長い歳月をかけてアホみたいに増えまくったPHPの関数群もそのまま使える。

HackはJavaVMのパクリのようなHHVMという仮想マシンの上で動作する。もともとはPHPを中間コードにして
多段階で最適化する手法を実現したかったようだ。これだけ聞くとPhalangerの車輪の再発明のように思えるが
真相は不明である。

HHVM実行環境のソースコードはPHPライセンスおよびZendライセンスの下で公開されている。

http://monobook.org/wiki/Hack_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
0009デフォルトの名無しさん垢版2014/03/25(火) 20:19:25.52ID:EkLc5i6x
静的変数が何とかって書いてあるがどいうこと?
定数とは違うものなの?
0011デフォルトの名無しさん垢版2014/03/25(火) 21:28:43.03ID:lDiJwQpa
スレッドセーフがPHPの良い所なのに、何でそういった危ない機能付けちゃうの?
アホなの?
0015デフォルトの名無しさん垢版2014/03/29(土) 17:27:00.04ID:LpEHX1o/
なんかさIT使ってる場所なら
Hackって「言葉」頻繁に使うよね?

それなのに話題性のためにHackって言葉を使うあたりがバカだなって思う!

会話の中でなんの話をしてるのかわかりにくくなるじゃん
0017デフォルトの名無しさん垢版2014/03/29(土) 18:52:35.40ID:c7nJ0zML
CとC++のように
PHP++のようなものだろ
0022デフォルトの名無しさん垢版2014/03/31(月) 22:04:10.61ID:60O6Nh3u
IDEは知らないが、Sublime Text 2かDreamWeaverを使えばよかろう
0025デフォルトの名無しさん垢版2014/04/01(火) 11:19:29.97ID:7d7wTM2C
これVisualStudioをIDEにできるPhalanger圧勝じゃないの?
0031デフォルトの名無しさん垢版2014/04/02(水) 17:49:15.54ID:oeyiben4
Facebookのために作っておすそ分けって感じね
ドキュメントはけっこうカッチリ作ってあったが
0033デフォルトの名無しさん垢版2014/04/02(水) 22:01:55.20ID:eMainclp
facebookはPHP、GoogleはJavascriptが戦略上最重要な言語である以上、
自分らで最速、堅牢に改良していく余地があるんだろうけど
RubyやPythonは未だにホビィスト規模のコミュニティにしか見えない。
特に何の根拠もないのに、RailsよりSymfonyの方が信頼できそうなのは何故なのか
PHPが最強過ぎて悲しい
0035デフォルトの名無しさん垢版2014/04/03(木) 00:02:41.91ID:3TXTLRvX
>>33
JavaScriptはどれだけ新言語(Coffee, TS, Dart)で補っても根本がクソなんで、PHPはたしかに安定感がある
node.jsてまだ流行ってんの?
0036デフォルトの名無しさん垢版2014/04/03(木) 11:26:32.01ID:QLCdboVe
cpanやrailsを再発明するぐらい流行ってるよ
cpanと同じ運命を辿るだろうけど、飯さえ食えれば関係ないよね?
0038デフォルトの名無しさん垢版2014/04/03(木) 15:42:10.21ID:QLCdboVe
http://www.google.co.jp/trends/explore#q=node.js%2C%20ruby%20on%20rails%2C%20cakephp%2C%20django%20python%2C%20laravel&;cmpt=q
http://www.google.co.jp/trends/explore#q=backbone.js%2C%20angular.js%2C%20knockout.js&;cmpt=q
http://www.google.co.jp/trends/explore#q=node.js%20express%2C%20ruby%20sinatra%2C%20php%20slim%2C%20python%20flask&;cmpt=q
http://www.google.co.jp/trends/explore#q=drupal%2C%20wordpress%2C%20joomla&;cmpt=q
0041とんぼ ◆0ioouYq6qF8x 垢版2014/04/03(木) 22:04:53.54ID:JgrUCG7l
>>40
ごめん、質問します。
Javalizeとperlizeってどういう意味。検索したけどわからなかった。
0042デフォルトの名無しさん垢版2014/04/06(日) 00:49:59.30ID:VpCKQzKq
>>1
JavaVMとかPhalanger(.netのVM言語な JVMにもQuercusというのがある)とか置いといて
HipHopVMの話から追ったほうが納得しやすいかも。
http://www.infoq.com/jp/news/2012/12/Facebook-HHVM-JIT

経緯追うとこんなあらすじだったと思う。
・既存のphpについて、本番環境の実行速度を上げてサーバ台数減らすのに、php2c++のトランスレータコンパイラを開発して導入。
(APCとあまり速度変わらないようにみえた)
・開発環境では、全部毎回コンパイルしてると時間がかかるし、既存のphpと完全互換ではないので、互換性が保証されるインタプリタを開発して、開発環境に導入。だいぶ遅い!
(普通に本番も開発もAPC付きのphpでいいんじゃね?)
・インタプリタの代わりになる、ある程度互換性のあるJIT付きのVMを作り始める。
(APC(ry
・VMを開発環境に導入
(APC(ry
・パーサ使って型チェッカーを作り利用し始める。
(そいつはありがてぇ)
・コンパイラより速くなったVMを本番環境に導入。
(v8みたいに型推論してきた?
・VM言語としてtypescriptみたいなdependent typingがあるphp風言語hack作った。
(やべえ!)
0043デフォルトの名無しさん垢版2014/04/06(日) 01:00:17.93ID:VpCKQzKq
hackはググれないから、ググるのはhacklangだね。
ほかの言語でも、ググれないのはlang付ける場合が多々ある。dlangとかgolangとか

次スレがあるようなら公式サイトを1に追加しなさって。
http://hacklang.org/
http://hhvm.com/

公式サイトにクイズ形式のチュートリアルがあって、おもったより本気度がある。
http://hacklang.org/tutorial/


GREEやドワンゴは、Scalaに移るのが正しいのかもしれないが、
http://labs.gree.jp/blog/category/scala/
揺り戻しでHack使い始めたら面白そう。
http://labs.gree.jp/blog/2014/04/10651/
0046デフォルトの名無しさん垢版2014/04/09(水) 00:40:38.81ID:rnlf/mPK
HiphopVMでたし、Symfonyが無双しているし、Laravelでいいよもう
Phalconなんて何が悲しくてcでガリガリコード書いてんだろう
0048デフォルトの名無しさん垢版2014/04/09(水) 09:29:39.11ID:iVtPfWG1
jsが最強になってしまったのは異論なし
ruby, pythonとかからするとphpは一歩前に出たな
0050デフォルトの名無しさん垢版2014/04/10(木) 21:14:45.28ID:S4J9jmPb
node陽の目は充分浴びたんじゃね?
なんらかのスタンダードみたいな大台まで登る気配は感じないけど、js人口にも支えられてるし当面脚光浴びてそう

レン鯖でちゃちゃっと、コマンドプロンプトからサクッと、みたいな定番用途ではphp,ruby,pyにはかなわんだろな
0051デフォルトの名無しさん垢版2014/04/11(金) 23:15:55.50ID:WuiIH31f
海外のWebバブルに便乗したスタートアップと比較して、
何故、日本のサイトは広告だらけでダサく、そして使い勝ってが悪いのか
0053デフォルトの名無しさん垢版2014/04/19(土) 14:40:26.15ID:4RxwLXSV
海外にも110ヶ国に拠点があったワロタ
シリコンバレーの広告土方も、実はチラシに踊らされてたりして
0055デフォルトの名無しさん垢版2014/04/22(火) 11:58:59.69ID:MkXEyCN9
クラスにしか変数/関数(あえてこの言い方)の宣言ができないらしいけど、
そうすると、$this->地獄から抜けられるとか、メリットあるの?
0056デフォルトの名無しさん垢版2014/04/22(火) 13:21:57.94ID:mNs2V+qX
PHP由来でグローバル空間に関数定義できないんなら$this->並ぶだろうよ
まだHack言語書いたことないけども
0059デフォルトの名無しさん垢版2014/05/16(金) 22:36:13.58ID:2m3dzGmv
これってPHPからの移植はけっこうスムーズにいくのかね?
PHP使ったこと無いからわからんのだが。
0060デフォルトの名無しさん垢版2014/05/17(土) 00:44:06.20ID:AT+4x8IP
http://hacklang.org/tutorial/
<?phpを<?hhに書きかえ、末端の?>を消すのからはじまって、
型指定を入れていく。

http://docs.hhvm.com/manual/en/function.gmp-abs.php
一部使えない拡張とかあり、
PECL拡張も使えなかったような。
(独自拡張はある)

あとは、コツコツというのは型指定をしていく。
静的言語で一般的なコレクションもある。

引数と戻り値の型がちゃんと指定出来るような作りなら、なんとかなる。
0061デフォルトの名無しさん垢版2014/05/17(土) 00:58:26.90ID:RMSyflwZ
サーバー系と違うけど、こんな感じ

http://benchmarksgame.alioth.debian.org/u64/hack.php
vs php 3-10倍速い?

http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&;lang=hack&lang2=java&data=u64
vs java 3-10倍遅い?

動的な型チェックの影響が大きいベンチマークだとこんな感じ。
後半三つは、任意精度整数のCライブラリ(GMP)が使えない影響なので、
ネイティブライブラリ使えない場合、これと同じような影響がある。
0063デフォルトの名無しさん垢版2014/05/17(土) 19:54:11.14ID:sX8Siisc
コレクションが追加されるなら、rubyのEnumerableとかC#のLINQみたいなものも追加されるのけ?
0064デフォルトの名無しさん垢版2014/05/18(日) 00:08:28.07ID:HDWDipXQ
http://docs.hhvm.com/manual/en/hack.collections.php
http://qiita.com/yone098@github/items/7ff3616030e8d19400a7#1-7
hack専用ではなく、php5.5のyieldになるんじゃないかな。


linqっぽいginq(php >= 5.3.0)というライブラリはあるけど、これが移植出来るかは分からないけど。
http://tanakahisateru.hatenablog.jp/entry/2013/06/03/142037
http://qiita.com/Hiraku/items/0db9a8fed4743c1f00a4
0066デフォルトの名無しさん垢版2014/05/26(月) 01:41:50.49ID:zggjVIna
Facebookで使ってる開発ツールとかがあるのか分からないけど、
IDEやツールを対応しないといけないから、
コミュニティが出来ないことには難しいなと思う。
0073デフォルトの名無しさん垢版2014/06/01(日) 00:18:31.16ID:26Vvz8TO
InteliJのCEではphp動かないけど、商用版ってどうなんだろう。
0074デフォルトの名無しさん垢版2014/06/01(日) 00:56:43.96ID:M8F9cK7q
PHPの主流の層は、こういうのいやがりそうだな。
0075デフォルトの名無しさん垢版2014/06/01(日) 06:04:58.86ID:ymXKK1l2
zephirと競合するのかな
zephirはextention作るものって考えられるけど共存できないしね
0076デフォルトの名無しさん垢版2014/06/01(日) 16:34:34.43ID:Y7NQ5gqe
zephirとかつくってるphalconは、extention中心とだから移植が必要になるのか。

hhvmの拡張は、いまやところZendEngineの拡張ではなく、hhvm用でhackベースで独自のみになってるらしい。
http://labs.gree.jp/blog/2014/04/10651/
0077デフォルトの名無しさん垢版2014/06/02(月) 03:14:47.61ID:D0pIbZYb
PHPDeveloper.org: HHVM Blog: HHVM 3.1.0
http://www.phpdeveloper.org/news/21243
- Support for PHP 5.6 variadic ...$args syntax for func declarations
- Over 400 ini settings you can use to configure various things
- Fixes for several security issues including CVE-2011-2202 and CVE-2014-2270

php 5.5&5.4で修正したCVEに対応してる、
いまのところfacebookで実際のサービスに使ってる&CVE対応も追従してる
みたいなので、サービスに使えそうではある。
0079デフォルトの名無しさん垢版2014/07/02(水) 02:23:09.31ID:0hqA4PPS
すごくいいと思うけど、オープンソースとはいえFBに依存するリスクがあるんでしょ?
0080デフォルトの名無しさん垢版2014/08/10(日) 23:52:30.08ID:sbm4mn2r
で、その後Hackの調子はどうなのよ?普及しそうなの?

今PHPで他人の戻り値がmixedなクソコードでイライラしてるから、
いっそPHP 6とかでHackの型をオプションで取り込んで欲しいんだが。
0082デフォルトの名無しさん垢版2014/08/11(月) 19:01:12.96ID:nzVNkquN
現状だと、分散バージョン管理でコミット時にコードチェッカーでなんかしら対処すればいいのかね。

最近、IDEにphpdocの型アノテーション読ませて開発する機会が増えて来たのでmixed減らしたい。
0087デフォルトの名無しさん垢版2014/10/11(土) 18:45:43.15ID:kAb2UVjI
PHPカンファレンス2014の「HHVM + Hack == PHP++」おもしろかった。
HHVMはだいぶパフォーマンスよろしいらしく、どんどん採用例増えてるみたいだし、
流れに乗ってHackもPHPからの移行先としてワンチャン来るか!?

ただ、PHP-NGが出たあとが心配ではある。現状だとHHVMの普及と一蓮托生なのが
おっかなくて気軽には使用できん。
0088デフォルトの名無しさん垢版2014/11/13(木) 11:06:28.27ID:rSWsXFBf
https://code.facebook.com/posts/398235553660954/announcing-the-hack-transpiler/
hackのサポートが急になくなると困るという声があり、
無くなっても困らないことを示すのにhackからphp5にトランスコードするツールをつくったらしい。
型アノテーションはすぐに外せるけど、
関数型のサポートの一部はphp5のライブラリで実装したっぽい。
0090デフォルトの名無しさん垢版2015/12/19(土) 15:17:06.39ID:eQK9mXNn
phpdoc用の型アノテーション読めるようになったんだっけ。
hackにしてjavaぐらいまで速くなる訳じゃないし、
速くする方向でphp拡張使うこと考えると、hhvmと標準のphpのvm互換性がないという。
0091デフォルトの名無しさん垢版2018/05/23(水) 23:15:28.79ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

NUL78
0093デフォルトの名無しさん垢版2018/07/04(水) 21:44:48.34ID:gFgZc5FG
YA4
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況