中の人の徒然草345
昨日、久し振りにHaskellプログラミングしてみました。
やはり、純粋関数型言語は独特ですね。
あまり関数型言語でプログラミングしないものだから、プログラミングしにくいのですが、この言語は非常に興味深いです。時間に余裕が出来たらモナドの実装を詳しく調べたいです。
他にも、Clojure、Oz、Scala、F#、Elang、Rubyあたりをもっと堪能したいです。
普段の仕事では命令型言語ばかり扱っているので、こういった言語を扱うのはよいストレス解消になります。
それで仕事にこれらの言語を使えないかを考えてみたところ、ライブラリ次第だと思い至りました。
仕事となると、納期がありますので、生産性が大事です。
そして、生産性を上げる要因を考えたところ、先ず第一にライブラリが大事だなと考えたわけです。
開発環境については、最悪の場合テキストエディタとバージョン管理ソフトだけいでも何とかなるけど、ライブラリがなければ非常に苦しいです。特にGUI系のライブラリがないと辛い。
その点を考えると、これらの言語は仕事に使うのは十分に可能だと思います。
理想的には継続的インテグレーションを実現するツール類が必要となりますが、そういったツールもどんどん作られていくでしょう。関数型言語や論理型言語を使わない理由は、どうも慣習的な部分が多そうです。
私の思想は「使えるものは何でも使う」だから、使えるものがあるならば何故使わないのか不思議でなりません。
Scala・Clojure・F#はGUIも別に問題がありませんし、プロジェクトの特性に応じて使えばいいと思います。
私は前から不思議だと感じていたのは、日本のIT業界が保守を言い訳にして、使う言語や開発ツールなどを制限するところです。製造者の都合により、お客様にその都合を押しつけていいのでしょうか?
これはあくまでも私個人の考えですが、プロならば使えるものは何でも学習して、よりよい製品をより短期間で提供するべきだと思います。
こういうことを言ったら教育コストが・・・という言い訳をする人が出てきそうですが、基本的に実践を通じて学ぶべきものです。お受験じゃないのだから、何時までも机上で学習する必要はありません。短期間でサクッと要点を掴み、後は実践で鍛えるべきものだと思いますので、教育コスト論に疑問が生じます。
教育コストを理由に挙げる人は、画一的に学校のように学習させることを考えているという印象があります。
そんな余計な事をせずに、技術者同士で技術交流する時間を会社が与えればいいと思います。
変化が早いIT業界に於いて、鍛練するというのは当たり前の事であり、そういった事を考慮していない会社が多い事実は不思議でなりません。情報処理技術は変化が早いから常に学習させないと、ちゃんとしたシステムを開発できません。
情報処理技術を提供する会社は、情報処理技術の特色を考慮するべきなのです。
そういった環境が整っていない会社が多い要因は、多分この産業は日が浅いからでしょうね。
色々な技術が出てくるのは嬉しい事ですが、そういった経営面の研究も進んでほしいなと私は思えてなりません。