« 「エンジニアのやる気は報酬だけじゃ維持できない」? | トップページ | jMockを使うとより「文芸的プログラミング」になる? »

2006年9月15日 (金)

ソフトウエア開発の「空洞化」

ゼネコンライクなSI企業だけの話だったら、うまくいったよしよし、まあいいか、で済むのかもしれませんが、日本の実装離れは確実に進んでいるようで、空恐ろしくなりました。よく考えてみると、そこまで現地エンジニアで回るんだったら、日本の会社が関与する必然性がなくなって、実装だけじゃなく、案件そのものを根こそぎもっていかれちゃうかもしれないですしね。

もっと進んでいるオフショアによる空洞化 - Allegro Barbaro [ITmedia オルタナティブ・ブログ]

ソフトウエア開発の場合、「設計」と「実装」という分け方は、多分に便宜的なものだと思います。言葉遊びのようですけど、開発しているのは「ソフトウエア」なわけでして。「実装」もまた「設計」の一部分、「設計」の「最終工程」だと思います。この後、「製造」がコンパイラ・リンカによって行なわれる、という見方が妥当かと。

ここから、「実装」=プログラミングから切り離された「設計」などというものは、存在し得ない、というのが私の考えです。

ソフトウエアの設計手法は、 "Software crisis" 以来、構造化設計、オブジェクト指向設計と、変化していますが、これらは、設計手法が独立して考案されたというよりは、プログラミング言語の後追いで出てきたものだと思います。設計手法が先にあって、プログラミング言語が後から出来たわけではないはず。

そして、プログラミング言語自体、まだ変化し続けています。最近では、Javaにクロージャが提案されて、話題になっていたり(Peter Ahe''s Weblog など。クロージャのアイデア自体は20年以上前からあるようですが)。これは、Lisp、Haskellなどの「関数型言語」が、最近注目を浴びており、この流れに沿ったものと見ることができそうです。Rubyも影響を与えていそうですけどね。

つまるところ、今ある「(オブジェクト指向)設計手法」が、今後も通用するとは限らず、通用しなくなるときが、いずれは来るだろうということです。それは、主流のプログラミング言語の変化によって、もたらされるものであろうと。そのとき、「Javaでプログラミングするのに、COBOL前提で設計している」といったミスマッチが、また繰り返されるようになりそうですね。いや、「空洞化」が進む結果、そんな馬鹿げたことはもう日本では起きなくなるのかもしれませんけど。

P.S.
ちなみに、Borland Delphiは、Microsoft Visual Basic(VB) の「代替案」として使っています。「巨大なランタイム」、「OS(Windows)との密接な依存性」が、VBの「泣き所」でして。VB的に使えて、かつWin32ネイティブに静的リンクできるDelphi(for Win32)は、状況によっては重宝してますね。逆に、"Delphi for .NET"の存在意義を、いまだ見いだせなかったりしているんですけども。

|

« 「エンジニアのやる気は報酬だけじゃ維持できない」? | トップページ | jMockを使うとより「文芸的プログラミング」になる? »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 「エンジニアのやる気は報酬だけじゃ維持できない」? | トップページ | jMockを使うとより「文芸的プログラミング」になる? »