I first started working with languages when I was born! Seriously, I had to learn the so called “Human Languages” to communicate with other humans, a couple of them were basically restricted to my region/country and one which is accepted universally (at least with the people I am working with). During my school days I started with another set of languages which one needed to grasp in order to communicate with a mathematical machine known as ”Computer”. In that sense, my first computer language might be Finite State Machine/Automata (FSM/FSA) which I studied in my school. Then BASIC, C, C++, Java, etc. during my graduation period. After that variants of those main languages with use of extra class libraries such as Visual Basic, Visual C++ (with MFC & ATL), ASP, JSP, JDBC, ODBC, etc. Recently I am doing more and more stuff in CSharp (C#).
Imagine the mess I am getting myself into working with different languages and not to mention various libraries which provide similar functionality in different ways. And then comes one more language NOOP which runs on JVM and is very much similar to Java! Huh, is it not more class libraries? Maybe instead of Java Main it might have a NOOP Main which ultimately calls Java Main from inside some class/wrapper library? So why is Google inventing a new language instead of just releasing some strongly typed libraries? As I understand, it wants to be everywhere. The day is not far when Google will come out with its own high level assembler.
Anyways, one of the interesting thing I found was that NOOP would not have any statics. So no singleton entities or maybe singleton implemented using some intricate library calls. No implementation inheritance means no subclassing and I don’t even want to know how OOD will survive without that. Or maybe I am too old and too much into assembly! No primitives is something I am looking forward to but I am not sure what kind of load that will put on the system. Again it might be good for user mode non-critical applications but can it do any real mathematics (try building a calculator with inter changeable types i.e. simply using objects and typecasting or leaving it to the compiler’s mercy for runtime interpretation of values).
Lets see how it turns up and if Google somehow manages to impose it on us gullible folks once again. Check out more on: http://code.google.com/p/noop/