Good ideas get coopted. That’s what they do. For example, JUnit was coopted by the .NET community and ported into NUnit. However in NUnit 2.0, the .NET community innovated with the usage of attributes.

Now Java has caught up with TestNG (thanks to Kyle for pointing me to this). With the brand spanking new version of Java out there (JDK 5.0 aka Tiger), Java now has Annotations. This is pretty much equivalent to Attributes in .NET. TestNG takes advantage of Annotations and builds a unit testing framework around them that looks quite familiar if you regularly use NUnit 2.*.

And I’m certain both these platforms have borrowed ideas from even older platforms.