Emerging language for Java seeks to improve coding practices
Group led by Google enginners developing Noop as a 'side project'
- By John K. Waters
- Sep 29, 2009
A group of software engineers led by two Google developers are working on a new language for the Java Virtual Machine. The project, named Noop, is an experimental new language that seeks 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, but neither would agree to be interviewed. Noop is a "side project," not sponsored by Google, Gruber said in an e-mail message. "I don't want to accidentally be perceived as speaking for Google simply because I'm an employee of the firm," he said.
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.
"Dependency Injection changed the way we write software," the engineers wrote. "Spring overtook [Enterprise JavaBeans] 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, has become a crucial part of building reliable software, they said. "Any decent software shop should be writing some tests, the best ones are test-driven and have good code coverage."
The features the Noop developers 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 unneeded 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."
First revealed at the 2009 JVM Language Summit on Sun Microsystems' campus in Santa Clara, Calif. on Sept. 16, Noop has quickly become the hot topic in the Java development community.
Although 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 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 at the JVM Language Summit.
Judging from the reaction on Twitter, the attention might coming be too soon for the project's 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, but early reaction suggests this project will be closely watched. Those interested are invited by the project owners and committers to join the mailing list at firstname.lastname@example.org.
John K. Waters is a freelance writer based in Silicon Valley.