Stevey's Blog Rants: Rich Programmer Food
steve-yegge.blogspot.com
steve-yegge.blogspot.com
Back in high school I wrote a similar thing in C#. I wrote custom code for every window and literally every control - lots of redundant code there. It was a big horrible mess and took two months to develop. For various reasons (cross platform high on that list, but also lack of flexibility and a horrible source base) I decided to rewrite it. I used to think I was a pretty good programmer (Dunning Kruger effect?).
This time around, I instead built a system which automatically generated a GUI around RTTI and handled loading and saving - very similar to Rails' Scaffholding. A day instead of months, because I chose to build a domain specific library with which to construct my application out of.
It's not exactly compiler writing (a parser wasn't needed thanks to RTTI, but if it was I would have written it) but I think it's very analogous to what he's talking about - problems that appear big and nasty can be abstracted down and become trivial by solving one hard problem instead of a larger amount of slightly smaller ones. This is true of compiler writing, frameworks like RoR, layers like HTTP/TCP/IP. It's the very reason why the spread in programmer productivity is so high. Better programmers don't attack problems faster, they attack them from a position of higher leverage.
Simplifying, commercial software does (mostly) two things: collects data and transforms data. Too many programmers focus on the later ignoring the former. For instance, designing and running cool algorithms on a some sort of a giant graph is cool indeed, but parsing and representing a real-world data in a form of graph is boring and challenging.
"Web 2.0" likes it easy way: "Users will bring you data themselves" :)
"Situation 7: you have a small, lightweight startup company filled with cool young people with long blue-tinted hair and nose rings and tongue rivets and hip black clothes and iphones and whatever the hell else young people have these days. You use Ruby on Rails for your site..."
lol
If all that matters is being able to get a parse tree, then maybe more languages should provide a parsing function, just as Lisp does.
I wrote a source highlighter without really knowing compilers, but that's just because getting a Scheme (or BRL) parse tree is trivial.
Win 25000$ and eternal fame if you can prove that the Turing machine described there is universal, or if you can prove that it is not universal (in the latter case, I think eternal fame won't be included in the price).
It is a beautiful problem.
Personally, I'd rather have a useful syntax and maybe a standard parser that gives easy access to the parse tree. I wrote a Javascript-to-Javascript compiler (that did optimization and correctness checks along the way) once and the fact that JS has syntax wasn't a big problem. (especially since I ripped off the parser from Rhino)
Seriously, is it necessary?
When was the last time you noticed a popular magazine or newspaper with entire pages of text?
True, but books do it all the time---as does Joel's essay, except for the gratuitous pull quote in the very section under discussion.
Organization isn't to make the reader's life easier. Making sense of what one reads is largely an introspective activity. No matter how well-organized it is, you the reader have to regurgitate into a form suitable for yourself before you can digest it. This is called active reading.
Je n'ai fait celle-ci plus longue que parce que je n'ai pas eu le loisir de la faire plus courte. -- Blaise Pascal, Lettres provinciales, letter 16, 1657. (I am sorry for the length of my letter, but I had not the time to write a short one.)
Paul, I agree it needs to attract, entertain, and hold the reader but feel the verbosity is laziness in editing rather than style.
My understanding is that PG spends weeks writing and editing his longer essays. The result is obviously much more solid and digestible, but I'd definitely trade some of that solidity for more quantity. That might be key the difference between a blogger and an essayist.