I was at the JVM Language Summit yesterday and went to the session by the developers of Noop. Indeed, it has not been "delivered" - though they have a working "Hello World", the syntax of the language has not yet been finalized, nor have they begun work on a compiler that emits JVM bytecode.
The developers work at Google on their internal tools team, focusing particularly on unit testing. Hence, the inspiration for a language that's like Java but with Guice (Google's DI framework) and without the ability to shoot yourself in the foot in the ways that Java makes it particularly easy to.
Noop is a 20% time project for the developers. So, there's a tacit endorsement by Google, but it's not as if Google has staffed up a full-time team to deliver a new language that will be used throughout their organization any time soon. The developers don't expect to get much adoption for Noop, and hope that it will mainly influence people's thinking and other tools.
They say, this is made by google, and up to now, the google announcements I saw were very solid projects. Did I miss a lot of google announcements which are not solid projects?
On the other hand, the state of this language looks... early? I am not sure. I don't see much code (yes, those 40 lines linked to on this page really show the new and innovative powers of this language), and I do see a lot of 'we propose this and we want that' (+ the usual language buzzwords), which feels much more like a language brainstorm, or maybe the state where the results of the brainstorming are settling down... but nowhere near a solid project...
So, sorry to sound very unexcited, but at this point.. who cares about yet another language in a very, very early state?
but there's scarcely anything there. Which is all rather weird; I'd have thought that (1) one of the first things you do when designing a language is to mock up a load of example code to see how your ideas work together, and (2) you want to make that available to anyone looking at your language so that they can get a feel for what it's meant to be like. Oh well.
That's my first impression--I see a bunch of pages on the project wiki with proposed features for the language, but no documentation along the lines of "if you actually want to use this language to accomplish something useful, here's what you do".
I strongly suspect that something like this is the reason why there are few code samples. When do you not need to mock up lots of sample code when designing a language? When it's basically another pre-existing language with a few minor changes. (The pre-existing language in this case might not be Java, though I agree that that seems like a good guess.)
Thanks, to better inform my judgment, any topics in particular you'd like to know about? I'm always looking for blog topics and I'll probably approach some local groups in DC to see if anyone is looking for a speaker.
How Sleep made your coding go faster or enabled you to write expressive code as compared to coding in Java (with code samples drawn from ATD where possible :) - I like real world code comparisons vs toy examples)
A cursory look leads me to conclude that Noop has no primitive types. This results in Int (capital I) typed variables all over. While this follows the naming convention to which I adhere -- CamelCased classes -- there is still some cognitive dissonance. This might be a silly point, but I have not yet had coffee.
What do they mean by a language that supports dependency injection? What would be an example for a language that doesn't support it - stateless languages, I suppose? Because if there is no state, how to remember the dependencies?
Edit: Just checked if it is April 1st, but nope, it isn't. They must be serious.