![プログラミング プログラミング](https://srad.jp/static/topics/programming_64.png)
haXe 2.03 リリース 11
タレコミ by mandel59
mandel59 曰く、
今日、haXeの最新版 haXe 2.03 が公開されました。haXeウェブサイトから、Windows版とLinux版がダウンロードできます。Mac OS X版も明日公開される予定です。haXeはActionScript風の文法を持つプログラミング言語。SWF(Adobe Flash)形式、JavaScript形式、PHP形式などにコンパイルでき、ウェブアプリケーションのクライアントサイド・サーバサイド両方が作れるという特徴を持ちます。
今回のリリースでは、SWC形式(Flash クラスライブラリ)としての出力が追加されました。
結構凄いのですよ (スコア:2, 興味深い)
- Javaでいうジェネリクスのようにクラスに型パラメータを付けられるので、安全な構造を作れるし、キャストが要らない。
- クラス同士に構造的な部分型があって、暗黙的に扱ってくれる。(ダックタイピング的な事が安全にできる。)
- enumの個々の要素にパラメーターを付けることが出来て、実質的にバリアントとして使える。
- 動的にクラス名とかメソッド名とか持ってるので、リフレクションも可能。
ちなみに、haXe自体はOCamlで作られているらしい。
そういえば (スコア:1, 参考になる)
JScriptの香りがします (スコア:1, 参考になる)
って聞いたので、すばらしくありがたそうな気がして、言語リファレンスを読んでみました。
よくよくみてみると、なんだか javascript の利点とかが失われてる様な感じで、
あの煩わしい Microsoft の javascript モドキと、同じ風味がしてる様な気がします。
静的型付けと class は切り離せないものなんですかね?
日本語ドキュメントが凄くわかりやすかったので、楽しかったです。
# どくしょかんそうぶん、おわり
Re:JScriptの香りがします (スコア:1)
ポリモーフィズムについていえば、structural subtypingとか多相レコード型とか。
これさえあれば (スコア:0)
ワォ!凄いぜ、マイク!
これさえあればJavaScript(.js)やFlash(.swf)、PHP 5(.php)、NekoVM(.n)、C++が出来るってことだろ?
これさえ覚えればしばらくは大丈夫だぜ。
# そんな言語が本当に出てくれるならありがたい…
Re:これさえあれば (スコア:1, おもしろおかしい)
hexエディタでバイナリ書き換えなんて拷問
ECMAScript風って言っちゃ駄目なの? (スコア:0)
駄目なの?
Re: (スコア:0)
駄目なの?
駄目じゃないけど「風」なんだったら、
メジャーな名前の方、使っとくのが余計な説明の手間がなくていいでしょう。
ホッチキス風(ステープラー風)、
ウォークマン風(携帯ステレオカセットプレイヤー風)、
iPod風(ポータブルマルチメディアプレーヤー風)、
携帯電話風(PHS風)・・・・
ね。余計な説明が要りそうでしょう?
# というか、説明が正確になっているわけでもないから困る
# この例だと、私はJavascript風の方がいいと思うんだけどなぁ
Re:ECMAScript風って言っちゃ駄目なの? (スコア:3, 参考になる)
なぜActionScript風というのか。
haXeの前身としてMTASC [mtasc.org]というのがあってだな。
MTASCというのは非純正ActionScript 2コンパイラ。
(つまりActionScript VMのバイトコードへコンパイル)
んでActionScriptとECMAScriptの関係はざっくりいうと以下のようになる。
ECMAScript 3→AS 1→AS 2→AS 3(→ECMAScript 4)
マクロメディア(現アドビ)がECMAScript 3をベースにActionScriptを改良して
ActionScript 2のあたりで大幅に拡張し(class構文とか)
そういった文法上の拡張をECMAScript 4に導入しようとした。
だけどECMAScript 4は事実上ぽしゃってしまった。
(くわしくはWikipediaのECMAScriptとかActionScriptの項とか参照)
なので一番文法の風味が一番近いのはJavaScriptでもなく
ECMAScriptでもなくActionScript(2)ということになるのです。
.
あとhaXe自体はあくまで言語コアなので
Laszloのように一度(アプリケーションを)書いたら
いろんな環境で動くということを目的として開発されたわけではないです。
MTASCがActionScript VMのバイトコードしか生成できなかったのに対し
haXeはAS VM(=SWF), JS, PHP, NekoVM への
コンパイラ・トランスレータとして働くということです。
でアプリケーションとしては
などなど。
Re: (スコア:0)
…っせ、先生、違和感がありまくります!
コンパイル? (スコア:0)
トランスレートではなくて?