yojikのlog

yojikのブログです

TDDにLLとか重量言語とか関係無い

私が言いたかったのは、Test Driven Development (TDD)に関しては、JavaよりPerlをはじめとするLLの方がずっと先行しているんですよ、TDDを語るならJavaだけ見てていいんですか?ということなのだけど

偉大でもアジャイルでもない凡人のオレが言っちゃうんですが、イマイチな意見だと思う。
KentBeckの単体テストフレームワークをTDDの総本山と考えるなら、 TDDの流れは、SmalltalkJava → 他の言語 というかんじだと思う。故まさーるさんの解説でJUnitが日本に広く知られたのも1999年のことだ。もちろんLL系の方が相性はいいと思うけど*1
まぁそれはともかく、その場にある環境と道具で工夫してTDDをやる事が重要だと思う。そして偉大なハッカーでなくてもTDDやれるようにしようぜって事。言語によって先行してるしてないとか、この件においてはまるっきり関係無い。RubyでもJavaでもPythonでもPL/SQLでも自分の戦場で使う道具がTDDなんじゃないかな。ついでにいうと、エディタとJDKで十分TDDできるし。
あと、

プログラマーにとって最も偉大な習慣とは、プログラマーでない人たちの立場になってものを考えられるかではないのか。テストを書く人はプログラムを書く人と同じとは限らない。いや、本当のところは違っていた方がいいのだ

これはTDDの文脈からすれば完全に外してる発言で、どうなの? と一瞬思ったけど、テスト担当者や顧客?がガンガン受け入れテストが書けるようにする試み自体は大事だと思う。その場合にプログラミング言語で書くのは複雑すぎるので、Fitのような仕組みが必要だと思うけど。

とにかく、この手の言語自慢はネタとしてはもちろん面白いけど、ほどほどがいいなぁと思った。↓自分の気持ちはこんなかんじです。

 だって、言語は生き物なんだぜ?

 犬の品評会をやってる奥様にはなりたくないもんだ。

 「うちのfoobarちゃまはこんなにかしこいんでございますのよ?」「それにくらべておたくのJavaちゃまはなんですの?」なーんてな。

*1:コンパイルをしない分、フィードバックのループが短くなるから