WEBフロントエンド開発にHaxeつかってたけどElmに乗り換えてもいいかなって思った話

  • 13
    いいね
  • 0
    コメント

これは市ヶ谷Geek★Night「型のあるフロントエンドの世界〜フロントエンド・フロンティア〜」でのLTで発表内容です。


これはElm使ってみたら良かったよというお話です。

この発表のタイトルにHaxeが含まれていますが、”型のあるフロントエンドの世界”という当勉強会のタイトルにちなんで付けているだけで、Haxeに対する不満は殆ど出てきません。

あらかじめご容赦下さいm(__)m

まぁ、でもHaxeという名前も出したのでHaxeについてもちょっとご紹介しておきましょう。


Haxe使ってた理由

  • DeadCodeEliminationでコンパイル後のコードが必要なコードだけになる!
  • 標準ライブラリがそこそこ豊富(フロントエンドのJavascriptと比較して)
  • 構造的部分型便利!
  • コンパイル時にAssetをコードに埋め込める機能
  • コンパイル早い
  • 何か言語機能が欲しくなった時のマクロ

Haxeやめようかなって思った理由


_人人人人人人人人人人人人人人人人人人人_
> FlashDevelopがWindowsでしか使えない <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

Haxeの弱点はエディタが少ないことにあるのは既知の事実かと思いますが、これまで愛用していたIDEAのHaxeプラグインの更新が止まってしまい、Macから利用できるまともなIDEがなくなってしまいました…


スクリーンショット 2016-11-04 13.05.44.png

最後に更新されたのが、約1年前…
その間にIDEAの最新バージョンが上がり利用出来なくなってしまいました…


そんな失意の中、ある噂を耳にします。


Elm、FRPやめるってよ


Elmって何?

  • AltJSの一種
  • Haskell由来のシンタックス
  • ElmArchitectureという概念でアプリケーションを構築する

Elmへの最初の印象

  • ミニマムであり、シンプルな言語仕様というコンセプトは大変興味深かった
  • ElmArchitectureという概念が昨今のフロントエンドライブラリ/フレームワーク戦争から一線を外れている(言語がArchitectureを持っている)ことに好感が持てた
  • でも、Signalという概念を用いてFRPだというあたりで、ちょっと仰々しいなと思って敬遠…

最新のElm

  • Signalを撤廃しました
  • ClosureCompiler対応
  • RequireJS、CommonJS対応

Signalを撤廃したことで、ElmArchitectureが非常にシンプルなものになり、また、ClosureCompilerやRequireJS、CommonJSへ対応することで実用性も大分高まってきました。


家庭をもってしまって学習時間を無限にとれるわけでもないエンジニアにとって、これから習得する技術がシンプルであることは非常に重要です。

Elmは学習する点に於いて次のようなメリットがあります。


  • 言語仕様がシンプルなので、習得までの時間がそこまで必要ない(主観だけどES6覚えるより楽)
  • Elmには仮想DOMのモジュールがパッケージとして提供されているので、Js界隈にある仮想DOMライブラリ戦争を気にしなくても良い
  • ElmArchitectureを学んでおけばいいので、プロジェクトによってArchitectureを提供するフーレームワークを学習する必要はない

Elmいいかもと思った方は早速試した見よう

http://elm-lang.org/try


おわり