Jonathan Edwards, in his post The Myth of the Super Programming Language, argues that programmer productivity is due to the ability of the programmer and not the capabilities of the language. Edwards states, "It doesn’t matter what language a great programmer uses – they will still be an order of magnitude more productive than an average programmer, also regardless of what that programmer uses."
We have known for many years that some programmers are far more productive than others. In chapter three of The Mythical Man Month, Fred Brooks wrote:
So I take no exception to the statement that some programmers are more productive than others due simply to native ability, regardless of language choice. And in some circumstances, I don't disagree with Edward's statement that "it doesn't matter what language a great programmer uses". All things being equal, the great programmer will outperform the mediocre or poor programmer.
Programming managers have long recognized wide productivity variations between good programmers and poor ones. But the actual measured magnitudes have astounded all of us. In one of their studies, Sackman, Erikson, and Grant were measuring performances of a group of experienced programmers. Within just this group the ratios between best and worst performances averaged about 10:1 on productivity measurements and an amazing 5:1 on program speed and space measurements!
But language does matter. For most of us, language constrains how we think. George Orwell, in 1984, described the development of the language "Newspeak." The purpose of the development of this language was to restrict the range of thought by restricting vocabularly so that the very idea of revolution against the totalitarian regime was literally unthinkable. If language can restrict thought, language can enable thought. The genius may transcend the restrictions of language and invent new ways to express what had not been expressed before. The bright may learn how to think in new ways when given a language with new idioms. The mediocre will likely think the same way, regardless of the language. Certainly, many of are are familiar with the phrase "FORTRAN with semicolons".
I am a native speaker of English. Learning German didn't prove too difficult; the languages are similar enough that, at least for me, there isn't a big switch in the way I think in either language. Perhaps this is an artifact of my not knowing German as well as I should. On the other hand, I do have to change my mindset when dealing with the language of the New Testament, Koine Greek. I can think things in Koine Greek which are not easy to translate into English.
What is true of natural languages is true of programming languages.
In his bio, Edwards says that he has been programming since 1969. He has me by two or three years; I taught myself BASIC in '71 or '72, followed by FORTRAN. In college I learned Pascal, Algol, COBOL, SNOBOL, and Control Data and H-P assembly languages. I tried to teach myself Lisp from Weisman's Lisp 1.5 Primer, but I gave up. I could blame it on not having a Lisp environment, but the truth is that it just didn't "click." After college, more languages followed, such as C, C++, Java, and etc...
Five years ago, I decided to give Lisp another try. I bought Seibel's Practical Common Lisp. I put Steel Bank Common Lisp and LispWorks Personal Edition on my MacBook Pro. I took both of them to Myrtle Beach on family vacation and started to learn the language in earnest. It wasn't easy. But I fell in love. As a language, Lisp enables me to think thoughts I wouldn't normally think in the other languages I know. And that's the key. Can I do anything in C that I can do in Lisp? Probably. After all, Greenspun's Tenth Rule is "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." But the pain involved in using Lisp idioms in C usually means that I use the C idiom, instead. This is one reason why I don't like using C much, anymore, even though it's used a great deal where I work. It's just too painful. It's why C programmers use C, when assembly language is equally powerful.
Edwards wrote, "The anecdotal benefits of esoteric languages are a selection effect", (emphasis his) where the selection is for programmer ability and not language capability. But if this is so, then I would expect to see comparisons of programmer productivity when the same individuals use different languages to implement the same tasks. Not long after I felt somewhat confident with Lisp (I still don't consider myself to have mastered the language), the company I work for dabbled with instituting PSP (Personal Software Process). A 3 day overview was offered for managers while a 2 week course was given to engineers. The two week course provided two large notebooks of course material which included programming exercises to be done in order to teach the methodology. I wasn't able to take the extended course, so I borrowed the materials from one of my co-workers. I didn't do much with the methodology, but I did do the programming exercises in C. Then I did them in Lisp. I found a 7-10x improvement in my performance, namely, time to implement the problem. One reason was that the Lisp code almost always required many fewer lines of code. I suspect another reason is that my mind switched from "C" to "Lisp" mode. Different idioms require different ways of thinking. For example, one of the advantages of Lisp is that I can write code that writes my code for me. That's a huge win over C, but it requires an unfamiliar way of looking at problems. I grant that this is anecdotal evidence. But it is consistent with what is known about natural languages. A master craftsman can craft using mediocre tools; but a master craftsman can do more faster with master tools.
Edwards said, "These kinds of claims are just thinly veiled bragging about how smart Lisp/Haskell programmers are. I actually agree that they are smarter. But ascribing it to the language is a form of tribalism: our language (country/race/sports team) is better than yours, so we are better than you." Granted, the exceptionally talented can lack humility. But human nature being what it is, if the gifted revel in their gifts, the mediocre can be oblivious to their mediocrity. "It can't be the language that makes you better" is a rejection of new ways of thinking, of expanding mental horizons, and a loss of potential increase in productivity. It is because they can't, or won't, embrace these new ways of thinking that they remain mired in medocrity.
I have argued that language choice can make a big difference for the individual master craftsman. But Edwards notes when the "really smart programmers" complete an application using their "esoteric language" and move on to other things, that when the "professional programmers" come in to maintain the sytem, it "gets thrown out and rewritten in a normal programming language using normal techniques that normal people understand." This certainly happened with the software Graham developed. But the question of "what language is best for a team which follows the bell curve of ability" and "what langauge is best for master craftsmen" are two different questions. You cannot conclude that language choice has no effect of productivity by comparing these two unlike groups.
You don't give power tools to infants. But you can't say that the only difference between a handsaw and a power saw is solely due to the ability of the wielder.
Earth, unlike the aliens, has no comprehensive vision of their destiny. There is nothing to strive for, other than one's daily needs; nothing to drive a people to something greater than themselves. Until the alien artist "Rane" paints an even more powerful work than Blake's masterpiece.
Geston explores several interesting ideas. First, that art can be a source of truth. An idea that is increasingly seen as archaic in a scientific, technological, naturalistic age. Whether art reveals existing truth, or provides the impetus to create the truth, is left open. Second, are the various reactions to truth. Some are immediately struck by it. Others cannot see it at all. Some embrace it wholeheartedly and want to spread the word. Others are afraid and want to hide it.
The book leaves us with the notion that, in the end, the truth is inevitable. And the alien artist Blake was right. It is terrifying.
A conclusion that only solidified in my mind while writing this review. Some of us are slow to grasp the truth. But better late than never.
Having finished my current backlog of new books and looking for a mindless diversion, I decided to give this story another chance. On the surface, it's about a newspaper advertising manager, Shale; his assistant, the alien Phrix from the planet Far-Groil; and Marylin, a human-ape hybrid. Set in the far future, long after Earth had been destroyed, Shale travels the galaxy looking for advertisers for the one major intergalatic newspaper, the Lemos Galactic Monitor. His adventures take him to the planet Asgard, home of the fabled, but never seen, Publisher, who sits atop the hierarchy and directs all.
Shale lives in a galaxy where the sole purpose of people is to consume. Newspapers print ads to drive people to buy advertisers products. If there is any news, it's written as a part of the ad. Shale maximizes his desires with no thought to other people. He is a cold-hearted, brutal, thoroughly self-centered hedonist who expects everyone else to be like him. Following the principle of "the survival of the fittest", he has climbed his way to near the top of the publishing world. He is rumored to have killed his mother when he was 14. Before meeting Marylin, he witnesses gruesome experiments done on caged humans in a laboratory engaged in the unfettered pursuit of science. Marylin, a human-ape hybrid produced by the lab, displays an empathy that Shale does not have. As the story progresses, Shale slowly begins to understand her point of view although he never abandons his ways. Phrix simply wants to be left alone to enjoy a contemplative life. He abhors violence and prefers to outwit his opponents. The common man, as epitomized by a police inspector, declaims:
What's good? Good's what sticks to rules and bad's what doesn't. I didn't make the rules, no more than you. ... People, thank Asgard, are conservative. They like things the way they've always known them. That's custom too and don't tell me what's custom isn't always right or I'll go straight back to Gromworld. I'm a policeman and I hope I know right from wrong.
When they reach Asgard, Shale and Marilyn find that there is no Publisher. Phrix, through circumstances not of his own making, finds himself in a position of power through control of the printing presses. He has an opportunity to remake the galaxy, but how should it be changed?
The story is a morality play. Shale represents uncontrolled selfishness. Marylin wants to live by love. Phrix is the mystic. The police officer represents the unreflective masses who think that what is customary is good. God does not exist. In the end, the author asks the question, "absent God, how should man live?" The book leaves that up to the reader.
"PIty About Earth" is a mostly unknown and forgotten book. The web has very little mention of it. One other review is here. I no longer think it's the worst story I've ever read. Perhaps Heinlein's "Beyond This Horizon" will take those honors. But maybe I need to read that book again, too.
My oldest son has started a new job with a major corporation. It's quite a step up for him.
My middle son had another paper published: High-sensitivity nanometer-scale infrared spectroscopy using a contact mode microcantilever with an internal resonator paddle.
Daughter has chosen to attend Bellhaven University.