New Language for Java by Google Developers Gains Interest
Experimental language aims to promote good coding practices, discourage bad ones
A group of software engineers led by two Google developers are working on a new language for the Java Virtual Machine. The project, dubbed Noop (pronounced noh-awp), is an experimental new language that aims to promote good coding practices while discouraging bad ones, according to the group's Web site.
Google software engineer Alex Eagle and software development coach Christian Gruber are leading the project. Neither would agree to be interviewed. Noop is a "side project," not sponsored by Google, Gruber said in an e-mail. "I don't want to accidentally be perceived as speaking for Google simply because I'm an employee of the firm," he noted.
The goal of the Noop project, according to the Web site, is to build dependency injection and testability into the language from the beginning, instead of relying on third-party libraries as do other languages. Initially, Noop will run on the JVM, the source code will look like Java, and it will be offered under an Apache 2.0 license.
The Noop project committers are building a language that, among other things, supports dependency injection, testability, and immutability. "Dependency Injection changed the way we write software," they wrote on their Web site. "Spring overtook EJB's in thoughtful enterprises, and Guice and PicoContainer are an important part of many well-written applications today." Automated testing -- especially unit testing of individual software components, they say, has become a crucial part of building reliable software. "Any decent software shop should be writing some tests, the best ones are test-driven and have good code coverage."
The list of features the Noop committers intend to build into the language also includes syntax geared entirely towards readable code, executable documentation that's never out of date, properties, strong typing, and a "sensible, modern standard library." Noop will not include statics, implementation inheritance, primitives, or un-needed boilerplates.
"Automated testing, especially unit testing, is also a crucial part of building reliable software that you can feel confident about supporting and changing over its lifetime. Any decent software shop should be writing some tests, the best ones are test-driven and have good code coverage."
Revealed at the 2009 JVM Language Summit on Sun Microsystems' campus in Santa Clara, Calif. on Sept. 16, Noop has quickly become the topic du jour in the Java development community. Indeed, the Noop site also said, "Noop is a new language that runs on the Java Virtual Machine, and in source form looks similar to Java. The goal is to build dependency injection and testability into the language from the beginning rather than rely on third-party libraries as all other languages do."
Though it’s not officially sponsored by Google, the Noop project is hosted on the Google Code Web site The site describes the project participants as "a collection of like-minded developers and contributors from several companies, including (but not limited to) Google."
The Noop project is barely off the ground, but news of the nascent language has quickly attracted interest in the development community, thanks to Eagle’s presentation on the topic at the JVM Language Summit.
Judging from the reaction on Twitter, the attention might all be too soon for the project leads. A recent Gruber tweet read: "Wow. Way way way too many people have been getting excited about #noop, even though it is just a brainstorm right now. <sigh> Fun tho." An Eagle tweet thanked another Twitterer for "being the one person to point out that Noop is now mostly a wiki of ideas."
It may be very early days, but early reaction suggests this will be closely watched. Those interested are invited by the project owners and committers to join the mailing list at firstname.lastname@example.org.