Saturday, March 31, 2007

Comments on C++ from Charles Bloom's online journal

I link to Charles Bloom's non-blog and hop over every couple weeks to catch up. Today I saw he wrote up a little piece i felt i really could identify with.

This was one that hit a nerve with me, being able to articulate how people think about complicated things, that their opinions tend to have less to do with that theat thing actually is and more importantly their familiarity wth them. i've found this true in how i relate to lots of things in my life from risk to friends to wine to all things technical. Unblog link here.

Charles Bloom:

"...In hindsight I see that at each point my view was not based on logic, but just on what I was familiar with. When I was totally anti C++ it was really because I didn't know C++ at all, and I didn't want to go from being a bad-ass C coder to being a crappy C++ coder. Then as I learned it more, my aversion was based on working with bad C++ coders and working in bad C++ code bases where complex features had been used badly and turned into a mess. I saw that ugly mess and the problems with them and didn't really understand the systems and just wrote those features off as evil without really understanding them. I still think that many of the C++ features are scary and need to be controlled carefully in the development environment.....Unfortunately, some of the things that make the overheads of C++ almost free on a modern processor (large caches, out of order execution, complex load-store units) have already disappeared from current consoles and may be disappearing on future PC's....this thought process makes me doubt the common assertions like "Perl code is an unmaintainable mess". Yeah, maybe, but I believe that largely because the Perl code I've seen is an unmaintanable mess. Maybe I've just seen bad perl code? I've certainly never tried to write a large clean app in Perl, so maybe you totally could and it would be fine if you had a strong style guide, etc....(I guess the best way to compare language speed is to look at those contents where people write speedy algs in different langs). "

No comments: