どの言語にするか思案中……

現在入門書をいくつか購入して目を通している。
OCamlRubyCommon LispClojure、と今更ながらのRubyも混じっているけど、買ったのでとりあえず全部に目は通しておきたい。時間かかりそうだけど。

オンラインのドキュメントで大丈夫そうなのとしてPython(Dive Into Python 3)にも目を通す予定。
とはいえ、随分昔の知識と合わせてみても、やはり言語仕様自体が簡単な印象だから時間はあまりかからない予定。

これらに加えて慣れているもの、使ったことがあるもの、学習したことがあるものとして、PHPJavaScript、TypeScript、Go、Scalaなどがある(Javaは少しだけさわり、Haskellは本を一読した程度)。

PHPJavaScriptは仕事で使っているので特に対象とはしないとして、さて、どの言語をメインに据えて勉強していこう。
目的としてはデータの収集(Web、テキスト、DB等を対象)と解析。
あとは割りとヘビーな分岐数の組合せ最適化とか。

大量のメモリを消費する可能性が大。
うっかりPCのメモリを使い潰さないようにするにはJVMで動くものがいいだろうか。
そうなるとClojureScala辺りが候補になりそう。
とはいえ。VMを立ち上げてそこでテストをするようにすればどの言語でも問題無いといえる。

ある程度の速度も欲しい。
体感的にはGoは速かった気がする。
OCamlCommon Lisp辺りもコンパイルするものだから、速度的には期待できそうな気がする。
ClojureScalaJVMが頑張ってくれるのでこれも良い。

JVM上で動く言語に関しては、JRubyJythonなどという選択肢もあるが、最新付近の言語仕様に追いついているものではない。どうせなら言語の最新のバージョンを対象としたいのでやめておきたい。

自然言語処理をする必要も出てくるだろう。
が、ココらへんの知識はないので、形態素解析ライブラリが呼びやすいもの、くらいの認識で。

テストをしやすいこと(これはアプリ設計の問題のほうが大きいが)、リファクタリングをしやすいこと、拡張がしやすいこと、それらを含め、気持ちの上での障害も少なく書くことがストレスにならないこと。
これに該当するものとしてどの言語をピックアップするかは、各言語の習得状況に大きく依存するだろうけど。
今の段階では、RubyPython、Go、Scala辺りだろうか。
型システムが便利なOcamlも良さそうではある(デバッグが簡単そう)。

さて、どうしよう。

Land of Lisp

Land of Lisp

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

プログラミングClojure 第2版

プログラミングClojure 第2版