Software Development
Blogs and Discussion
developer.*
Books Articles Blogs Subscribe d.* Gear About Home

Guy Steele's rethink of programming languages for Sun

http://www.sun.com/presents/minds/2005-0302/

Guy wants programming languages for supercomputers to "look like math". In particular Guy mentions the asterisk which today means multiply and claims that it is an artifact of the limitations of early systems

Well, it is, and that is a Good Thing. The despised and lowly keypunch brought to mathematical attention the fact that we have distinct symbols, from a set of characters ([+-/]) that is DISJOINT from the characters that can start a NAME, for everything but multiplication.

This fact makes algebra opaque to many intelligent people because non-orthogonality seems to the Sensitive mind to hide social relations of dominance and control.

Wow, that hurt.

But I am serious. Precisely BECAUSE AB in traditional algebra MEANS A times B, this gives multiplication a different standing from its brother operators and the Beautiful Mind wonders why this is so, and wonders, at some level of consciousness, why such an ugly artifact as mathematical notation (which "jest growed") should be something, on which she should waste her time.

You can design a programming language wherein AB means A times B: just limit (eek) the size of identifiers to one character, OR require a space. There's a precedent: the Rexx language, designed by IBM Fellow Mike Cowlishaw for the mainframe, heavily used on the Commodore Amiga of blessed memory, and now Object Rexx, means by "string1 string2" their string concatenation, and in a paper delivered in 1992 I presented a parser that handles this "implicit" operator. I reinvented the wheel, of course: the Mikester had written the parser in 1979: but I wanted to be sure his stunt was repeatable.

You can use BNF to design quite a lot of non-orthogonal syntax reflective of praxis, but the question is whether this is a worthy goal: perhaps using computers should force us to rethink the ways we communicate. Such an idea is resisted in academe and elsewhere: when at Princeton, I learned that interest in using computers descended from students (wildly enthusiastic), to administrative personnel (mildly enthusiastic) to faculty...who did not want to use computers in many cases because their mistakes would embarass them.

Telling an award winning mathematician that his notation is bogus is NOT something for the faint, of heart. When I met John Conway (perusing magazines at the Princeton convenience store) I was like a gushing schoolgirl instead: "wow, Professor Conway, Life was SO COOL: I programmed it on a mainframe with a line printer in 1973".

[Princeton is heaven for the well-read: the American philosopher Richard Rorty arrived one day at his office white as a ghost, saying "I saw Kurt Godel in the grocery store today". Einstein, from his Godlike perch, called the leading lights spindle-shanked demigods, but he had the right, and before the 1960s, I believe, Princeton was relatively provincial, a haven for that defunct sort of American academic who cultivates a phony British accent. Co-education, coming in 1970, changed Princeton enormously.]

[After working out in the old gym in the late 1980s, I would repair for an unfiltered Camel, bummed from an older graduate student who haunted the only room in Firestone where smoking was allowed, to chat with him about Higher Things. He told me that I put him in mind of "the typical Princeton student from the era just before co-education" and given his precision, I took it as a compliment.]

The Algol team had a reformative vision, for it seems from the record that they actually thought, in a mid-century programme inspired by actually existent Socialism and Logical Positivism, to improve thought by inventing a notation simultaneously for communicating with computers, and (in the Algol "publication language") communicating "what was communicated to the computer" to humanity in the form of self-documenting neo-mathematics.

Language reformers, like actually existing Socialists, are typically failed academics and other odd wads who have a case but who need to do psychological work to disambiguate their rage for reform from their personal tsuris and personal miseries, lest like Robespierre, a provincial schoolmaster, self-knowledge only come to them at the glorious finish.

Perhaps, as Knuth has said, all programming is actually "telling another person what you told the computer to do". But this is language reform, we find, for to hold his attention, like the Ancient Mariner in the Coleridge ballad, we must cleanse our speech.

