tom thinks

date 2000-12-20:14:01
Software First, I want to say how impressed I am with w3m.

Most programs that start life as "minimal" wind up as e-mail interfaces.

That is, they grow and grow and grow with more and more distantly-related features tacked on until finally someone says, "Hey, I bet I could manage my e-mail with this, too!"

And they can, because by that time there is no data management, connectivity or computational function that hasn't been built in somewhere.

I'm not sure why this happens, but it does. People start with the best of intentions to keep it small and simple, and it almost never winds up that way. The most extreme example I've seen of this is the XML spec, which started out so cleanly and now has a complexity that is probably within an order of magnitude of SGML itself, having introduced entirely gratuitous concepts like schemas--whose addition functionality could far more easily have been incorported into an extended DTD syntax.
Humans I rarely buy books that I never mean to read, but I just did.

Naked Came the Stranger by Penelope Ashe (et al) is one of the great frauds in the history of English letters, and serves as a reminder of how much the literary world has improved since the dark days of the sixties and seventies. Today we have people like Margret Atwood and other Booker-winning novelists on the best-seller lists. Then there were people like Harold Robbins.

This is not to say that junk still sells, but there's a pretty hefty dollop of good literature in the mix.

Penelope Ashe is a pseudonym for a group of writers, lead by someone whose name I don't remember. The leader got everyone together to each write a chapter of a really bad novel in which the female protagonist, after discovering her husband was having sex with someone other than her, has sex with a different person in each chapter.

As an example of bad writing it would be hard to best. The ringleader insisted that anything resembling good writing be ruthlessly blue-penciled.

The book was sold to a publishing house that had a huge advertising budget, promoted with the ringleader's sister playing the part of "Penelope Ashe" and was well on its way up the best seller lists when the fraud was discovered, which immediately propelled it to the top.

I have no doubt that you could do something pretty similar today, although the topic would probably no longer be the sex lives of suburbanites. The important thing, though, is that thirty years later, Naked Came the Stranger is a curiousity, as is the work of Harold Robbins and his ilk. Conservatives of all stripes like to make out that the world is always getting worse, and they ussually do this by pointing out some local annomaly like how bad this or that book is, or how warm (or cold) it was last summer. But if you look over the longer term it is hard to sustain much respect for conservatism. Things have spent too much time getting better into many ways. Today, the air is cleaner, the wildlife are better protected, people are healthier and freer and living longer and are richer over most of the world than they were when Naked Came the Stranger was published. There's been a huge amount of change, and most of it has been for the better.
Reading Reading difficult would be if word meaning only mattered.

EBNF grammars are insufficient to specify languages suited to communication between thinking creatures. This is part of what makes computer programming so hard, and in particular, it's what makes it so hard to read other people's code. Unlike natural languages, computer languages are harder to read than to write. I was coding for years before I was any good at figuring out other people's code.

There's a reason for this.

Apparently there is a form of spoken English in Japan that contains expressions like "health meter", a term that refers to a bathroom scale. "Health" and "meter" are English words, but no native English speaker would ever be able to understand someone using these English words in this way.

But this is the way people code.

The grammar for a language tells us what the smallest units of meaningful (that is, parsable) structure are. But it tells us nothing about how to combine those units to make larger structures that can be understood by people rather than processed by machines. So long as we have lots of little bits of syntax that are strung together by valid connectives and separated by valid terminators or seperators, the machine is happy. But the maintenance coders aren't.

Various attempts have been made to impose more high-level structure on programming languages. What we know so far is that if there isn't an institutional bias in favor of a particular set of styles and idioms, chaos will reign, and I'll write code that measures people's weight using health meters, and you'll write code that does the same job using fitness boxes.

This means that the most important task for an advanced programmer is learning to read. We learn to write code very early on. Learning to read is much harder, and its a problem we only face when we are well on our way to mastery of writing.

The same is true of reading natural languages. Those of us who write find ourselves reading differently, more deeply, than we did before. Because now we have some insight in to the process of creation, we can see a little more deeply into the writer's mind.

Find Enlightenment