2018年03月10日 22時00分 メモ

エンジニアがマイナーな不人気言語を学習することで得た考えとは？

by marissa anderson



コンピュータープログラムを記述するプログラミング言語には、C++・Java・Python・Rubyといったメジャーな言語の他にも数多くのマイナー言語が存在します。そんなマイナー言語の一つ「Elm」を使ってみたWEBエンジニアのアレキサンダー・キャンベルさんが、「Elmを使ってみてマイナーな不人気言語に対する考えが変わった」と語っています。



Elm changed my mind about unpopular languages – Real Kinetic Blog

https://blog.realkinetic.com/elm-changed-my-mind-about-unpopular-languages-190a23f4a834



キャンベルさんはプログラマーとして働くにあたって、何よりも完成品を納品することを大事にしてきたとのこと。「私は不可解なバグや前例のない手法を使うことに楽しみを感じるタイプの人間ですが、プロの現場で働く以上は最も広く使われているツールを優先して使うようにしてきました」とキャンベルさんは述べています。





キャンベルさんは「問題に対して2つの解決策が思い浮かんだ場合、先人の多い解決策を選択する」など、プロフェッショナルに徹してきたとのこと。キャンベルさんはかつてGoというGoogleが開発したプログラミング言語を使用する現場にいたことがありましたが、開発現場で非常に多くの問題に直面したため、なおさら人気の言語の素晴らしさを実感したとのこと。



キャンベルさんは人気の言語や開発ツールを使用するというルールのおかげで、非常にスムーズに開発を進めることができたそうです。「私が何かの問題にぶつかっても、人気言語やツールであれば、他の誰かも同じ問題にぶつかっている可能性が非常に高いのです。オンラインで問題について調べて、5秒以内に問題解決策が見つからないのはまれです。全てが順風満帆でした」とキャンベルさんは述べています。



by Drunk Photographer



しかし、キャンベルさんは現職の会社に転職した後、この会社では「Elm」という言語でアプリケーションを開発し、クライアントに提供することがあると知りました。「Elm？信じられません。Elmを使うような人は、2008年の段階でウェブアプリの否定的側面について語るような、WEB言語界のヒップスター的な存在だと思っていたのです」とキャンベルさんは語っており、Elmはせいぜいテスト環境で使えるかどうかといったところで、まさか本番環境で使えるような代物ではないと考えていたそうです。



キャンベルさんは「最初の数週間はElmの使用に懐疑的でしたが、3回ほどElmのガイドをたどってみると、私の頭の中で構造が変化しました」と述べており、ElmはJavaScriptよりも優れていると考えるようになりました。



キャンベルさんによれば、Elmは純粋な関数型言語であり、コンパイラが全ての予測可能性を考慮するようになっているとのこと。そのため、プログラマーはあらゆる場合に何が起こるかを予測して特定する必要があり、開発時の段階でエラーを検出できるのです。また、ElmはDOMに対して非常に自然に適合しており、まるでHTMLがElmのために設計されているかかのようだと感じられると、キャンベルさんはいいます。



by Carmela Nava



「洗練されたコマンドラインインターフェース、有用なコンパイラ、直感的なデバッガー。Elmでの作業は驚きと喜びの連続です」とキャンベルさんは語っており、Elmでの開発が非常に素晴らしいものだと考えています。



「今では、新しいクライアント対応のWEBアプリケーションには、積極的にElmを使いたいと思っています。Elmの弱点としては、関数型言語のため命令形言語を使ってきたプログラマーが学習すると学習曲線が急になること、おそらくサーバー側では使えないこと、Haskellのような高度な関数型言語が備える機能の一部が使えないことが挙げられますが、そんなデメリットはElmの持つメリットにかなうモノではないのです」とキャンベルさんは述べています。



新しい言語を使ってみるのは、特定の言語に慣れ親しんできたプログラマーにとってためらわれるものかもしれません。しかし、あえてマイナー言語や触ったことのない言語をやってみることで、キャンベルさんのように新しい発見を得て、プログラマー人生を変えることになる可能性もあるのです。



by Jesper Rønn-Jensen

