> As for programming languages, defining success by anything> else than popularity is quite odd, to say the least.

What he said was that "not all successful things are good things". He didn't say that success was not related to popularity. I think actually, he implied that success and popularity are the same thing in the context of programming languages.

I don't have anything to say about C++ but I agree with the general argument that popular != good. Honestly, I doubt you really disagree. Otherwise, you'd have to believe that McDonald's has the best food, COBOL is the best programming language, Windows is the best operating system, IE is the best web browser, JUnit is the best Java unit testing framework, etc. I didn't check that all of these are the most popular in their relative niches but you get the idea.

However, it is funny that the ability to create objects on the stack is viewed as an unfortunate result of compatibility with C. Reminds me of 1990s when good C++ code was expected to look as SmallTalk :)

Today it is generally considered a good idea to create all objects on the stack, or at least wrap them into objects that are created on the stack.

> I don't have anything to say about C++ but I agree with > the general argument that popular != good. Honestly, > I doubt you really disagree.

True, popular is not always synonym of good, but I was trying to bring the debate back on objective grounds.

We all have our personal preferences (e.g. I'm a big fan of the Fan programming language) but since most of them are based on aesthetic and subjective criteria, mentioning them in this discussion serves little purpose.

I do feel strongly that- C++ is a successful language- C++' success is proof that design by committee can work, or at least for a certain amount of time

> True, popular is not always synonym of good, but I was> trying to bring the debate back on objective grounds.> > We all have our personal preferences (e.g. I'm a big fan> of the Fan programming language) but since most of them> are based on aesthetic and subjective criteria, mentioning> them in this discussion serves little purpose.

I don't disagree but the point made wasn't that the best programming language could be determined objectively, it was that you can't determine the 'best' programming language objectively, specifically though measuring its popularity.

> I do feel strongly that> - C++ is a successful language> - C++' success is proof that design by committee can work,> or at least for a certain amount of time

I don't think anyone is saying that it doesn't work, but questioning whether it's likely to produce the best outcome. That's back in subjective territory but that doesn't mean it's not important.

>> the inclusion of the new keyword is a mystery.> > I am fairly sure that the reason was a familiar one:> backward compatibility with C++. ... I recall that much of> the hype consisted of pointing out how you could take a> program written in C++ and run it as Java with only minor> changes to syntax.

If they really wanted backward compatibility with C++, why did they make the default access control modifier "public" for class members instead of "private" as in C++?

I think that there is an element of not seeing the woods for the trees here.

Sure we can assert that we are making objective statements about the strengths and weaknesses of specific languages, but its disingenuous to suggest that these statements are the reasons for our feelings. Someone famously said that man is a rationalizing creature, but not a rational one.

I could suggest that I prefer Ruby to Python because of whitespace but that would be a crock. I prefer Ruby to Python because I know it better, I feel loyalty and affiliation because I'm in the Ruby club and not the Python club.

Its easy to be smart after the fact when discussing any language. But to anyone who lambasts a language creator I have to ask, "So WTF have you contributed to our field that is comparable in added value?" I recall what a superb improvement Fortran 77 was over Ratfor, and how hard the standardization committee worked on Fortran 8x, whilst simultaneously being criticized for being "not C++"

Sure C++ sucks, and Java sucks - but thats because everything sucks. The reason that we are discussing these languages and not Delphi, Ada, C#, tcl or Modula 2 is because they are great languages. Great in that they changed the world, had a major impact that defined generations of developers. In ten years time we will no doubt be lambasting Ruby and Scala and Nice and F#

So sure, puff your chest out and posture as you compare your good languages to the other bad language but remember that if this good language didnt exist we wouldn't have the experience to know whether feature X was good or bad.Archeology is great, but give credit where its due to those who changed our world.

> I think that there is an element of not seeing the woods> for the trees here.> > Sure we can assert that we are making objective statements> about the strengths and weaknesses of specific languages,> but its disingenuous to suggest that these statements are> the reasons for our feelings. Someone famously said that> man is a rationalizing creature, but not a rational one.> > I could suggest that I prefer Ruby to Python because of> whitespace but that would be a crock. I prefer Ruby to> Python because I know it better, I feel loyalty and> affiliation because I'm in the Ruby club and not the> Python club.> > Its easy to be smart after the fact when discussing any> language. But to anyone who lambasts a language creator I> have to ask, "So WTF have you contributed to our field> that is comparable in added value?" I recall what a superb> improvement Fortran 77 was over Ratfor, and how hard the> standardization committee worked on Fortran 8x, whilst> simultaneously being criticized for being "not C++"

You don't have to be a film maker in order to criticize a movie. And you don't have to be a language creator in order to criticize a programming language.

I would have created my own programming language if I had the time. But I don't. I work as a full-time programmer, and personal life matters to me.

Mankind has progressed so far that it is impossible for an individual to be a master in every domain. Nowadays people are specialized in their domain. I can't create a programming language, but a university professor can.

> The reason that we are discussing these> languages and not Delphi, Ada, C#, tcl or Modula 2 is> because they are great languages. Great in that they> changed the world, had a major impact that defined> generations of developers. In ten years time we will no> doubt be lambasting Ruby and Scala and Nice and F#

The success of C++, for example, is not because it is better than Ada, but because of its promises.

> > So sure, puff your chest out and posture as you compare> your good languages to the other bad language but remember> that if this good language didnt exist we wouldn't have> the experience to know whether feature X was good or bad.

I disagree again. Object-oriented programming, garbage collection, functional programming are around for at least 30 years. Various programming language features are well known both in theory and in practice for at least 30 years.

> Archeology is great, but give credit where its due to> those who changed our world.

I would give credit to anyone who creates a programming language that does not torture me for no reason other than the shortsightedness of its creator.

> Whether or not it was entirely legitimate, Stroustrup's constraint was that a C program should compile with either trivial or (preferably) no changes under C++. This provided an easy evolution path for C programmers, but it was a big limitation and accounts for virtually every difficult feature that people complain about.

Doesn't this mean that C++ IS a badly designed language?

You know, there is another OO extension of C, ObjectiveC (MacOS X is written in it). ObjectiveC doesn't have this stupid "constrain of 100% C compatibility", and it's much, MUCH more elegant, clean and useful language.

My guess is that popularity of C++ is driven by the fact that M$ windows is written in it. And BTW I hate M$ in general and it's parody on OS, too.

> I think most of us would agree that C++ has become hard to> use today, but given the success of C++ overall, I would> argue that it qualifies as an exemplary success story for> the concept of Design by Committee...

At the time, there were not a lot of alternatives to C++. If you wanted to write applications for the Mac or Windows what choice did you have?

I recall in 1999-2000 I started writing a server-based web application and considered C++. I knew at the time I wanted something better. Fortunately, J2EE came along at just the right time. I always felt _stuck_ with C++ - I imagine I'm not the only one.