How view on C++ changes over time

It’s funny how one’s view on things change over time.

Back in 2002, I wrote something that would be roughly translated like “C++ amazes me more and more”. In a positive sense! And I was talking about what is Boost.Spirit now.

A reply on local game development forums I wrote today (again, rough translation): “C++ is very hard and quite a horrible language, maybe you should not use it unless there are no alternatives”.

That’s quite a change in attitude we have here!

I feel like much of C++ horrors are a consequence of “it just somehow happened” (the whole template metaprogramming thing) or as a backwards compatibility with C requirement. Or maybe not, but I do agree with what ryg says here. Let’s play the internet memes:
C++ Accident

4 Responses to 'How view on C++ changes over time'

  1. steve

    I still love C++. For making native applications, I can’t think of anything else I’d rather use. Sure if you’re happy to run on top of a VM layer there are lots of better options, but C++ still does it for me. Maybe I’m just a masochist :)

  2. tulcod

    Well, I can’t read lithuanian, but imo there is just way too much crap being said about C++. Yes, it is a dangerous language if you’re a dangerous programmer. And unfortunately, a lot of programmers are dangerous. But a language can’t fix that anyway.
    And while I agree that C++ isn’t ideal, for a lot of occasions there simply is no other choice. Python lacks performance and low-level stuff, C# is too much like Java, C lacks OOP which can improve readability (but shouldn’t be overused either, because of performance issues), and Perl/Lisp/Haskell/Pascal/any other “revolutionary” language is just a joke.

    That doesn’t mean they should not be used at all. Perl is very useful as an alternative to Bash, which obviously s***s. Erlang is pretty useful for clusters (although, if you’re serious about clusters, you should probably reimplement whatever you’re trying to accomplish in C/C++). Java is, unfortunately, the best language available for web applets.

    So every (well, most) languages have something interesting, and C++ has the most interesting features.

  3. peirz

    Someone comes up with an interesting technique, people run with it, it becomes a huge convoluted mess, people start complaining, and rethink the language support and start designing an improved version of the language that should clean this up.

    It’s not the most efficient way to work, and if you love the language then seeing this happen makes you nervous :) But it’s perhaps still better than trying to design something all-encompassing up front and then smacking people over the head as soon as they step one cm outside the predefined boundaries.

    Innovation by accident is cool if it’s followed by a clean up phase. And that seems to be what’s happening :)

  4. Paulius

    I like the way “C# is too much like Java” can be used to criticize anything :) I should start using it in real life situations: “I don’t like this restaurant, because it is too much like Java” ;)

Leave a Reply