The tireless, developer-centric engineers at Google have come up with Noop, a new language that runs on the Java Virtual Machine.
“Noop (pronounced ‘noh-awp,’ like the machine instruction) is a new language that attempts to blend the best lessons of languages old and new, while syntactically encouraging industry best-practices and discouraging the worst offenses,” according to a description of the language on the Noop language Website.
Noop supports dependency injection in the language, testability and immutability. Other key characteristics of Noop, according to the Noop site, include the following: “Readable code is more important than any syntax feature; Executable documentation that’s never out-of-date; and Properties, strong typing, and sensible modern stdlib.”
Moreover, according to the Noop language home page, some of the thinking behind the creation of the language includes:
““Dependency Injection changed the way we write software. Spring overtook EJB’s [Enterprise JavaBeans] in thoughtful enterprises, and Guice and PicoContainer are an important part of well-written applications today.”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.”“
Discussed 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.”
In an August 2009 blog post, James Gosling, the creator of Java and a Sun vice president and fellow, said of the JVM Language Summit:
““The JVM Language Summit is an open technical collaboration among language designers, compiler writers, tool builders, runtime engineers, and VM architects. We will share our experiences as creators of programming languages for the JVM and of the JVM itself. We also welcome non-JVM developers on similar technologies to attend or speak on their runtime, VM, or language of choice.” “