C++ / Java / Python (was Status of C++)

Harald Hanche-Olsen hanche at math.ntnu.no
Fri Mar 3 19:33:26 CET 2000

+ dickjoe_nospam_ at mindspring.com:

| You, dear Sir, are sadly misinformed.
| I (with others) have written an industrial-strength image server
| completely in (portable) C++. [...]
| Java you say? I laugh in your face. C++ is one of the most sought-
| after skills for "serious" programming (see below). [...]
| C++ is pretty much the default choice for "serious" software, and
| in that I incude "system" and "application" programming.

I am glad you write "serious" in quotes.  You see, I have a little bit
of a problem understanding what people mean when they use that word,
but mostly it seems to mean large, complex, time consuming.

To help me in my own research, I tend to write a bunch of small
programs.  My latest one, to help me explore some PDE solutions, is
less than a thousand lines of python, using numpy and a small
extension written in C, plus a Tkinter piece for the visualization
bit.  It's a bit slow, but it works well enough for my purposes.  By
the time the program has served its purpose (hopefully having helped
my understand what's going on with this equation), it will probably
have used at most a few hours of CPU time and a few weeks of my time.
This program may not be "serious", but I assure you it's serious.

Trying to write this beast in C++ in order to cut the CPU time used
from hours to minutes would likely have increased my own time
expenditure from weeks to months - clearly an extremely bad bargain.

I wonder how much software out there is of this type - serious but not
"serious"?  So this is my wish for the day:  That people would stop
using the word "serious" merely to distinguish big, complex, CPU
intensive projects from those where programmer time is by far the most
important constraint (which also includes myriads of system
administration scripts, the other big category of small programs that
I find myself writing).

I am not saying that you don't understand this - on the contrary, it
seems that you do, at least if one reads between the lines a bit,
particularly as you *do* advocate python for some uses.  But I see the
idea of C++ as the *only* solution to *every* problem bandied around
too much, and I think that does a great disservice to the large (?)
number of people who, like me, need to write bunches of little
programs to solve their very real (and serious, thank you very much)

| Anything that runs on a server should not use java.

And why not?  Not every server carries a heavy load.

| Java is NOT an alternative to C++.
| Python IS an alternative to Java (except for lack of browser support)

On the contrary, I think both can be an alternative to C++, but you
need of course to consider the tradeoffs between programmer time and
other resource constraints.

| Lisp (its myriad flavors) has it adherents

Indeed, Common Lisp combines advantages in terms of programmer
productivity with the potential for very good efficiency (all modern
commercial CL systems can compile to native machine code).
Unfortunately, it has lost the popularity war, at least for now.

| I am not interested in language flame wars

Neither am I, and I hope I haven't contributed to one.  And I don't
really have any quarrels with you either.  I just wish you and others
would avoid that s-word.

serious-but-not-deadly-so-ly y'rs,
* Harald Hanche-Olsen     <URL:http://www.math.ntnu.no/~hanche/>
- "There arises from a bad and unapt formation of words
   a wonderful obstruction to the mind."  - Francis Bacon

More information about the Python-list mailing list