Guy, in an American tradition, wants instead to base his Fortress language upon actual practice of leading scientists and mathematicians. In this connection I am reminded of why Newton's calculus, though not of the quality of Leibniz's simultaneous inventions, became definitive, down to notation, of calculus. Newton's notation was preferable to other people, NOT because they had any special insight, but because of empirical conditions.

With the result that undergraduates have to swot the calculus, learning not so much Timeless Truth (warheit zeitlosen? my German is low) as the way in which 17th century men thought about calculus. And, they were not (if I understand my Foucault) accessing Newton's mind.

Nature, and Nature's Laws, lay hidden in Night/God said, "let Newton be!", and all was Light - Alexander Pope

No, a Foucauldian reading shows us they accessed instead the 17th century milieu of the low to middling *connaissance* of Newton, the collective thought of a fearful crowd of mad bishops, scientific gentlemen, Scotsmen, god-walloping artisans, and more Scotsmen.

In the same way, Fortran more or less struggled into life like my monster on the slab despite its serious errors BEFORE Algol was ready for prime time. It is in Foucauldian terms the expression of WHAT WE THOUGHT about programming circa 1960 (in my case 1970) and as such is not so much the wisdom of old men as their folly.

Therefore, it does need rethinking. The question is whether traditional, pre-computer mathematical praxis is any guide, for as Knuth saw, the way in which the Western mathematician writes symbols using pencil and paper is JUST AS MUCH a technology as is a computer!

Finally, the article is just offensive when it describes the mathematician as giving the problem to the programmer. This is because in my experience at Princeton, the programmer is the mathematician, and at the zenith of actual genius (the case of Nash) the mathematician is the programmer.

Nash didn't come to me and tell me to write him an extra precision arithmetic package. He came to me having done so (in code that was almost as good as my own) to help him fix a "bug"...that was caused by a clumsy compiler bug, as we found.

When at one of the few non-defense-dependent shipbuilding firms left in the USA, I was privileged to develop most of the code of an innovative and successful ship stability programme that is now in use at several universities, I did not want to be a programmer and I wanted to be an Ocean Engineer, or at least a matelot, or a cabin boy.

"Programmer", like "writer" is an "abstract class" demanding specific instantiation. Precisely what I found, at times, alienating at Princeton was the very idea that I should "be nothing more than a programmer" who would "mindlessly code" the thoughts of better men.

This is of course because of overweening ego and Pride worthy of Satan himself, a Pride which both my wife and boss mentioned as simultaneously attractive, and a bore when in large doses.

But having processed all that, I now can say that there never will be a Programming profession on the 19th century model. It shall ever be something more like law-copying in Dickens, like translation, like writing: something marginal, of the garret. Luckily it is funner than medicine or law.

Dangerous ground...

By pointing out that traditional mathematical praxis is just as material (in using AB to mean A * B) I am on dangerous terrain.

Scientists, especially scientific Fundamentalists committed to Carnap's view that "in science there are no depths", who deny knowledge outside of science, can be very savage towards English professors and French *flaneurs* who apply critical theory to science, and one clown (Sokal) went so far as to commit academic fraud, and to submit an article to a critical theory journal which turned out to be a spoof, of a theorist talking about science...of which, a closer reading of Sokal's article showed, the spoofed *auteur* knew jack.

My technical background at best only a leather jerkin on this bloody field and not the armor a true scientist would have were he to express sympathy for the very idea of Knowledge outside of Science, or depths within and without.

Nonetheless I shall fire my arrow in the air as at Agincourt.

What Derrida means by Platonism is actually a shuttling between a veridical Platonic committment, in which pure Ideas are exogenous to social struggle and can be used, as such, to resolve difference, and a necessary acknowledgement that the Ideas can only be spoken of without the very act of speaking making them impure.

Wow, wash my mouth out with soap after that one: but *stare decisis* and let it stand.

For the SAME reason no one computer scientist can invent The Single Ideal Programming Language, the Platonic Idea is no longer an Idea as soon as it falls to earth, and, it falls to earth once spoken of.

