SoftwareDesign 2月号で「関数型プログラミング再入門」という特集がくまれました。「再入門」とあるのがミソかなと思います。特集では、関数型言語Lisp、OCaml、Haskell、Erlangが取り上げられ、Python、JavaSE8、Rubyを利用した関数型プログラムが紹介されています。
関数型言語は昔から興味を持ち続けているのですが、習得がなかなか難しく、一度学んでもしばらく使わないとすぐに理解できなくなっていました。(仕事で使うことはほとんどありません) 最近は統計学、データ解析などがブームなのも後押しをして、私のモチベーションも「再び」上がり現在、F#、Hakell、Erlangを勉強中の身であります。ただ学ぶだけでなく、これを使って何かを作るという目的があると意欲がつづきます。このブログでも記事がかけたらなぁと思っています。この投稿はそのキックオフみたいな意味合いもあります。
しかしながらプログラム言語というのは、プログラマであればだれでも興味を持つ話題です。「これからはやる言語は何?」、「初めてプロクラムを組むんだけど何を学んだらいい?」、「仕事に有利な言語は何?」などなど、それぞれいろんな意見が飛び交います。今はたくさんありすぎて何から学んだらいいか本当に悩むところです。私自身がプログラムを初めてころは、Windowsもインターネットも一般的なものでなかった時代で、C言語とアセンブラでほとんど仕事をしていました。それからWindows等のGUIとともにC++、インターネットとともにJava、HTML、PHP、JavaScript・・・・などと現在に至るわけですが、テクノロジーの進化とともに時間的に緩やかに学ぶことができたのは幸運だったかもしれません。C++もJavaももっと前からあったのですが、大々的に使われだしたのは、それぞれ使われる環境がそろってきてからだと思っています。GUIのプログラムはオブジェクト指向がマッチし、ネットワークプログラムはJavaが得意とします。そして次に関数言語ですが、構文解析、並列処理を得意といます。これも昔からありますが、いよいよビッグデータの時代に「再び」脚光を浴びようとしているのではないでしょうか。
私は、F#でWindowsストアアプリ、Haskellでファイルコンバータ、Erlangでデータ処理用サーバを作ってみたいと思っています。
またまたひさびさの投稿でした。