[Beowulf] A press release
gdjacobs at gmail.com
Fri Jul 18 06:51:18 PDT 2008
Robert G. Brown wrote:
> C is good. Scheme I'm not so sure about. Maybe it's just my
> curmudgeonly upbringing, but learning to code in a "standard compiled
> language" has its benefits, if only separating the people destined for
> coding greatness from the ones who should become accountants or lawyers
> or something instead.
> In fact, it would be good for teachers of programming to take note of
> things like the size of the application base written in a language and
> what kinds of applications are represented there. Number of commonly
> used applications written in Scheme, hmmmm, I'm guessing that is a
> number of order unity, much as was the case with Pascal (another idiotic
> favorite of CS teachers over the years).
> Then count C -- uhhh, that would be tens of thousands, including nearly
> all the systems code in the universe. C++ -- thousands at least,
> probably tens of thousands if one includes Windoze. Fortran -- hundreds
> of thousands, although one has to be a total masochist to write
> character code or systems code in fortran (but it is quite nice for
> straight numerical code). Even Lisp (Scheme's grandparent) probably has
> a decent code base, and then of the scripting languages perl and python
> each are easily in the thousands, with octave/matlab a strong contender
> in the straight numerical arena. On this scale, even java isn't insane,
> nor is php. Lots of apps, some of them quite solid and professional.
> Given ALL OF THESE CHOICES -- each with an enormous base of programs,
> each with a strong base of commercial and research demand, each with a
> strong programming model that favors the development of certain kinds of
> commonly needed programs, why teach a language nobody actually uses to
> write applications, probably for some really excellent reasons?
> I personally would favor teaching coding with any of the really gritty
> languages -- C (yeah!) or Fortran, compiled, C++ maybe as a followup,
> perl if you're not a fascist coder, python if you are.
> But this is an old and standard rant by now.
I have never programmed Scheme, so I can't comment on it directly. I
have a good base in most of the procedural programming languages, so
I'll stick to that...
Point in fact, Pascal was seldom used in production because Wirth didn't
design it for that. Pascal was designed to be syntactically clean in
order to make the semantic structure of the software more evident to the
novice. It fulfilled this function well, and to this day remains a good
C is more appropriate for lowish level tasks (which was almost
everything on MS-DOS computers) because C gives you the versatility and
control required to extract every ounce of performance from your
application. Unfortunately, C almost seems to reinforce what I would
consider bad habits: pointer arithmetic, preprocessor abuse, rampant
inlining. At the end of a long coding session, I very often have to
consciously avoid these things which, while fun, are deadly as far as
review and maintainability is concerned.
It's worth noting that Borland Delphi (based on Pascal) was at one time
popular for RAD programming on Windows, and a much superior alternative
Geoffrey D. Jacobs
More information about the Beowulf