Programming: The Desperate Losing Battle
Posted by Daniel Lyons Sat, 27 Oct 2007 22:53:00 GMT
Jonathan Edwards refused to participate in the much-vaunted Beautiful Code essay collection, saying on his blog:
“Telling an inspiring story about a beautiful design feels disingenuous. Yes, we all strive for beautiful code. But that is not what a talented young programmer needs to hear. I wish someone had instead warned me that programming is a desperate losing battle against the unconquerable complexity of code, and the treachery of requirements.”
You’ve probably never heard of this guy, but he is responsible for the most interesting development in programming languages in the past thirty years, Subtext. Subtext seems destined to be whispered about for decades before emerging as a powerful yet obscure influence on some future technology.
All good programming languages are based on an interesting principle or theory of computation. The best are those that obliterate an unnecessary barrier, usually between the language and the compiler and the resulting code. In the middle of the second Subtext video, Edwards reveals that Subtext is actually about directly manipulating the run-time structure of the code.
This is quite a departure. In fact, isn’t this the problem most people have with recursion? Visualizing and understanding the run-time structure of the code, namely the call stack?
Of course there are a plethora of other interesting benefits to Subtext; editing a run-time graph enables a lot more code sharing and less duplication. In the second video, you can see incredible simplification of refactoring. I’m also surprised at the excellent details of the GUI and how it all hangs together so well. It has all the hallmarks of being created by a great programmer philosopher. An underground hit.
It will be interesting to see what comes of this in the coming years.

It would be great if I could see his fucking Flash. Unfortunately, whatever he’s doing to detect that says I can’t view it. Good job, dude.
It looks to me like the pretension level on that site is up to 11. While I can appreciate that on an abstract level, I’m not convinced that he’s right. “Programming is not Mathematics” ... ok. That kind of ignores the background of it and the reality of what you’re working on, but sure.
Anyway, maybe I’ll see it running on your machine one of these days.
Oh, could you turn on non-AJAX commenting? It’s kept me from commenting a few times due to my widget not speaking whatever Javascript variant is required.
Bill,
I’m so glad you have an opinion about it without actually knowing anything about it apart from what I said above. You can always trust the style of a website to be a good gauge of what’s being said. Every good language designer is an eccentric who believes their language is cut from wholly new cloth or for the first time has a unified spirit. And then of course nobody goes on to use it.
I have been looking at Core Animation and the drawing tools and whatnot, toying with the idea of making a Subtext clone for Mac OS X. I probably won’t (like most software I think about making). And I couldn’t get his Java to run on my box. Worse, I think he’s rewriting it in C#.
As an aside, do you suppose you could go get, I dunno, a real fucking browser? Like maybe Firefox? I’ve enabled non-Ajax commenting but if I get a big rush of spammers, I’m going to turn it off again.
Hey, man, I read his blog for a while to get an opinion.
Furthermore, I’m using Firefox with Javascript turned on and Flash enabled. See screenshot . Odds are good that his detection page doesn’t deal well with FlashBlock (which shows me an icon in the place of Flash, and I click on that to see the animation).
The non-Ajax commenting is for my E61. As you’ve noticed, I use Firefox for daily stuff, but sometimes I want to give you shit while on the go.
If comment spam goes up, I’ll understand if you shut off my mobile-shit-talking channel.