I come not to bury C++, but to praise it...

John Benson jsbenson at bensonsystems.com
Tue Jan 13 17:21:46 EST 2004


I got into Python because I took one look at C++ and saw all the handwaving
in the introductory O'Reilly book to the effect that "everything looks sweet
now, but wait until these snazzy little features interact..." and then
started casting around for another road to OOP. I happened upon Python, and
continue to use Python.

I think that the already-posted comments seeking to appreciate the
historical origin and motivations of C++ are essential to understanding it's
applicability in the present.

C++ started as a quintessentially Unix-like exercise in software
engineering: add functionality by leveraging existing software components to
the max. Another level of preprocessor (Cfront) was added to the compiler
tool chain and Bingo! you had a new language. The advantage was quick
time-to-implement. A big disadvantage was that you had to grok C to debug
C++. Later compilers took C++ direct to object, but the C, non-OOP heritage
persisted in the new language: you had to master pointers and references to
really do C++. Later languages simplified the situation by dumping pointers.

I think that C++ was a great exercise, but software engineering has
advanced. Why not take advantage of the latest packaging of OOP and enjoy
the smoother ride? Pick Java, or Python or whatever pleases you. I'm happy
using C for projects that fit it, and Python for more ambitions OOP stuff.
C++ was a great way to move OOP forward, but now it looks more like a
transitional form than a best-of-breed. Sic transit gloria mundi, which is
Latin for "when you're hot, your hot; when you're not, you're not" or
something like that.

If you have a big investment in C++ and can crank out beautiful code in your
sleep, that's fine too. I just don't expect it to be as easy to find people
to maintain it as if it were written in C, or Python, or Java, or whatever.






More information about the Python-list mailing list