C++ Hating
cplusplus-soup.com
cplusplus-soup.com
Microsoft Office was written in C, and only relatively recently ported to C++. Please note that I didn't say it was rewritten in C++. It was ported to C++. That is, the minimum changes necessary were made to get it to compile without errors or warnings under a C++ compiler.
That means, technically speaking, Microsoft Office is now written in C++, but it's still very much written in the style of C. Quite a few applications that use C++ are written this way.
Speaking just for myself, I think C++ is scary-complex. There are a lot of corner cases and unexpected behavior to memorize. To be blunt, I think the complexity of C++ gets in the way of productivity. There is no question C++ has some nice features, I'm simply unconvinced they're worth the cost.
I'll stick with C for low level, and pick from a variety of better and more sane (in my opinion) choices for medium and high level work. That being said, if someone is happy and productive with C++, that's great. There's room for lots of programming languages in this world, including C++.
But please, don't look down on developers like myself that have rejected C++, for what we consider good reasons.
I ask because the very common argument that it would be more effective to build apps in higher level languages always made sense to me in theory. But, I don't see it happening in practice. Can anyone provide good counter-examples?
Edit:
Minecraft is Java. That's one.
For mac, they're usually Objective C, especially if they're from the post NEXT era.
Mozilla is from 1994, MSWord is from the 80's, etc.
Objective C is vastly different from C++, as is straight C. The people who confused C and C++ are really missing a boat to understandingville. You write real C applications completely differently than you write C++ applications, a fact few C++ advocates admit or understand. The added complexity and workplace changes (about 1.5x more expensive engineers and a culture of "easy to fire") required to use C++ (correctly) is huge.
Games/Applications Written in python: Eve Online (a sure counterpoint to his World of Warcraft example), CIV IV, Miro, Blender, MacTelnet, Bazaar, Mercurial,
Applications written in java: Limewire, Maple (the mathematics software), FreeMind, Azureus, jEdit, Eclipse, Spark IM, matlab(along with a pile of other languages),
While C was the first language used, I added the others to gain their strengths, which include maintainability and access to powerful libraries.
I find python + weave.inline (insert C++ which is dynamically compiled the first time called) pretty awesome at getting performant apps which are fast to build and simple to debug.
I know that Eve is Python on top of a large, custom C++ code base. Civ and Blender as well. Adobe's Lightroom is a nice case study of 50% C++ and 50% Lua.
I've never used Python+Weave, but it makes total sense. I do think Python's built-in CTypes library is unfortunately underused. (highlights: You can create C-callable function pointers and you can call C DLL functions from default Python. No add-on libs required.)
What a small world.
Did you write the C and ObjC code it's calling, or are they independent libraries?
[citation needed]
"You write real C applications completely differently than you write C++ applications, a fact few C++ advocates admit or understand"
Actually I would assume C++ advocates would be the first to assert this was true... otherwise, why C++?
>[citation needed]
That's a citation...
>"You write real C applications completely differently than you write C++ applications, a fact few C++ advocates admit or understand"
Perhaps, but this article again goes on about C being a subset of C++, which besides being somewhat untrue, it also means he's implying correct C is a subset of correct C++. It isn't. You structure things completely differently, and most C++ programmers have never written large scale C programs before.
Other citations:
http://archive.oredev.org/download/18.5bd7fa0510edb4a8ce4800... Slide 21
The particular lecture was in 2000 around July by Dr. Mark Guzdial which was citing other research which I don't remember over a decade later.
Listen, I don't doubt there are some good arguments against C++. But to claim something is proven is a very strong claim indeed, and not IMO supported by the evidence you've cited. Can we say, instead, that the advantages of C++ are "contested"? Or "debatable"? Or that some C programs are more maintainable than some similar, but different C++ programs by different authors? I could agree with that...
i'm a LAMP web application developer. i know some C++, although never used it in any real-world project, and i strongly agree with the author... if a day comes and i'll need really good performance from my application, think there's only one true solution and it's writing C++ code.