『プロダクティブプログラマ』あるいは化石プログラマの行く末

前半戦は読み物としてお気軽に楽しく読めたけど、後半は硬派で、

ソフトウェアの複雑化により技術者は急速に専門化に向かっています。専門化にはアプリケーションの種類別の専門化とプラット-フォーム別の専門化があります。専門化の進む「すばらしい新世界」に対応するためには、多言語プログラミングやドメイン特化言語を取り入れていくべきです。そうしなくては今後多く発生する新たな問題の解決は難しくなるはずです。今後5年の間に、ソフトウェア開発の様相は、今日とは全く違ったものに変わるに違いありません。

のくだりにはちょっとビビってます。

最近はHaskellとかScalaとか良く目にするので関数型プログラミング言語には少し興味があったのですが、これを読むとお気軽に試してみるというレベル以上のものを押さえておかないとなーなんてシリアスになります。DSLなんてのも良く聞くけれど今ひとつしっくりしていないし。SQLもDSLの1つですなんてので妙に安心したりして...これまでは、C/C++さえ押さえてりゃまぁなんとかなるだろっていう感じのプログラマ人生だったので「すばらしい新世界」に飛び込んでいけるかなってのが化石プログラマの不安。

使用目的がきわめて限定されたDSLがいくつも作られる可能性が高いと言えます。その場合は、どのDSLも解決すべき問題に密接に関わり、問題の性質が言語の性質に大きく反映されることになるでしょう。汎用の言語を1つだけ使って開発をするという時代は終わりに近づいています。

そういえば、少し前に『今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)』なんてお題があったけど、僕の場合は使い始めが古い順に

  • COBOL(プログラマ人生の始まり)
  • COBOL/S
  • HPL(NECで働いてました)
  • C(最初はNEWSで...)
  • shell(csh,kshell,bash...)
  • awk(今でも必携)
  • sed(同上)
  • C++(最後はこれだと思ってい[る|た])
  • VisualBasic(もうやらないな)
  • VisualC++(MFC)(それほど嫌いではない)
  • VBA(Access/Excel)(業務上仕方がない)
  • Java(個人的にはもうやろうとは思わない)
  • perl(一度挫折して今また勉強中)
  • ruby(好き!)
  • SQL(MySQL/Oracle/DB2/Sybase/SQLServer/PostgreSQL...)
  • PHP(一度で”もういい”と思った)
  • AppleScript(まあね。使うから)
  • Objective-C(大好き!)

こんなもんで、汎用言語のオンパレード。今後はHaskellとかErlangとかを追加したいかなぁ。とりあえず、Haskellインストールしてみたけれどどうしましょ?何か課題をみつけて実際にコードを書いてみるのが、理解への近道なんだけど、まぁプログラミング言語に限らず、あらゆる勉強の中でこの「適度な課題」ってやつが問題ですよね。

多言語プログラミングをうまく利用することで、マルチスレッドプログラミングを簡単にすることを考えるべきではないでしょうか。

あたりを念頭に、勉強をはじめて見たいと思います。

プロダクティブ・プログラマ -プログラマのための生産性向上術
プロダクティブ・プログラマ -プログラマのための生産性向上術 島田 浩二 (監訳) 夏目 大

オライリージャパン 2009-04-27
売り上げランキング : 2253

Amazonで詳しく見る by G-Tools

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/317

返信