そら一長一短はあるでしょうけど、慣れてるものが一番なのは変わりませんよ。いう訳で、下記は「個人的な意見」ですのでね。参考程度にお読みください。Haxe?何それ聞いた事ない!Haxe(ヘックス)は、そこそこマイナーなオブジェクト指向+関数型プログラミング言語です。いえ、「関数型よくわからん」って人は、別に関数型構文使わなくても問題ありません。世界にこんにちはしておきましょう。}}このコードからだけでも、Haxeの特徴が幾つか見えてくるかと思います。型は名前の後に書くん、こんなもんでしょうか。際立っておかしな部分はないですよね。したらこの特徴を見てハッと思い当たるフシがある人もいるかも知れません。Flashのスクリプト言語であるActionScriptとほとんど同じ構文なのです。いうより、もともとActionScriptの代替として開発された言語だそうで。HaxeはaltJSとしての一面も持ち合わせています。altJSってのはつまり、JavaScriptがフリーダムすぎるから書きやすくしよーぜ、ってノリで開発された、いわばJavaScriptの亜種みたいなもんですね。Microsoftが開発しているTypeScriptなんかが有名な例でしょう。HaxeにもJavaScriptのコードを出力する機能が付いていますし、何ならHaxeから出力した方が10%程早く動作するそうで。そもそも、Haxeの構文そのものがJavaScriptの標準化であるECMAScriptと似通っています。...Haxeが出力できる言語の一覧を見てみましょう。ActionScript3C++C#HashlinkJavaJavaScriptLuaNekoPHP7Python多い...多くない?その結果、Haxeがターゲットとしているプラットフォームの一覧が、こちら。JavaScriptWindowsmacOSLinuxiOSAndroidBlackBerryTizenwebOSetc...クッソ画質荒いやん、気が向いたら直しときますいや...マジで多いって。ここで重要なのが、ソースコードを出力するという点。ネイティブコードでのクロスプラットフォームが実現できるという事になります。それじゃ、出力されたソースコードを元に、更にコンパイルの作業をしなきゃいけないの?それは面倒だよ...一応、FlashとNeko、HashlinkについてはHaxe単体でのコンパイルが可能ですが、確かに面倒ですよね。そこでLimeの出番です。Limeは、ウィンドウ処理や入出力、音声処理などの低レイヤー層を管理するフレームワークです。C++、macOSならXcode...といったように別途ソフトのインストールが必要ですが、シームレスに実行ファイルを作成できるようになります。Haxeの言語機能まず、Haxeは静的型付け言語です。先ほども書きました通り、変数名やメソッド名の後に型を指定します。5;基本型はInt32(Int)、Int64、Float、Boolのみのようです。Intは環境に関わらず32bitとなるようです。Floatは倍精度、つまりはCにおけるdouble型ですね。一応、符号なし整数型としてUInt型も定義されているようですが、非推奨となっています。インスタンスの生成や、配列の作成時にも型を指定します。Array();まぁ、でもいちいち書いてたら面倒ですよね。インスタンス作成時とか。いう訳で、もちろんあります型推論。[0];メソッドの引数なんかにも型推論が使えますが、こちらはあまり推論の精度が良くないし、わかりにくくなるので使わない方が良いでしょう。Haxeだとこんな書き方ができちゃいます。"Failure";);そう、Haxeではif文やfor文などが式として使えてしまうのです!これがものすごく便利。[0,2,4,6,8]Sys.println(a);と書けば良いのです。すごいっしょ?ただ、Haxeだといわゆるforeach方式のfor文しか使う事ができません。{}みたいな事ができないという事になります。[10,9,8,7,6,5,4,3,2,1]Sys.println(a)いや、でもこれだと別に変数用意しなきゃなんでちょっと良くないですね。他になんか良い方法ないんやろか。それと、新しい言語を習得するときにかなりのネックとなる多次元配列。これ、言語によってかなりバラつきありますからね。Haxeには多次元配列という概念はありません。その代わり、配列の中に配列を入れる事が可能です。JavaScriptと同じですね。わかりやすくて実に良い。連想配列を作る事も可能です。2Sys.println(a[0][2]);Sys.println(a[1][2]);Sys.println(a[2]["に"]);正確には、連想配列はMapオブジェクトとして実装されています。他にも色々と便利な機能がてんこ盛りです。言語独自の機能があるって聞いたけどHaxeには、どんな言語に出力しても使えるHaxe標準ライブラリのほか、言語独自のライブラリも幾つか含まれています。C++なら標準ライブラリが移植されていますし、JavaScriptならjQueryが移植されています。他の言語に出力する時には使えません。これも、Flashでしか使えない機能となっております。APIをHaxeに移植するフレームワークです。Limeを下敷きに動作します。...というか、Limeのリンク踏んでくれた方なら気づいたと思いますが、そもそもLimeはOpenFLの一環で作られたものです。APIならマルチメディア系で出来ない事ほとんどないですよ。ゲームだってどんとかむです。Pleaseがあります。入国審査をするゲームですね。映画化が決定しているらしく、Wikipediaに個別記事まである。そんなに売れてたんだあのゲーム。それと...こちらはややマイナーですが、Evolandというゲーム。初めは2Dのピクセルに始まり、次第に3Dポリゴンへと変わっていくというかなり特殊なゲームですね。続編のほかモバイル版もリリースされており、まさにHaxeフル活用って感じです。Cannasse氏ですので、当然と言えば当然ですけどね。OpenFLを使った2DゲームエンジンにHaxeFlixel(ヘックスフリクセル)があります。Flash向けのゲームライブラリであったFlixelを、Haxeに移植・改変したフレームワークですね。今はまだあまり有名なゲームはないようですが、結構な数のゲームが作られています。見たところ、モバイル端末向けのゲームが多いようです。これもHaxeだから成せる技。Codeがベストな選択肢かと思います。FlashDevelopの場合は標準でHaxeをサポートしていて、新規プロジェクトの作成も簡単に出来ます。私が普段使い慣れていない為か使いにくかったです...申し訳ない。Codeの場合、vshaxeというサードパーティの拡張プラグインを使う事になります。サードパーティとは言え、頻繁に更新されていてかなり信頼性は高いです。シンタックスハイライトやオートコンプリート、エラー診断、コンパイルなどなど、一通りの機能は揃っています。いうか、Haxeコンパイラそのものに構文を解析したりオートコンプリートしたりという機能が備わっていますので、それを利用している形になっています。C#の関係性みたいなもんですかね。精度で他に劣るという事はないでしょう。実行ファイルの作成まで出来てしまいます。vshaxe単体でも、JavaScriptだったりNekoだったりならコンパイルは可能ですが。VSCodeは(一応)テキストエディタなので比較的動作も軽く、他の言語をササッと書く時にも便利です。HTML/CSSに関してのみはBracketsの方が良いと思いますが、それ以外で専用IDEがない言語なら、だいたいVSCodeで間に合います。それに知ってる方も多いとは思いますが、ついこの間にGithubがMicrosoftに買収されましたよね。VSCodeには以前からもGit連携機能が搭載されていましたが、今後はよりGithubに密接した機能が追加される事でしょう。何より、VSCodeはWindows/macOS/Linuxに対応しています。アレです、最近流行りのElectron製アプリです。FlashDevelopはWindows専用なのが一番の難点と言えましょう。Nekoって?Nekoは、2005年あたりに登場した比較的若い言語です。一応は言語仕様を持っており、中間言語に変換して、Windows/macOS/Linuxで動作するVM上で実行するタイプの言語なのですが、Haxeから変換して踏み台として使用される事が多いと思います。Cannasse氏(また出た!Haxeの開発者)ですし。そのお陰とあって、PC向けのソフトウェアを作るのならNekoを選択しておけば間違いはないでしょう。Hashlinkって?Hashlinkは、2年前くらいに突如として登場した言語です。VMと何が違うのかと言いますと、まずこちらはiOSやAndroidにも対応しているらしいという点。描画にSDL2を使用しており、独自のUIライブラリも将来的に提供されるそうです。静的型付けになった事でよりHaxeとの親和性が向上していたり。新参といってもなかなか侮れません。Hashlinkで作られたゲームが幾つかリリースされています。GamesのNorthgard。売れているようですね。ドットのハクスラですかね?こっちもなかなかの高評価。...情報が少なすぎる!!日本語の情報がとかじゃなくて、英語の情報も超少ない。公式サイトとかGithub関連除いたら、ほぼ皆無と言って良いと思います。Githubの方も、ドキュメントはたった数ページ。チュートリアルはありませんので、何を書けば良いのかわからない状態。ドキュメントが充実していけば、かなり今後に期待できそうですね。書いてきましたが、私自身もまだまだ勉強中です。マクロとか、ほとんど理解してません。厳格な言語ですので慣れるまで大変かもしれませんが、それを含めても素晴らしい言語ですよ。使おう!そんな訳で、ざっくりとHaxeの紹介でした。HaxeフレームワークメモHaxeFlixel2Dゲームエンジン。HaxePunk2Dゲームエンジン。13:22(個人的)最強のプログラミング言語「Haxe」Tweet広告を非表示にする関連記事2018-11-16近況報告というかなんというか最近ブログに全く触っていないなと思ったので。描画関連の処理系・ライブラリあくまで個人的なメモみたいなものだよ。»プロフィールid:trackissぐたぐたとなんかするブログ。フォントなり、DTMなり、とりあえずぐだります。月別アーカイブ注目記事はてなブログをはじめよう!trackissさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。