Linked by David Adams on Sat 11th Oct 2008 16:48 UTC, submitted by IndigoJo
General Development Eric Raymond is working on an essay, putatively titled "Why C++ Is Not My Favorite Programming Language". In his announcement, he calls it "an overcomplexity generator", "bloated, obfuscated, unwieldy, rigid, and brittle", and alleges that these characteristics appear in C++ applications also. I contend that many of the complaints about C++ are petty or are aimed at specific libraries or poor documentation and that many of the features commonly regarded as unnecessary (and excluded from intended replacements) are, in fact, highly useful. C++: the Ugly Useful Programming Language
Thread beginning with comment 333325
To read all comments associated with this story, please click here.
Why ESR is not my favourite writer
by ebasconp on Sat 11th Oct 2008 19:47 UTC
ebasconp
Member since:
2006-05-09

I do not like the "I-know-everything-about-everything-and-I-can-hate-it" tone in the texts ESR writes. He seems to be a software critic, and like almost all critics, he can bash on a picture with no knowledge about painting...

I love C++, it is IMHO one of the few languages that lets me program in the bare metal and provides me a higher abstraction level (OOP, template metaprogramming, etc.)...

I cannot do object programming or generic programming in C (à la GTK+ is not a much viable solution) and using a higher level language (Java, C#, etc.) is not doable (or is not the easiest solution) when you are developing systems or commercial applications (let's be honest, there is no a software with the same quality, functionality and performance to Microsoft Office or to Adobe Photoshop written in Java or C# or Python... and because their huge dimensions, they are not written in C neither, they are C++ code).

I agree Stroupstroup comments when he says the problem is not in C++, but in the low-skilled programmers...

Reply Score: 7

sergio Member since:
2005-07-06

There are tons of big commercial applications written in Java. In fact, I prefer ThinkFree Office (100% Java/Swing) over Ms Office any day.

Reply Parent Score: 1

kaiwai Member since:
2005-07-06

There are tons of big commercial applications written in Java. In fact, I prefer ThinkFree Office (100% Java/Swing) over Ms Office any day.


I wish that were the case but the problem is that there are still some JNI components involved in it. I was hopeing to be able to run it on my SGI Octane the moment I saw "Java" then I realised that it had Java, but it wasn't written in 100% pure java and all of it stored nicely in a big fat *.jar file.

Reply Parent Score: 2

evangs Member since:
2005-07-07

I prefer ThinkFree Office (100% Java/Swing) over Ms Office any day.


I'm afraid you're an anomaly.

Reply Parent Score: 3

Morph Member since:
2007-08-20

no a software with the same quality, functionality and performance to Microsoft Office or to Adobe Photoshop written in Java or C# or Python... and because their huge dimensions, they are not written in C neither, they are C++ code).

The reason that MS Office, Photoshop etc are written in C++ and not in C#, etc is because they predate C#, Java and Python by many years. These apps have been around since the early 90's.
Take any large Java app and work on it solidly for 15 years with a team of hundreds and then you will have something that you can compare to MS Office and Photoshop.

If Microsoft was starting MS Office from scratch today, I'm sure they'd go with C#/.NET from the outset.

Reply Parent Score: 1

IndigoJo Member since:
2005-07-06

Really? Don't forget that .Net is a JIT compiled system, which means that the first time any part of the software is used, it's slow because it's being interpreted and compiled at the same time, yet it never reaches the performance levels of a native-compiled program. Why would MS put their customers through that - something which would become very public when they are selling a large program for hundreds of pounds or dollars - when they can just use something they can compile, and ship it out ready to go?

Apart from ThinkFree, can anyone name any heavyweight software, open-source or proprietary, which is based on a non-native platform?

Reply Parent Score: 3

evangs Member since:
2005-07-07

The reason that MS Office, Photoshop etc are written in C++ and not in C#, etc is because they predate C#, Java and Python by many years.


That's nonsense that people in the Java/C#/Python camp keep on bringing up but it has no basis in reality. Nobody writes large scale applications in Python, so I'll leave that out of this discussion.

Adobe is happy to rewrite Photoshop in Objective-C to target the Mac market. Why are they unwilling to rewrite it in Java or C# if it will guarantee "easy" portability?

Managed languages will always have additional overheads compared to compiled languages. For many end-user facing applications, these overheads are just unacceptable. Managed runtimes add tremendous memory overhead that makes them unpractical for things like office suites, photo editors, browsers, and most other pieces of software.

Note, this is not to say that managed languages have no place on the desktop. They're widely used in in-house business applications as they allow for a shorter development cycle than traditional C++ applications. Also, business desktops tend to run less applications than home user ones so the increased memory usage is not so easily felt.

The move from assembler to C to C++ became practical as hardware improved. Perhaps in the near future when 64 bit machines and operating systems become ubiquitous, and everyone is running with hundreds of gigabytes of RAM, we'll start to see more applications targetting managed runtimes. Perhaps not, as some would argue that the there aren't any long term productivity benefits in moving to managed runtimes.

Reply Parent Score: 5