Registered: Feb, 2004
Re: The Problem with Programming
Posted: Nov 29, 2006 11:50 AM
> I fail to see any significant language advances that have
> occurred outside C++.
As does Bjarne, along with most C++ hardcore developers, which is unfortunate.
Garbage collection? Google returns
> close to million hits. Generics? Yes, I know, long error
> messages and buggy compilers etc, but the bottom line is -
> STL is a decade older than Java generics which, please
> correct me if I'm wrong, boil down to a fancy casting
> syntax. Reflection? RTTI. Exceptions? Got it. Closures?
> They're coming in C++0x. So, what exactly are those
> "advances outside C++"?
Again, you are focusing exclusively on language features which, as I mentioned earlier, are no longer what modern programming (as in "solving today's problems") is about. Besides maintainability, readability and productivity, here are some innovations that happened in the Java world first (and if you're lucky, eventually got picked up by C++, although it's a rare occurrence):
- Servlets, JSP and other templating frameworks
- Database bindings: JDBC, Hibernate and such
- Standard multithread library and heavily documented thread-safe Java patterns
- Simple remote marshalling protocols
- On-the-fly bytecode generation, dynamic proxies
- Advanced IDE's providing smart completion, refactoring, source control support, fast browsing, etc...
- AJAX and related technologies (e.g GWT)
> I clearly
> see and agree with what Stroustrup is saying about the
> topic - there is a problem with programming and it's a lot
> of sloppy written code.
Nobody will disagree with that, and I'm sure this quote applied ten years ago and it will still apply in ten years from now.
What Stroustrup is failing to see is that C++ is one of the main culprits for this sloppy code in the first place, and that while C++ served its purpose two decades ago, the world has now moved to a higher level of abstraction and I, for one, certainly wish Bjarne used his fantastic intellect to try to solve today's problems instead of clinging to C++0x which, if we're lucky, will probably have to be renamed C++1x by the time the spec gets released.