一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • 【Elm】Elmについて少し学んでみました

筆者は普段Webアプリケーションのフロント側を書く際にはVue.jsやjQueryなどのフレームワークやライブラリを使用しています。
フロントエンドの技術はjavascriptをベースとして色々なフレームワークや言語が乱立しています。
筆者も上記と別にReact.jsやBackbone.js、TypeScript(言語)も触ったりなどしています。
その中でも関数型言語という特徴を持ち、保守性の高いフロントエンドを実装できると噂のElmを使ってみました。
今回の投稿では使ってみた感想等を書いていきます。実際の書き方は次回以降書いていきます。
※ javascriptをベースに持っている人が型付け言語で保守性を高めたい場合は、TypeScriptを導入する方が学習コストを考えるとおすすめです。

なぜElmを使ってみたのか?

一番の理由は、関数型言語であることと型付けが強制される点に魅力を感じたからです。
javascriptの魅力はある程度雰囲気で実装できるところで、小規模・中規模ぐらいのアプリケーション開発で存分に力を発揮する印象です。
ただ、中規模~大規模の開発で保守性を担保しようとすると、それなりの技術力を持った人が管理していないと厳しい印象もあります。
近年のTypeScriptやDartが出てきている流れを考えると世の中としても保守の面で辛い部分があったのでしょう。

実際に使ってみて良かった点

大きく以下の3点がElmを使ってみて良かったなと思った点です。
※ 実際にElmを使ってテキストチャットのサンプル(画面用のコード含めて500行ぐらい)を作成してみての感想です。

  • 変更の際にどこに影響が出るか分かりやすい
    • リファクタリングや処理追加したときに変更漏れがなくなりました
  • エラーが見やすい
    • TypeScriptとかだとエラーが見づらくてつらいという話もあります
  • コードがドキュメントになり得る
    • 基本的に型が強制されるので独自で定義した型とかを使えばコードの意図がかなり伝えやすくなります

実際に使ってみて不便だなと思った点

  • 学習コストが高い
    • 書き方が他のjavascriptフレームワークに比べて独特なので慣れるまで時間がかかる
      • 言語レベルでもjavascriptとは違うので慣れるのに時間かかります
        • 筆者は大体20時間ぐらいで基本的な部分は書けるようになりました(Elmぽさは無い)
      • 画面描画まわりのコードは独特なのでまだ慣れないです
  • 分業は難しそう
    • デザイナー、コーダーの人がhtml書いて、フロントエンドの人がjs部分とか
  • ウェブアプリケーション特化
    • Elmの思想上、React.jsのReactNativeみたいにモバイルアプリも作れますというのは制限されています。

以上がElmを使ってみた感想となります。
その他思ったこととしては、ReduxやVuexなどの知識があれば少し学習コストは下がるかなと思います。
次回以降その部分についてもお伝えできればと思います。

The following two tabs change content below.

新歩一 正己

初めまして。 新歩一と申します。 現在開発系のフリーランスで4年目となります。 新しいもの好きなので色々開発言語は触っております。 Web関係、業務用システム構築がメインでJava, Javascript, PHP, Pythonを使っております。 オリンピック期間は国外逃亡します。(たぶん)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア