There are two kinds of PoorCppProgrammers
: those that know that their environment is poor, but are forced to use it by their management, and those that don't think it is poor and resent these kinds of rants. :-)
There is a third kind, those with mortgages.
and a fourth - those that know their environment is poor, but still like the language and choose to build up the environment themselves (I can like C++, and still hate GCC, Visual C++, and the C++ Win32 API)
There isn't a C++ Win32 API. Win32 is and has always been a C API. It can be used in C++ merely due to C++'s backwards compatibility. For "real" C++ GUI toolkits, take a look at GTK--, wxWidgets, QT and others. And MFC if you absolutely have to... -- ArneVogel
Looking at the signatures I'd say it's a Pascal API! But seriously, it isn't any kind of language API, it's just entry points in DLLs. You can call it from assembly, if you want. -- AndrewQueisser
[I used to think CeePlusPlus
was a good MultiParadigmLanguage
; then I found Common Lisp.]
I smell a LanguagePissingMatch
Don't know which kind I feel sorrier for, being of the second type myself... ;-)
What development tools exist for C++ programmers that provide functionality like VisualWorks
or the RefactoringBrowser
That's a hard question for Type II Cpp'ers ... we don't know what we are missing!
What functionality do VisualWorks
and the RefactoringBrowser
provide? -- Bill Weston
Global regular expression search, with easy access to results, and a good replace, suits me fine.
Back in the dark days of my C++ programming, I used Source Insight (http://www.sourcedyn.com/). It provides many of the features that I later found in Intellij (a RefactoringBrowserForJava). The most important feature is that it continually parses your code and lets you jump around in it (jump to declarations, search for all usages of an item, etc.) at will. -- JohnLindsey
Visual C++ seems to meet the requirements for global search, easy access to results, and a replace feature. It has full regular expression search (and replace with tagged expressions). I don't know what qualifies as a "good" replace, so I'll leave that one hanging.
There's a plugin for Visual C++ called VisualAssist
which does some magnificent things in the code completion/source browsing/etc realms. I've become more or less totally dependent on it.
I don't see anything in Source Insight that isn't already in Metrowerks CodeWarrior
... plus CodeWarrior
has a half-way decent class browser (not unlike a Smalltalk-80 class browser). No refactoring support yet.
Visual C++ isn't bad.
[Additional Visual C++ content moved to VisualCeePlusPlus.]
Who are the guys so poor as to think that C++ programmers are poor ? Just because it's not Smalltalk or Java or Python or whatever doesn't make C++ a bad language, and consequently doesn't make C++ programmers poor. But there is one category of poor C++ programmers, those who don't understand programming, and, of course, don't understand C++, and, of course, they whine about it. C++ has its limits, but is far more acceptable than other languages, especially lately, and whoever thinks Oh, those poor C++ programmers. Oh, poor me, I have to program in C++ to make a living
, has my smile. -- CostinCozianu
Exactly! That's why I added the fourth type above. There is a category of programmers like us that prefer CeePlusPlus to Smalltalk, Java, Python and others, and is our *LanguageOfChoice*. CeePlusPlus has its bad reputation, in my opinion, because people used it from a C perspective and not from a MultiParadigm? approach (see JimCoplien's outstanding book "MultiParadigm? Design with C++"). Many people have simply not learned or used the language correctly. CeePlusPlus coupled with the StandardTemplateLibrary and the Standard C++ library is a very powerful language able to handle a number of paradigms and abstractions better than most.
I'm glad Costin is smiling at me. But the reason I feel sorry for PoorCppProgrammers
is, to me, all too clear, and well expressed in
- Wow, what an idiot. Could you have at least linked to a criticism of C++ that was factually correct in at least one sentence? -- SunirShah
- Sunir, most of his criticisms were factually correct at the beginning of the rant (although I suspect he forgot an "or" in there somewhere. Either you rebuild the code and everything that links to it or you make sure not to change classes and member ordering). The rest is a matter of opinion and cannot be factually correct or incorrect. -- DaveFayram
- That rant wasn't written by just any SmugLispWeenie; that was written by the infamous ErikNaggum - widely considered one of the smuggest and most condescending. At any rate, any experienced C++ programmer knows how to avoid the problem that Naggum refers to - use the PimplIdiom (or HandleBodyPattern or BridgePattern, it has lots of names) to hide the implementation details of your classes in a private header file, and pass opaque pointers to that around. It's not a perfect solution, but it works. More techniques to effectively manage large C++ projects can be found in LargeScaleCppSoftwareDesign, an excellent (though somewhat outdated - it's based on ARM C++ and not ANSI C++) book.
- I think I am agreement with Sunir. There is nothing in the referenced link that does not seem to apply to every other language I am aware of. C++ has its good points and bad points and requires a learning curve. I don't think there is any other language where one could become a fluent programmer after a 6 month introduction. I've seen people stumble through lots of different languages and don't find C++ unique in this regard. -- WayneMack
- Then you didn't read carefully. He had critiques that are purely unique to C++.
Thanks for posting that link, what a beautifully written rant. After reading it, I'm even more of a category 4 PC++P. -- AndrewQueisser
Well, it's an opinion, not fact. People who have mastered standard based CeePlusPlus
feel very differently. Let's not get into a LanguagePissingMatch
. After using 17 different languages, including three years in Java, I prefer and use CeePlusPlus
as my number one language. The person writing the rant does not take into account the many different styles of programming paradigms that CeePlusPlus
supports. -- sg
Alain, I'm glad that you like Scheme and Lisp-like languages just like I do (alas in my rare spare time), and if you got to get paid for programming in something like ML you have my confessed envy. But if you think oh those poor CPP programmers
, you really have my smile. I can demonstrate to you there are plenty of real life problems where absolutely nothing less than the power of CPP will do (Ok, maybe you can add ADA and Pascal into equation). As for the article, it has a couple of good points, a ton of rants, and in no way justifies PoorCppProgrammers
. Otherwise, you can have my smile and I'll have yours. -- Costin
Costin, that sounds like an excellent deal. I don't take pages like this one too seriously. I need no demonstration, I know
there are domains in which you need something like C++. It's just that, by temperament, it drives me crazy. And yes, I have programmed professionally in it (a telco app). And yes, I am lucky enough that I now use common lisp at work, but the world is a big, scary place, our endeavor might fail, and I might be back in line in front of Sun CC... which would certainly make me, once again, one of the PoorCppProgrammers
. -- Alain [Wondering if this whole page needs to be deleted...]
I wonder about this. Are the principal authors of this page invalidating my professionalism? Instead, shouldn't we be invalidating theirs? -- SunirShah
They're invalidating mine but hey, whatever. I don't get riled about this kind of stuff anymore. -- sg
By the way, I made that response half-jokingly. One need only consider my ridiculing of Java programmers to see how hypocritical I am. Then again, I also realize that I have to stop pounding on them. Unfortunately, a Java programmer is born every minute. -- SunirShah
Indeed... one always find that lower-order mammals (like rabbits) breed more rapidly than higher-order ones (like cheetahs) :-) --AnonymousJavaPythonAndCeePlusPlusDeveloper
There is a third kind, those with mortgages.
I don't get this one. Is the implication supposed to be that C++ programming doesn't pay well? I guess that may depend on where one lives, the level of one's ability, and what domains one programs for. I, for one, don't feel particularly short changed financially. -- MikeSmith
No. The implication is they hate it, but have to keep using it to feed the kids.
I didn't add the note about that kind, but my guess is that the pun was too much to resist.
We're getting way too serious here. It's a joke.
CategoryRant CategoryJoke CategoryCpp