Fortran
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sun May 11 19:51:11 EDT 2014
On Mon, 12 May 2014 04:08:15 +1000, Chris Angelico wrote:
> On Mon, May 12, 2014 at 3:51 AM, Roy Smith <roy at panix.com> wrote:
>> It is fine. Computers are tools. The sign of a good tool is that you
>> can pick it up and use it without having to read the instruction
>> manual. I can jump into pretty much any car, start the engine, and
>> drive it, without any learning curve. There's a lot of complicated
>> organic chemistry and thermodynamics going on inside the engine's
>> combustion chambers, but I don't need to know any of that to make use
>> of the tool.
>
> Err, I don't know that the analogy is really fair. Either you know how
> to drive a car, or you don't; if you do, what you really mean is that
> cars are sufficiently standardized that, even though you trained on an
> X, you can drive a Y without reading its instruction manual
Correct. It's a terrible analogy. Cars are relatively simple things, they
basically have three functions: speed up, turn, slow down. And yet look
at how many people manage to kill themselves, and others, by doing it
wrong. In the US, more people die *each year* due to faulty driving than
American soldiers died in the entire Vietnam war. (The one exception was
1968.)
Programming languages, on the other hand, have effectively an infinite
number of functions: most languages come built-in with dozens or
hundreds, and the programmer then extends them with whatever functions
they need.
Cars are standardized -- there are basically two types, manuals and
automatics. Programming languages are not, and thank goodness, because
they whole point of having multiple programming languages is that they
have different semantic models and different syntax so as to specialise
on different tasks. I'm a critic of C the language, but only for
application development -- it makes a grand high-level assembly language
for low-level programming by experts where fine control and efficiency is
more important than simplicity and programmer efficiency. Fortran is
excellent for long-lasting numeric work, and Inform-7 is excellent for
writing interactive fiction. I wouldn't write an 3D shooter game in bash,
and I wouldn't write a throw-away admin script in Java.
> - but if you
> don't, then you're basically at the dangerous level of "hey look, I can
> type these commands and stuff happens", without knowing the rather
> important safety implications of what you're doing. Can you use a hammer
> without an instruction manual? Sure! Can you use a circular saw without
> reading the instructions? Quite probably, but will you know how to do it
> safely?
Circular saws have only a few functions: start spinning, and stop
spinning. There's a few "gotchas" to learn, related to physical
properties (momentum, energy transfer, the relative hardness and
sharpness of the blade versus the softness of your fingers...) and maybe
a couple of bells and whistles (e.g. can you cut on angles?). It's not
within an order of magnitude of the complexity of a programming language.
A better comparison would be with one of these:
http://www.wisegeek.org/what-are-cnc-machines.htm
And no surprise, to operate a CNC machine, the operator typically has to
program it using a programming language (G-code).
--
Steven D'Aprano
http://import-that.dreamwidth.org/
More information about the Python-list
mailing list