> The C++ spec is controlled by a large and sluggish > controlling body in the form of the ISO, and as a result > hasn't been updated in about a decade.
Having been on the C++ standards committee for the first 8 years, I see it differently. Like Python, C++ has a strong guiding hand in the form of Stroustrup. There were other strong characters as well, but we effectively had a kind of BDFL.
The difference, and it's a big one, is in the difficulty of implementing features. Stroustrup, not the committee, was the big resistance factor in adding new features, because he wanted the language to be done and stable, in the same way that C was stable. Especially at that time, a language that was a constant moving target was not so attractive. Many of the features added towards the end, like templates, took years to implement properly in the various compilers. Stability has been one of the great values of C++, I think, and so the strategy of not changing it was a good one.
Python is at the opposite end of the spectrum, where a feature isn't considered for adoption until it's been implemented and tried out (in C++ features were discussed via thought experiments; it was much like being in a math class).
Python has even broken the mold in version 3.0 and refactored itself, introducing breaking changes in order to clean things up that were found to be warts. C++ was constrained by backwards compatibility with C. Java is constrained by backwards compatibility with its own (often bad) implementations.
So while I continue to be fondest of the Python programming experience, and very much enjoy the experience of having new (smart) features added to the language, I would not want to see C++ changing rapidly. It solves different problems and has different constraints, and people need it to be stable.
I'm not sure if you are aware of JNA - https://jna.dev.java.net/ - which does give you easy access to underlying native code without having to go through JNI.
JNA uses libffi underneath, which, funny enough, is the same library Python's ctypes ended up using underneath a while ago. Libffi comes from, gcj, an ahead of time compiler for the Java programming language maintained by the Free Software Foundation.
Since Java became open source, libffi has seen another use in Zero, a cross-platform backend for the hotspot interpreter, bringing OpenJDK to many places where Java didn't go to before. Just last week Robert Schuster get OpenJDK working on an OpenMoko.
Opening up the Java source code under an open source license made it much more accessible to a new generation of developers. They are more doers, than talkers, though, as they've grown up with open source - just the kind of audience one would wish to work with. The culture change you're dismissing has been happening over the past two years all over the Java world - the Java related conferences today largely cover open source technologies, including all the talks about future JDK releases.
The exposure to new developers is changing the way things are done, too - OpenJDK will soon host a project for small language changes to be tried out before they go into JDK 7.
> > > I am more interested because I would like to invest > time > > in something that would bring me value in the future. > > Who wouldn't.
Learn Smalltalk. It may not turn out to be the next big thing, but all the current crop of OO scripting languages borrow heavily from it.
If you want to cover your bets on the functional side, then Haskell seems to be the tour-de-force of functional languages.
With a sound grounding in OO and functional concepts you'll be prepared what ever comes next (you will also be better equipped to have a positive influence own what "next" turns out to be).
One last point. Shouldn't we be telling the language designers what we need? As programmers perhaps we should take more responsibility for our own destiny rather then just waiting for the next bandwagon to jump on!
> Learn Smalltalk. It may not turn out to be the next big > thing, but all the current crop of OO scripting languages > borrow heavily from it.
I have to say, the people who have always seemed to grasp the OO issues first have been Smalltalkers. I've had a very similar experience with Python -- it makes me think very differently about languages like C++ and Java.
Flat View: This topic has 19 replies
on 2 pages