http://www.sun.com/presents/minds/2005-0302/ [1]
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.