[Edu-sig] Re: How do we tell truths that might hurt

Arthur ajsiegel at optonline.net
Sat May 1 21:36:29 EDT 2004


> > Computer programming is mathematics.
> I would find this a lot easier to swallow (though I might still quibble)
> if you, like Dijkstra, wrote, "Programming is one of the most difficult
> branches of applied mathematics".  I believe I could have been a rather
> mediocre mathematician, but I instead became a fairly good programmer.
> 
> Dijstra's claim is about the difficulty of programming, rather than its
> position in applied mathematics.

Or both.

I agree it is more intended as a swipe at the pure mathematician, than a
statement that "programming is mathematics" 

But "programming is mathematics" is, to me, implicit in the statement. And
certainly, "programming is hard", is implicit in the statement.

> 
> Python is one of those "better tools" that changes how you think.  A
> huge reason that python is so popular with good old coders is that it
> closely resembles the way we sketch the solution to a problem, without
> falling prey to the problems Dijkstra alludes to with APL.  It is
> intriguing that we can execute a language so close to our stripped down
> communication.  Python is one of those languages that seems to embrace
> the current idea that a more readable program is a substantially better
> program, and I believe that is one way it outpaces APL.  The second
> advantage for python is inter-operation.  C was designed to replace
> assembly language (which it has except for special apps).  Because
> Python has a well-defined way to communicate with C, and because it
> doesn't insist on being "fully in charge," Python intercommunicates
> quite well with many other language systems.

All that sounds right to me.

> 
> So, to sum up, I very slightly believe both:
>  > Dijkstra is wrong,
> These statements are problems at a point in time (1975).  Some things
> have improved since then.

No doubt much has improved.  But I don't think the essence of what the word
programming should mean has changed. 

But it can be changed like all words, by usage. 

I don't consider marking up an html page to be programming. Others might
argue otherwise. 

All I could say is that we are using the same word to mean different things,
then.  Happens all the time in language: one word, different meanings.

I would accept something about "algorithmic thinking" as core to the
definition as I would use the word programming.  But then find it impossible
to see not only the point, but the possibility, of arguing that this is
something somehow not in its essence mathematical.
 
>  > I am misinterpreting what Dijkstra means.
> Well, since I learned to program in 1966, I _certainly_ believe the
> task was harder then than it is now.  We actually know more about what
> a usable set of abstractions is.
> 

Mathematics always seems to move in the direction of more powerful
abstraction. So it makes perfect sense that is the direction in the
development of programming and programming languages.

Art





More information about the Edu-sig mailing list