5 ms·
C++ Hating
- alkavan 16y agothanks for this article! a very interesting one! didn't know Google Chrome is using Qt GUI framework... 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.
- spooneybarger 16y agoyou didn't know chrome was using Qt because it isn't.
- alkavan 16y agooh, i see now it has been stroked trough! =]
- anon_d 16y agoA long and mostly incoherent rant. I'm ever so sick of seeing these.
- corysama 16y agoI know native desktop applications are considered passé, but I still wonder: How many common/popular native desktop apps can people name that aren't obviously written in C/C++? I guess in the Mac world, Obj-C is common, but that's only a half-step away from C. I thought OpenOffice was a good example until I was educated that it is based much more on C++ than Java. The original bittorrent client was Python, but the Steam Hardware Survey indicates that µTorrent is the client of choice in practice. 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.
- gte910h 16y agoMost native widows desktop applications are old, as in pre-2k, when C++ was really the only way to get a high performing desktop program other than C, and really it was argued (now proven false, according to Code Complete 2 as well as lectures I've seen at Georgia Tech) that large C++ programs were more maintainable than large C programs. 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),
- makecheck 16y agoI agree, but I think there is a middle ground, which is to use the strengths of multiple languages in the same app. And interestingly, one of the examples you gave is an app that I wrote (MacTelnet), which doesn't just use Python; it also calls C++ and Objective-C. :) While C was the first language used, I added the others to gain their strengths, which include maintainability and access to powerful libraries.
- gte910h 16y agoAlmost all languages use C libraries at some point (as that's what the OSes are written in), but yes, several of the apps are multilanguage. 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.
- 16y ago
- Teckla 16y agoAs it turns out, the Microsoft Office example is not a good one. 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.