Making Things Difficult
by Joran Elias
22 February 2009
Consider a common computing task: writing a document. We’ll leave it that vague.
Now imagine you’re writing software to allow a user to write a document. Is it possible that there are really only two strategies that are feasible? Namely, to make the user’s life as difficult as possible in one of two ways: (i) create software that constantly attempts to anticipate the actions and desires of the user or (ii) create software that must be explicitly instructed by the user to accomplish even the simplest and most common of tasks.
Both strategies make the user’s life difficult, in some sense, right?
What I have in mind here is Microsoft Word (i) and LaTeX (ii). Neither are meant as criticisms (although I generally despise Word). I haven’t really used genuine word processors in years, so I sometimes wonder if I’d hate OpenOffice or Pages just as much.
Anyway, that was just a random thought.

Feb 23, 08:38 PM
I hate OpenOffice just as much as Word. Which is a lot
Feb 26, 11:13 AM
The purpose of a software application is to take a problem that intrinsically comprises an enormity of tedium—-such as word processing—-and hide as many of the irrelevant details from the end user as possible, for as long as possible. I assert that this is ultimately a futile exercise, unless you restrict your attention to that class of users who really don’t care about the problem, and just want “something reasonable” to happen. There is, however, no way to fully generalize any interesting problem without either exposing those details, or strictly limiting what users can do with your software.
All you’re really seeing here is a difference in emphasis. When you write in LaTeX, the expectation is that you will start from a tabula rasa and build up whatever abstractions you need until you have a language that suits your needs. Library components make this easier, but you’re basically expected to understand your own problem space and make informed choices. Programmers tend to take this to an extreme—-plain text files with nothing in them are the most appropriate medium. But, anybody who cares a lot about the precise layout and formatting of their text is going to gravitate in this direction eventually.
When you write in Word, the expectation is that you will start from a complete set of generic defaults, which can be tweaked and adjusted until you have what you want. Often, that means you have to spend your time throwing away a bunch of crud that was intended to serve as a common base case; but for many users, the defaults are just fine, and don’t need tweaking. An exemplar of users who prefer this end of the spectrum is that moiety of older folks who aren’t terribly computer savvy, and just want to use the damned thing to write letters and print invoices for the family business.
It seems to me that most of the companies who’ve tried to land their products in the middle of this range have failed. In word-processing terms, I am thinking of products like WriteNow and Nisus, which eschewed the hulking behemosity of Word, but still hid all the explicit formatting codes. They’re dead now, and I think it’s not because they were crushed by the mighty Microsoft Marketing Machine (which isn’t all that mighty)* but because they were too far from either extreme to be useful to anybody for real work.
So: Yes, I think there really are only two development camps, and I think it’s because there are only two interesting user poles.
*This is the same marketing organization that built a Windows ad around an excerpt from Mozart’s Requiem, the stanza from the Dies Irae that goes “confutatis maledictis, flammis acribus addictis.” I rest my case.
Feb 26, 02:53 PM
Thanks for the comments!
@Dan: I have also heard some pretty bad things about OpenOffice.
@Michael: That was well put. I don’t have anything to add, really, because I agree. I just needed to point out that you said that better than I ever could.