Tuesday, June 10, 2008

Bjarne Stroustrup on C++ 0x

Today I attended lecture given by Bjarne Stroustrup (creator of C++) here in Sophia Antipolis. He presented short overview on C++ 0x standard (where x is supposed to be 9 i.e. it should become ISO standard in year 2009) - previous C++ standard was established in 1998.

Bjarne Stroustrup presented couple of interesting examples of "new features" in C++ and I must admit that C++ standardization community took some good stuff from Java (I really don't care who was first so it is possible that Java took it from C++) e.g. simplified for loop. Another good idea is that C++ guys see the power in libraries and see that libraries don't have to be a part of the language. This is what I've always loved in Java (of course some people refer to it as Jar-Hell but they suck in their own misery :) and I don't care about them) - you have a language with some basic feature set and you can download powerful libraries that do good to you. In fact Sun made some heavy s**t quite recently incorporating into JRE everything what it could incorporate (Concurrency, Logging, Apache Derby, etc.) but they know it and probably (I don't follow the news) Java 7 will be light end pluggable.
As you can see C++ standardization community try to incorporate some good ideas. I want to emphasize word "good" because they really want to make C++ easier (Bjarne also stressed necessity to make C++ easier to teach and learn).

At any rate today's most important message for me was Bjarne's description of standardization process: it's slow, bureaucratic and democratic i.e. sucks.

God bless Sun for not standardizing Java!

Well, in fact Java is a standard - there are many JVM providers and they are all compatible - there is only one JVM specification. Of course for many years Sun was the only owner of the Java technology but many companies contributed to its evolution. And what...? It made it only good. Now (not very much now :) Sun decided to make Java open (it was almost always open but in read-only mode) - we all can contribute in JVM or Java compiler development (for example). How will that end? I don't know but definitely Java is evolving faster than C++, Java communities thrive and flourish, Java IDEs are awesome and free of charge, etc. If Sun decided to standardize Java would it be so good now? I don't think so.

My conclusion is that standards are OK but they do not apply to every aspect or technology of engineering. It's good to have a standard TV or electric socket format, it's good to have a steering wheel and pedals in the same place and working in the same way in cars but it's not a good idea to standardize programming languages. Why? Mainly because programming languages are too complex, standardization process takes ages and people just can't wait 10 years for improvements. It's sick! I think that C++ is a very good general-purpose language but it could be even better without standardization.


心寄笔端 said...

Why they ask you to the meeting?

Anonymous said...

Where is the information about the Bjarne Stroustrup lecture? This entire blog posting was all opinion and ultimately about JAVA. BORING!!! You should re-title the blog to be "Java and my opinions on how it pertains to Bjarne Stroustrup's lecture that I apparently didnt even listen to."