新年明けましておめでとうございます。
今年も元気よくハックしていきたいと思っているshuzo_kinoです。*1
LotY (Language of the Year)は達人プログラマーにて紹介された考え方です。
技術を錆び付かせないためには一年に一個新しい言語を学ぶ必要がある、という話です。
私のLotY2012はRuby、JavaScript、HAXE (ちょっと)でした。
今年は
をキーワードとして選んでみたいなーと思っております。
というわけで、候補は以下の通り。
Lisp系
ハッカーといえばLispという偏見()を昔から持っています。
ハッカーと画家によれば、言語はどんどんlispに近づいているとか。
Emacs lisp
最右翼。
Emacsの改造にも使えるしで一石二鳥です。
登場がSchemeよりも遅いというのが、個人的には意外でした。
基本的にCommon lispと同等の実装がなされているとのこと。
末尾最適化はないので、再帰処理を書く際スタックオーバフローを起こす危険性あり……とのこと。
まぁ気にするレベルまで書けるようになるのは大分先だから気にしなくて良いよね!
Scheme
Common lispに次いでによく使われるlisp方言。実装が軽く、いろんな言語環境にて移植済。
中には"biwascheme"のように、javascriptベースで動くとんでもない実装まで。
極力再帰的処理を使うよう推奨されているらしく、それ故に末尾最適化必須。
Common lisp
一般にLispというとこちらを指すようです。
これ自体は規格であり、各ベンダーが各々実装している様子。
末尾最適化はベンダーによって有無が異なるため要検討。<続報:Land of Lispという名状し難い入門本がでてます>
Java系
Javaはどうも手を出し難いイメージがありました。
というのも、人生初のプログラミングバイト先*2の上司がアンチJavaだったのが影響しています。
アセンブリや生C言語をガリガリ書いている方々にはJavaの仮想マシンは寝言にしか聞こえなかったようです。
しかしながら近年のハードウェアリッチの流れを見れば、組込みにおいても解決されそうではあります。
scala
RubyをTwitterから引き剥がした張本人。
……私怨はともかく、マニア向け言語という域は脱して高い生産性の言語というスタンスが定着しているみたいですね。
具体的には、従来のJavaに比べて半分のコードで同じとの事。
LiftというRuby on Rails的なフルスタックフレームワークがあったりと、
確かに今後爆発的に普及しそうな子ではあります。
関数型言語でもあり、最有力候補。
Kotlin
チェコからやって来た黒船。
登場時期が2011年と新しく、上記2言語を踏まえて開発されているため各種弱点を潰す効果が期待できる。
公式さんもシャレがわかるようで、好感。
……が、新言語の例のごとく資料が少ないのが欠点。
普及もまだまだ。
それでも
- Android上の開発、動作
- Javascriptへのコンパイルもサポート
等々、素敵な仕様もあるため個人的には注目していきたい技術。
純粋関数型言語
まとめ
(職場)Scala => Emacs lisp => ...
(趣味)Haskell => Kotlin => ...
という流れで、大きな動きがあったら、それに乗る形で。