そうしたわけで、ビジネスにとってはどのみち何の違いもないので、陳腐という烙印を押される。Warfield氏はこれを「革新に対する負担(税金)」と呼んでいる。プログラマーは、何度も何度も同じコンポーネント構築用の「メカニズムを再発明し続けて」いるか、ゼロから造り直している。Albert Wenger氏もこの問題を提議しており、Wenger氏が独創的な機能を提供する新しいプラットフォームが必要(source)と考えているのに対し、Warfield氏はコード再利用の促進を提唱している。
Warfield氏は、「プログラマーがコードの再利用を嫌うのは、コードを読んで理解するのが嫌だから」と理解している。しかし、これはプログラマーにつきものの特徴というよりも、プログラマーの雇用者が「デベロッパーに学習させる投資をほとんど行わないこと」や、C言語の排他的使用が原因だ、とWarfield氏は主張する。こうした「{ } (中括弧)」はコードの無駄の削減やコード再利用の促進には何の役にも立たないと、Warfield氏は確信している。{ } (中括弧)はUnix構築のために考案されたC言語の派生であり、「オペレーティングシステムなどの最も難しい種類のソフトウェア」を創り出し、「仮説をまったく立てることなく最も詳細レベルの細部に取りかかる」能力をもつことで特徴付けられる、システムプログラミング言語と見なされている。しかし、こうした{ } (中括弧)が普通にアプリケーションソフトの構築に使われている。
では、システムではなく、アプリケーションをプログラムしたい場合、{ } (中括弧)はどうなるのでしょう。[…]ハードウェアと通信できますが、オペレーティングシステムのことはほとんど知らないのです。[…]アプリケーション・フレームワークなしでは、「Hello, World」(皆さん、こんにちは)と表示する以外には、ほとんど何もできません。
もし、コードコンポーネントが再利用されるのであれば、習得の潜在的負担を最小化するような、もっと単純なサービス指向型アプローチを使って「差別化されていない70%の機能性」を構築できるだろう。Warfield氏は実際、OOPよりもSOAの方がコード再利用に役立つと確信している。OOPは「オブジェクトのきめ細かい動作を複雑な方法で制御するもの」であり、多数の事柄を「暗示的に、多くの、いろいろな場所で発生させる」ため、その結果、より分かりにくいコードとなっている。Warfield氏はこの件に関するブログの第2部で、単一の{ } (中括弧)の使用から脱皮する利点(source)について詳しく述べている。
こうした言語はレベルが低すぎます。マルチテナンシーやWebページ、セキュリティ、スケーリング、そしてWeb2.0やSaaSビジネス構築時に直面する無数の問題のどれに対しても、サポートが全然ありません。選択肢は3つあります。「すべてを自分で記述して70%のオーバーヘッドの負担(税金)を負う」、「多言語プログラマーになる」、「その仕事に最適なツールを選び、中括弧のパワーツールは高度な独自仕様の専売作品が必要になるまで仕事場に確実しまっておくことにより、オーバーヘッドを最小限度にとどめる」の3つです。
Googleの言語は実はC++ではなく、MapReduce、BigTable、Google File Systemであると主張する人もいるでしょう。C++は、こうした他のプラットフォームがマッシュアップするモジュールを記述するために使われたアッセンブリコードにすぎません。実際、CやJava、C++を単なるハンディなアッセンブリ言語と考えれば、「なるほど」と思えるのです。
原文はこちらです:http://www.infoq.com/news/2007/10/reducing-code-waste