ふと思い立って日経ソフトウェアをいくつか取り出して興味のあるところを読んでみた。関数型プログラミング言語まわりの特集号とかは多分購入していなくて、全般的な比較やトレンドがわかるもので面白そうなものだけチェック。
言語に共通するプログラミングの真実、とか、2013年ブレークするツール&ライブラリとか、プログラミング力を上げる44ステップとか、2014年プログラミング大予測とか、プログラミングで生きる道とか、そのあたりを眺めてみました。ざっと眺めてみて、関数型プログラミング言語の注目が高くなっていることは確かなのだろうけど、混沌としている印象ですね。オブジェクト指向プログラミングもJava一択の状況だったのが混沌としてきて、JavaScriptの重要度も気がついたら凄いことになっているなぁと。
JavaScript登場した当時、サポートするプラットフォームの多さから、プログラミング入門にJavaScriptが使われるようになるだろうと、そこそこ大胆な予想はしていたのですが、ここまで普及して実際のサービスでも使われまくるとは思っていませんでした。BASICで入門というあたりを置き換える程度に考えていたからですが、ライブラリが充実して、AJAXが登場して、できることが増えた結果、利用される場面が増えましたねぇ。
統合開発環境もオブジェクト指向プログラミング到来で必須かと思っていたら、意外とスクリプト系のプログラミング言語はエディタ環境を充実させて開発をしてしまうことが多いようで、いまひとつパッとしないなぁ、と思っているのですが、どうなんでしょうねぇ。JavaだとEclipse、NetBeansのどちらかは欲しくなりますが、他のプログラミング言語はどうなのでしょう。JavaScriptとかPHPとか、これを使うでしょう普通、という統合開発環境がなんとなくなくて、Webブラウザとエディタで頑張ればいいみたいな感じもあって、そういうものかなぁ、と思っているところです。printデバッグはよくやりますが、やっぱ統合開発環境を使った方が本質的には効率がいいと思うのですよね。
テストファーストや継続的デリバリーなどの話題もあったりして、開発手法にも色々とパラダイムシフトがきているので、どういう環境がいいのか、というのは、まだまだわかりませんが、あまりむやみに試してみるわけにもいかず、軸を決めて整理しながら取り組んでいきたいところです。一番の大きな問題はコミュニケーションじゃないかという気がするのですけどね。結局のところ、気分よく開発ができないといけないわけで、それで一番のストレスはどこに来るかというと、大抵他の人との調整といったあたりなんですよね。ツールですべては解決できないので。
ということで、Scala, Haskell, Go, Dart あたりも連休中にざっくりと最新の動向をみたかったのですが、あまり見ることができませんでした。腹筋とか腕立て伏せのような基礎体力作りとか重要なのと同じように、プログラミングでも基礎作りは大切なのでやりたいのですが、なかなか思うようにできないものですね。そういえば、Swiftとかもありましたね… 皆さん、そちらもフォローしているのでしょうか。
書籍で勉強するなら下記あたりですかね。
- 基礎からわかる Go言語
- プログラミング言語Goフレーズブック
- プログラミング言語Dart (アスキー書籍)
- Scalaスケーラブルプログラミング第2版
- Scala逆引きレシピ
- Haskellによる並列・並行プログラミング
- すごいHaskellたのしく学ぼう!