読者です 読者をやめる 読者になる 読者になる

Haxe

Haxe/JavaScriptでSource Mapを出力するための設定

ざっくりこんな感じです。 -cp src -main Main -js bin/main.js -debug -D source-map-content"-debug" オプションを付けると、Source Mapが生成されるのは皆さんご存知だとは思いますが、これだけだと、HTTPサーバに配置した場合にSource Mapが読み込めませ…

abstractを使ってDOMとjQueryを透過的に扱う

abstractを使うと、「C言語のunion」みたいなのを型安全かつ便利に書ける。引数をabstractで受けると非常に便利。例として、js.html.Elementとjs.JQueryを透過的に扱ってみる。 abstract Html(Element) { inline function new(x: Element) { this = x; } @:f…

Haxeのmacroでtypedefを動的に生成する

公式Wikiで解説が発見できなくて、ググりながら色々試しててたら、JSON-schema type builder prototype.にたどり着いた。理解できてしまえば簡単なのだが、ポイントとしては、 Expr.ComplexType.TAnonymousを生成して、 ComplexTypeTools.toType()でTypeに変…

Haxeとはどんな言語か

厳密にいえば正しくないのだけど、ざっくりこんな感じ。 型システムがまともになってマクロも使えるECMAScript4(ActionScript3) 型システムがまともになってマクロも使えるけど、try-with-resourcesがないJava8 型システムがまともになってマクロも使えるけ…

Haxeのexternとinlineを同時に書くとinlineが優先されるっぽい

HaxeのjQuery externで new JQuery("selector"); って書くのがダサいなぁと思って、いろいろ試していたときにコンパイルできたコードをメモ。externとinlineを同時に書くとinlineの方が優先されるらしい。Haxe 3.1.3で確認。 @:native("jQuery") extern clas…

HaxeのJavaScriptターゲット用のビルトイン

Haxe 3.0から __js__() 以外にもいくつか追加されてたらしい。知らんかった。The Haxe Magic - Haxe untyped __js__(js : String) : Dynamic インラインJavaScript。 var console = untyped __js__("console"); untyped __js__("console.trace()"); untyped …

Haxeの構造的部分型(typedef)ってstaticでも使える

Haxeを使い始めて2年ぐらい経つけど、今更こういうコードが書けることに気が付いた。 typedef Foo = { function print(): Void; } class Hoge { public static function print() { trace("Hoge"); } } var foo: Foo = Hoge; foo.print();

Haxeで仕方なくnullと付き合う

Haxeは現時点で選択しうるaltJSの中では型システムが一番出来が良く、代数的データ型(Haxeではenum)が扱える点が素晴らしい。しかし、元々はFlashを前提とし、今はマルチターゲット(JavaScript、PHP、C++、C#等)にコンパイルする言語として設計されてい…

大なごやJSでHaxe/JavaScriptの発表してきました

FIRST STEP to Haxe/JavaScript from terurou

Re: HaxeとTypeScriptを両方使ってみた感想

HaxeとTypeScriptを両方使ってみた感想 - ジンジャー研究室 に対してのコメント。コメント欄ではレスを書くには余白が狭すぎです。 if式について HaxeのifはBool型しか受け付けないため、存在判定はnullとの比較が必須になる。JavaScriptからHaxeに移行する…

Haxe使いから見たTypeScript雑感

TypeScript良いですね。世間の流れは完全に動的型付け言語から静的型付け言語+型推論に移ってきていますが、JavaScriptの上にうまくそれを導入してきた感じです。ヘルスバーグはやっぱすごいよね、と。今後実装される予定のジェネリクスが載ってきたら、bet…

FlashDevelopで { を改行させないようにする

FlashDevelopのデフォルト設定だと、以下のようにC#っぽく { で改行してしまう。元々FlashDevelopがMonoDevelopからフォークしたものなので、仕方ないかなぁとも思いつつも、あまりHaxeっぽくない気がするので設定変更する。 class Foo { public static func…

haXe + FlashDevelop on Windows 8でJavaScript開発メモ

Haxe/JavaScriptチュートリアル — Haxe/JavaScript tutorial 0.1 documentationに書き直したコンテンツを公開しました。Windows 8 RPでhaXe開発環境を構築したメモ。ここではWindows 8を使ってるけど、Vista以降のWindowsなら多分同じだと思う。 この記事の…

WindowsでhaXe開発環境をいくつか試してみた

世間というか他の名古屋勢と比べると何周遅れなのかわからんですが、haXeを実プロジェクトに投入しようという気が起きてきたので、ちょくちょくhaXeを触り始めてます。ということで、いくつかIDEを触ってみました。 仕事で使うことを想定してるので、Windows…