3 ms·
Most 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 reall
by gte910h 16y ago
Most 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.
- corysama 16y agoI expect that the middle ground of C+HLL is more common than the purist approach simply because it makes sense to use the right tools for very different jobs. 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.)
- gte910h 16y agoAlmost all the alternatives are quite a bit easier to use than ctypes, with the exception of SWIG
- gte910h 16y ago>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. :) What a small world. Did you write the C and ObjC code it's calling, or are they independent libraries?
- helmut_hed 16y ago"now proven false... that large C++ programs were more maintainable than large C programs" [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++?
- gte910h 16y ago>>now proven false, according to Code Complete 2 as well as lectures I've seen at Georgia Tech >[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.5bd7fa0510edb4a8ce4800019898/Jack_Ganssle_-_Embedded_Failures_2.pdf 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.
- helmut_hed 16y agoIt's a citation, but not of the right type. You say it has been proven false that large C++ programs were more maintainable than large C programs. Such a proof would be quite extraordinary, to say the least. There is a vast difference between a strongly held opinion that this is true and a proof. Your proposed citations: something in Code Complete (where? what does he say exactly?), lectures you've seen at Georgia Tech (which? where? what is claimed?), and a slide showing that in some codebase (again, which?) a given C++ bug took longer to fix than a given C bug (what was the sample set? how many bugs in each language were there overall? was it the same program implemented in both languages, or something else? were they the same programmers?). None of these things are citations of a proof. 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...