In fact, Plato hisself may have known this: recent research (cf. The Columbia History of Western Philosophy) indicates that he may have been out of his skull at times: Symposium apparently means "boy's night out".

Plato would shudder at the idea of computer science, for it was a confusion between the work of the Artisan class and that of the Guardian class.

The word "square" is not the Square, of course. But the most perfect digital image of the Square is not the Square either. This is because it is composed of lines which on simple enough examination (zooming them in a simple bitmap editor) are seen themselves to be squares and to have (violating the Idea of the Line) dimension themselves.

Derrida started with applying his peculiar way of thinking to Husserl and the origins of geometry and I think this was his first discovery that always and everywhere except maybe here in China (for Derrida was always careful, to qualify his observations, as observations of the West), we never cash out our ideas as they shuttle between tokens and types.

Computer science is of interest insofar as it brings matters to a head, as a form of class war: for in computer science, the Guardians have to ask the Artisans to fashion the Idea.

The guy at Sun would with equiprobability reply to my native woodnotes wild with interest or scorn. The scorn would be based on my systematic refusal to treat precomputer mathematical notation as exogenous.

Many users want the computer to return them to a fancied state of ideal transparency that existed BEFORE computers. For example, Excel replaces the Cobol programs I wrote for Baxter Labs in the 1970s with a "sheet of magic paper" in which the user can enter formulae, and, this is a Good Thing.

But reading aesthetics for me brings up a problem. To enjoy a movie we have to put ourselves, says Aristotle (who didn't watch DVDs but did go to the theater), into a willing state of disbelief.

To use Excel without a nervous breakdown, the naive or non "computer literate" (yucky word, but let it pass) user has to likewise accept that a virtual show is being put on for her and that the various puppets and sprites (like that horrible little animated character) have her best intentions at heart...which they DO NOT.

There is a reason why a live play seems more "morally serious" than a movie: there is a reason why the late Arthur Miller didn't like to write for the screen.

For human people, having people on the stage enact a fiction can move them to tears seldom seen in the movie palace.

In other words, there is to me an element of bad faith (which cannot be eliminated, need not be eliminated, but should be acknowledged) in trying to return the mathematician to a fancied ideal state in which he could write in two dimensions, where AB meant A*B, etc.

The bad faith produces terribly useful tools when, and only when, a Real Programmer gets down to work. This in fact is the origin of Mathematica. Mathematica has its moments of real brilliance precisely because Steve Wolfram avoided the procedural nonsense of Big Science, and buried himself in a cornfield, ignoring other work. Furthermore, he could code.

But some code-free effort to merely "design" ideality is a good example of a failure in the making.

I am being terribly hard on Mr. Steele. But my own (limited) experience with supercomputing, for which Guy Steele is developing Fortress, is that REAL supercomputer programmers have always used Fortran and will do so until the end of time. The best of them know all about Fortran's limitations and use workarounds. But in fact, because of Fortran's limitations and because the good not only is the enemy of the best, the good hates the best's guts (especially in programming) many Fortran programs for supercomputers are quite buggy...possibly an explanation of why people in the States don't realize what is common knowledge in Hong Kong and Australia: global warming is a fact and not a theory.

Well, that was another can of worms...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Recent comments

User login

About our advertising.

Atom Feed

developer.* Blogs also has an Atom feed, located at this url.

Click here for more information about Atom.

A Jolt Award Finalist
Software Creativity 2.0
Foreword by Tom DeMarco

Recent Posters

Based on most recent 60 days, sorted by # of posts and name.

Google
Web developer.*

Who's online

There are currently 0 users and 45 guests online.

Syndicate

Syndicate content
All views expressed by authors, bloggers, and commentors are their own and do not necessarily reflect the views of developer.* or its proprietors.
Click to read the Copyright Notice.

All content copyright ©2000-2005 by the individual specified authors (and where not specified, copyright by Read Media, LLC). Reprint or redistribute only with written permission from the author and/or developer.*.

www.developerdotstar.com