16 Feb 2009 chromatic   » (Master)

Facts versus Reputation

What language community has a greater reputation for being obsessed with TDD?

Obie: NO, Giles Bowkett (discussing Ruby)

Perl has had a canonical test suite in the core repository and shipped those tests with every source distribution since 1987. As of at least Ruby 1.8.7 (May 2008), this was not true of Ruby.

The third edition of Programming Perl, released in 2000, had a short (less than a page) discussion of Perl's testing modules and the CPAN testing system. The first edition of Programming Ruby, released in 2001, has no mention of testing that I can find.

Test::Builder, written in 2002, allows the existence of hundreds of Perl testing modules which can all work together in the same program to improve testing and the reusability, abstraction, and clarity of test programs. To my knowledge, Ruby has nothing like this.

The CPAN Testers project is nearly 11 years old (May 1998). Every distribution uploaded to the CPAN receives test reports for myriad combinations of operating system and version. The Perl CPAN culture encourages a testing culture, and has done so since before anyone in the US had even heard of Ruby. (Ruby has nothing quite like the CPAN.)

The Perl 6 specification includes a comprehensive test suite; every implementation of Perl 6 must pass this test suite to earn the label of "A conforming Perl 6 implementation". While the Rubinius project has done great work trying to create something similar for Ruby -- and while projects such as JRuby and IronRuby use this suite -- I'm not aware that the MRI developers have the same degree of interest in a comprehensive test suite.

This, then, is one of my persistent gripes with certain vocal members of the Ruby community. While it may be technically correct (the best kind of correct) that the Ruby community has the greatest reputation for testing of any other language community, the facts as I see them seem to contradict such a strong assertion.

Syndicated 2009-02-16 20:42:36 from pudge

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!