I have find that I generally like opinionated software when its creators share the same opinions that I have and dislike opinionated software when its creators have strongly different opinions than I have. This is not a surprising observation, but it is a reminder that I should probably generally agree with the opinions that form a language's or framework's foundation and vision before jumping earnestly into that language or framework.
Noop's Opinions
As the project's subtitle ("A testable programming language running on the JVM.") suggests, testability is a primary objective in the design of the Noop language. Thus it is not surprising that many of the opinions behind Noop are related to language features that tend to make code testing easier. Major features that Noop is designed to strongly encourage include testability, dependency injection, readability, strong typing, and immutability. On the other side, Noop attempts to deter use of statics (often cited as problematic for testing), implementation inheritance, primitives, and boilerplate code.
Even the project's main page is highly opinionated. Take, for example, this description of dependency injection (I added the highlight):
Dependency Injection changed the way we write software. Spring overtook EJB's in thoughtful enterprises, and Guice and PicoContainer are an important part of many well-written applications today.
It is difficult to quantify the "thoughtful enterprises," though it is at least implied that those who use Enterprise JavaBeans (does this include EJB3/JEE5/JEE6?) are not as thoughtful.
Conclusion
We seem to be seeing more JVM-based languages coming out all the time. Most will probably never gain significant traction and be lost in the noise, but it will be interesting to see if Google-backed Noop can begin to compete with other JVM-based languages such as Groovy, JRuby, Jython, Scala, and other leading contenders for developer mind share.
Additional Resources
⇒ noop: A Testable Programming Language Running on the JVM
⇒ Google Urges Developers to Get in Loop with Noop
⇒ Google Launches 'Noop' Language for the Java Platform
⇒ Noop: A New JVM Language by Google
⇒ Google Delivers New Java-like Language: Noop
⇒ Google's Noop Steals the Show at the JVM Language Summit
⇒ Google Develops 'Noop' Language
1 comment:
After browsing through the Noop project page, one definitely gets the feeling that Noop is more about ideas, concepts, and proposed features than it is about actually implemented code.
This is reiterated in Graeme Rocher's tweet on Alex Eagle's Twitter: "thanks for being the one person to point out that Noop is now mostly a wiki of ideas. An interpreter for Hello World is news?"
Post a Comment