レゴプログラミング – The Joel on Software Translation Project

レゴプログラミング – The Joel on Software Translation Project

レゴプログラミングとはレゴブロックを組み立てるようにプログラミングが出来ることのたとえらしい。当然そんなことは出来るはずがなく、ジョエルもそんなことは言っていないません。まぁこういうことです。

主流のメディアがコンピュータプログラミングツールに関するレポートをしてひどく誤った情報を伝えることがたびたびある。

起きるのはこういうことだ。プログラミング技術を扱うどこかのベンダがプログラミングをより簡単にするという製品を作る。中身を本当に理解しているわけではないジャーナリストが受け取るのは、「プログラミングが簡単になる」ということだ。そして多くの場合、レゴブロックの比喩が使われる。

日本だとN社雑誌にてたまに同様な論旨の記事が見られます。

当然結論は

彼らは誰もフレデリック・P・ブルックス (http://www-inst.eecs.berkeley.edu/~maratb/readings/NoSilverBullet.html)が1987年に書いたことを信じてないらしい。「現在のところ銀の弾丸が見あたらないというだけではない。まさにソフトウェアの本質が、それをありそうにないものにしているのだ。電子工学、トランジスタ、LSIがコンピュータハードウェアに対して与えている生産性や信頼性やシンプルさをソフトウェアに与えてくれるような発明というのは現れそうにない・・・ソフトウェア構築で困難な部分は、この概念的な構成物の仕様を作り、デザインし、テストすることにあり、それを表現したり、その表現の正確性をテストする手間にあるわけではないと私は考えている・・・これが正しいなら、ソフトウェア開発はいつまでたっても困難であり続ける。本質的に、銀の弾丸は存在しないのだ」

はい。その通り。

ただ、レゴブロックではないものの電子ブロックぐらいに開発の作業自体を簡単に楽しくしてくれる物もあります。死屍累々と言われながらも、ちゃんと存在し、その対象ドメインではちゃんとアプリケーションが作れるビジュアルプログラミングの世界です。

例:

対象アプリケーションドメインをある程度絞り込めるなら、ビジュアルプログラミングは実用的です。テキストエディタばかり見ていないで、たまには箱を線でつないでプログラミングしてみませんか?

 

 


レゴを幼稚な物としてとらえていること自体が、元々の間違いだと思います。レゴブロックもその成果をそれなりのもにしたければ、その作業はプログラミングそのものだと思いますけどね。

コメントを残す