仕事で使った言語
僕もまとめておこう。
Java
書いたコードの量はダントツに多い。
リフレクションお化けにハマったり、JavaEEにハマったりした。
JavaScript
jQueryが流行ってた頃に一度検索バーの補完用モジュール書いたりしてた。
その後、一度別のツールでReact使ったりした。
Python
Webアプリを書くときに使った。 良い言語だと思う。関数型プログラミングを少しかじれるのは魅力なんだけど、イミュータブルデータ用のAPIが少なくて結局関数型プログラミングを活かしきれないと結論づけている。
Go
簡単なログ収集ツールとかテキストデータの解析で使った。 プログラミングスタイルに慣れていなかったので、意図を関数と構造体で表現するのにとても苦労した。 もう少しCとか書いてから再入門したらきっとmind blowingな発見があるのだろう。
Haskell
ちょっとしたデータ解析のコマンドラインツールで使った。作ったバイナリをポータブルにできなかったので、作るだけ作って配布は断念した悲しい経験。
Clojure
テストスクリプトのスケルトンを出力するツールを作るのに利用した。
安易にNPEを引いてデバッグに苦労した記憶。すごく好きな言語だけど、もう少しREPLを使った開発に慣れないと安定して動くプログラムを組むのに時間がかかるなという印象。
まとめ
- 関数型プログラミング
- 不変データ
- 型検査
あたりを満たせてる言語だと僕の場合はすんなりプログラムが組めるみたい。
実行ファイルの配布やメンテナンスを考えると実はScalaあたりが自分にフィットするのかな、とは思う。
Haskellが好きなのは変わらないのだけれど、仕事で使うにはまだ僕自身の課題が多そう。
なのでやっぱりScalaなのかなー。
ちなみにプライベートではHaskellのalexとhappyを使ってSMLの構文解析器書いてる。コンパイラ技術はとても楽しい。