数量的な根拠も何も無いので、単なる印象論と言われてしまえば返す口もない。 [[440]] ふと思ったけど、TDDの所を「OOP」に読み替えれば、丁度Javaが流行出す前は同じような話があったのではないだろうか。要するに高い技術力とモチベーションを持った人間が継続して参画しないと、新しい技術は中々浸透しづらいという一般的な話になる。 じゃぁなんでOOPが浸透したかというと、これはOOPというよりはJavaやC++が浸透したので、必然的にOOPも浸透したと言っても良いのじゃないか。ライブラリがVisualC++のMFCであったり、VisualBasicのOOP実装であったり、WindowsのActiveXに浸透しているオブジェクト的な考え方であったりして、それを使って仕事をする為には半ばやむなくOOPを学習せざるを得なかったのではないか。 と言う事はTDDを言語レベルで強制するような言語で滅茶苦茶便利な言語がメジャーになり、キラーアプリなりキラーライブラリなどが整備されていけば、現場でもやむなくTDDを始める事になるのかも知れない。 例えばクラスやメソッドと対になるテストクラスやテストメソッドが存在しないとコンパイルエラーにする。 例えばテストコードによるコードカバレッジが90%以上でないとそのオブジェクトはリンクできない。(無理矢理リンクさせる事も出来るが、大量の警告ログが出力される、とか) 他にもtryにおいてUnreachableなcatchブロックは警告どころかエラーにするとか。 Objectは基本Immutable(変更不可)にするとか。 Noopとかそういう志向なのだろうか。 - "noop A testable programming language running on the JVM" -- http://code.google.com/p/noop/