共通部品を組み合わせるだけでソフトウェアが出来上がる?

なんだかソースを書くお仕事をしていると、
ソースを再利用するんだ! なんていう声が聞こえる。
ホントに? 実績もないソースを再利用する? ホントに?
いいよいいよ、しなくて良いよ。
再利用するのはソースじゃない、構造だ。

ソースを再利用するんじゃない、構造を再利用するんだ - 神様なんて信じない僕らのために

共通部品とか好きですよね、みんな。例えば、

大きな流れは,文字表現から図表現への転換である。プログラムを文字で書くから間違いが生じる。それなら,基本機能をブロックとしてまとめ,そのブロックを線でつなぐことでソフトウエアを作ろうというものである。

プログラマーの手足を縛れ - 産業動向 - Tech-On!

この人は共通部品を組み合わせることでソフトウェアが出来上がると信じちゃってるだろうな、とか。
自分は一回仕事で図を使ってプログラミング(笑)をしたことがあるけど、あんなものは二度としたいとは思わないね。
バイナリだし、デバッグできないし、マウス必須だし、バージョン管理すらままならないし。


これは環境が進化すれば解決するような問題じゃない。
だって、これはフローチャートという遺物にその源流があるから。
ソフトウェアってのは、2次元でどうにかできるようなものじゃない。それを図で解決しようとしてる時点で発想がおかしい。


図じゃない共通部品*1にしたって、それを組み合わせてソフトウェアが完成するなんてどんだけ頭が春なんだよ。
ビジネスロジックをうまくまとめて共通化した例なんてお目にかかったことないんですが。
フレームワーク?独自のですか?Template Method使っただけ、しかもstaticメソッドを大量に使わなきゃならないあれのどこがフレームワークなんだよ。
そろそろ目を覚ましたほうがいい。

*1:要は独自ライブラリ