
FacebookがPHP互換のプログラミング言語「Hack」を公開 40
ストーリー by hylom
言語を極めると言語自体をハックしたくなる説 部門より
言語を極めると言語自体をハックしたくなる説 部門より
あるAnonymous Coward 曰く、
Facebookは3月20日、PHPをベースに静的な型付けといった機能を組み込んだ新たなプログラミング言語「Hack」をオープンソースで公開した(公式サイト、SourceForge.jp Magazine、@IT、マイナビニュース、slashdot)。
Hackは、同社が開発したPHP用JITコンパイラHHVM (HipHop Virtual Machine) 向けのプログラミング言語で、PHPをベースに静的な型付けを加えたうえで、ジェネリクス、Nullable型、型エイリアス化、型安全な配列、ラムダ表現といった機能を盛り込んでいる。非推奨機能などは取り除かれているものの、PHPとは高い互換性があるとのことで、PHPコードの多くはそのままHackコードとして利用できるという。実際に同社ではこの1年で殆どのPHPコードがHackにマイグレーションされたとのこと。
「動的な型付け言語がもたらす開発の手軽さと、静的な型付けがもたらすエラーチェックの完全性の高さなどの双方の利点を得ることを目指している」とあるが、果たして二兎は得られるだろうか?
C++, D, C#, Go, ... (スコア:5, すばらしい洞察)
この期に及んでググラビリティ皆無の名前をつけるとか馬鹿なの死ぬの?
Re:C++, D, C#, Go, ... (スコア:2)
hacklangで良さそうな雰囲気。
Re: (スコア:0)
Googleに対抗するためにあえてそういうネーミングを選んだのかも
Re: (スコア:0)
"Hack program" とかで検索しても一般名詞のHackを除外できないな
どうしたらいいんだ?
Re:C++, D, C#, Go, ... (スコア:1)
Re: (スコア:0)
せめて"PHP"の文字を残すべきですよね。
たとえば"PHack"とか...
urbandictionary.com [urbandictionary.com]参考
Re: (スコア:0)
そうすべきでない、つまりPHPと似てると思うと痛い目を見るというくらい違うってことでは?
Re: (スコア:0)
それより、おせっかいですが、「Web検索一発で答えが得られる範囲」だけが「まっとうな世界」だと思い込んでしまう前に何か手を打たれた方がよいような気がします。
どこにも書いていないことを妄想して、おせっかいですが~なんて言い出さないほうがいいですよ。
本当におせっかいです。
殆ど... (スコア:1)
この言葉に何度だまされたことか....
#PHPは、殆ど知らないので。
Re:殆ど... (スコア:3, おもしろおかしい)
「PHP4.xのコードはPHP5.0でも殆ど問題なく動きます(キリッ)」
「PHP5.2のコードはPHP5.3でも殆ど問題なく動きます(キリッ)」
じゃあなんてPHP4やPHP5.2からアップデート出来ずに死んでいったコードがゴロゴロあるんだよ。
PHP界隈でいう「殆ど問題なく動く」とは、「殆ど全く動かない」と思っておいた方が良い。
Re:殆ど... (スコア:1)
そういうのをスケープコードっていうんだよ。
Re: (スコア:0)
コラテラルダメージ (Collateral Damage) っていう映画があったよね。
Re:殆ど... (スコア:1)
PHP5.2のサポートが切れるらしいから5.3へ移行しようとしたものの、データベース周りとか利用してたライブラリとかなんだかんだで難航してとりあえず棚上げになったコードが、もう気づくと5.5の時代になってしまっていてどうしようもなくなっています。もし移行できても、1年もすれば5.6移行の問題が出てくるのは必至で、PHPもうやだという声が聞こえてきます。
Re:殆ど... (スコア:1)
広告「残業は殆どありません」
現実「残業代は殆ど出ません」
Re: (スコア:0)
なんでfではじまらないんだよ解せん f*ck
goはちゃんとgではじまってるじゃん
Re:殆ど... (スコア:3)
Mの付く会社だと林檎味になりそうだ。
Re:殆ど... (スコア:1)
性的な型付けが追加されたらfになる予定(嘘
サンプルコード (スコア:1)
サンプルコード [facebook.com]にmysql_query()とか書かれている時点で
不安しか感じないのだが大丈夫なのだろうか。
Re:サンプルコード (スコア:2)
mysql_*は非推奨にはなりましたがPHP 5.5.0からですから、対応するかどうかは微妙なラインのような気もします。サポートしないと膨大な量のコードが不動作になってしまって言語の普及が進まないでしょうし。
Hack 開発陣のマネージャ (スコア:1)
は、 Real World Haskell [realworldhaskell.org]著者の Bryan O'Sullivan さんのようですね。
https://news.ycombinator.com/item?id=7436495 [ycombinator.com]
Re: (スコア:0)
そりゃ期待できる。
Haskell 知らない人のために一応書いておくと、Haskell には型があるんだけど、型宣言してなくてもコンパイラが文脈から型を勝手に推測してくれる。(推測不可の場合、コンパイラエラーになって、ユーザーが型宣言する必要がある)
あと、指摘された本は Haskell界で超有名(少なくとも自分はそうおもっている)
Re: (スコア:0)
なんとも無意味な補強…
Re: (スコア:0)
そうか、無意味だったか。
本がリファレンス並みに使われてる。これ一冊読めたら、相当力がある。
それぐらいの本を書ける著者だから、相当頭いいし、周辺の事情にも詳しいだろう、的な発想だったんだ。
Re: (スコア:0)
いや、カッコ内のことでしょう…
Re: (スコア:0)
「あと、この本は超有名だから」ってのも大概でしょう…
Re: (スコア:0)
有名だしかつては役に立つよい本だったのだけど、完全に古びてもはやマイナスでしかないから下手に読まないほうがいいよ
Re: (スコア:0)
それはそうと、
タイトルを本文の1行目として扱うのはいかがなものだろうか。
静的型付けの利点 (スコア:1)
メソッドの補完が出来る。 ダックタイピングはメソッドから型を逆算するから補完が出来ない。
まぁ、やろうと思えば出来るんだろうが、型の候補が複数出てくる、
Hackもdartと同じで実際は動的型付けだが、補完がしやすいよう言語仕様的に型が書けるようになる。
Re:静的型付けの利点 (スコア:1)
IDEなどツールの対応がどうなるか気になります。
チュートリアルではリアルタイム構文チェックっぽいデモがあるけど、本当に動いているわけではなさそうだし。
http://hacklang.org/tutorial/ [hacklang.org]
Re:静的型付けの利点 (スコア:1)
問題は、多くのPHPプログラマ及びプロジェクトにPHPを導入するPMがそうした利点を理解できるかどうかですかねぇ。理解できていればそもそもPHPを選択しないでしょうし。
自分の経験した範囲ですが、PHP(しか知らない)プログラマはとにかくエラーが嫌いなように思います。Internal Server Errorで何も表示されないよりも、壊れていてもいいから何か画面が出ていれば安心するというか。なので、静的型チェックを行ってエラーになるよりも、型チェックしなくてログにnoticeを山盛り出していたほうがいいという感じです。なんせ、シンボルチェックすら拒否するような文化ですから。。。
Re:静的型付けの利点 (スコア:1)
つまり、想定外のエラーが起きた時、
「ブラウザ表示がまっさらなのは安全性を考慮して
処理を中断させているからです」って言っても顧客は分かってくれないだろうから、
とにもかくにも、ある程度の見た目だけは取り繕いたいとか。
特にWebサイト系のお仕事では、そういう傾向が強いんじゃないかと邪推します。
で、また新しいフレームワークか (スコア:0)
PHP(とHack)の開発で、いったいどれだけのフレームワークを習得すればいいのか…
Re: (スコア:0)
もちろん死ぬまで、日々これ学習と実践ですから。
それが嫌なら独自フレームワークを構築する道を歩んでもいいし、
「習得」と無縁なクラス・ジョブにチェンジするのも手。
というか、習得は嫌だと言いだしたら最後、
簡単に下の世代(むしろ新しい技術「しか」知らないし、「また」などとは思っていない)と置き換えられてしまいますけどね…。
プログラマとして生き延びたいなら、いかに自分の学習コストを低く保つかですよ。
Re: (スコア:0)
いや、多分言いたいのは多過ぎるフレームワークに辟易としてる現状にまた追加されたことについてだろ
正直メジャーな?奴だけでも10以上あって良い加減どれかにして欲しいものである…
二兎をおうというが (スコア:0)
jasm.jsとかのほうがよっぽど馬鹿げてるのになぜ問題にしないのか
PHPを嫌だと思っていても使わざるを得ないのは (スコア:0)
デファクトスタンダードとして一定の勢力を持っているから、だから。
Hackが使い物になるのだとしても、まず普及してもらわないとだな。
自由に言語を選べるのなら、そもそもPHPは選択しないのだから。
Re:PHPを嫌だと思っていても使わざるを得ないのは (スコア:1)
PHPはなぜデファクトスタンダードになれたの?
登場時期が早いわけでもなく、ライバルもたくさんいたのに。
PHP→PHPer, Ruby→Rubyist, Hack→? (スコア:0)
Q「Hackerになりたいんですがどうすればいいですか?」
A「プログラミング言語Hackを勉強してください。」
Re: (スコア:0)
くそ、Hack で構築したサイトがハッカーに侵入されたぞ!! (そりゃそうだよね的な)
→ マスコミによるよく分からないハッカー叩き
→ Hack 普及しない
→ 桶屋が儲かる