Point noted, and it is an important one. (what do you mean, 'without trying to be pedantic'... in THIS crowd?? ;-) Speaking of pedantic, it's "iterator", not "interator"... ;-)
Yeah, I know. Just tell my hands...and wait till I get used to this goofy Compaq keypad...;-)
One that comes to mind is the handling of exceptions; it is pedantic to require the caller of a function that can raise an exception to handle all exceptions that that called function can produce.
And in my opinion it's bad practice not to explicitly catch them all.
What, to simply pass them on to the next higher level, because you know there is a higher level function that is designed to handle those specific exceptions? The trouble with panaceas, IMnsHO is that they dont take into the account the details of the situation...you know, like when all you have is a hammer, everything looks like a nail? (Or my new favorite," When all you have is FrontPage, everything looks like a web server".)
I'm sure I can come up with several dozen other "problems with the language" once I becmore more familiar with it.
And I'm sure I can with C++ as well. ;-)
Which would become a waste of both our times. What say we simply agree that both languages have their strengths and weaknesses, and neither are optimally suited for everything?
Or handwave them away with "that isn't a problem for me"...? ;-)
What?!? When did I become Marlowe? ;-)
Who said I was dangerous? I've been talking about other people's code and what a pain-in-the-ass it is to work with... And this stuff was written by intelligent people (one of whom did his own port of STL to gcc 2.95.2). It's like perl: great if you're working on it by yourself, but horrible once you start to bring other people into the same code base; this sort of overly, needlessly complex crud kills large development efforts. Java protects me from other people's stupidity.
I agree that working with other people's code is a pain. I said that earlier. I don't agree that Java, or any other language protects one from other people's stupidity. I feel that way about Java especially, because every example of Java code I've seen has been an incomprehensible jumble, including the stuff that is supposed to be "really good stuff". It is my opinion that Java itself lends itself to this, because of its pile-everything-into-the-same-file approach to writing. But nobody, and I mean nobody (present company excluded) gives two shits about the readibility of the code they write. so I think here we can agree, and disagree simultaneously.
C++ was developed as a hacked on preprocessor to C. The world has moved on to develop better object oriented C implementations since then. Unfortunately the world also runs on the "good is enough, better is worse" principle as well.
This I 100% agree with. And I'd like to see Objective C sometime, to see what all the hoopla is all about. But I doubt you'd disagree that someone who can make a complete mess of a C++ source file can (and generally will) make an equal mess of an Objective C source file, or a Java source file as well, for that matter.