I’ve been following some discussions about the future of software applications, and a phrase that came up in my dinner with Robb Beal has been echoing in my mind. What it comes down to is this: if you want to develop software, you can build for the Web and/or Unix and/or OSS platforms; or alternatively, you can be a sharecropper. Your choice, but I think it’s an easy one. Especially since the users out there want you to do the right thing. (Updated to fix a couple of inaccuracies. See here for details.)

What Robb actually said, in a conversation about Mac software outputs like Ranchero and Watson and his own Spring, was that building for the Apple OS feels like being a sharecropper.

What‘s a Sharecropper? · I found a good definition at InterAction Design:

A farmer who works a farm owned by someone else. The owner provides the land, seed, and tools exchange for part of the crops and goods produced on the farm.

It’s a lousy position to be in, because you’re never going to make much, and if the land’s owner finds something better to do with the land, you’re history.

A practical example of this is Watson, the product mentioned above, which did very nicely, thank you, on the Macintosh, until the owner of the land brought out Sherlock, a very nice program that did many of the same things.

Are You a Sharecropper? · If you’re developing software for the Windows platform, yes. Or for the Apple platform, or the Oracle platform, or the SAP platform, or, well, any platform that is owned and operated by a company. They own the ground you’re building on, and if they decide they don’t like you, or they can do something better with the ground, you’re toast. They can ship their own product and give it away till you go bust, then start charging for it; and use secret APIs you can’t see; and they can break the published APIs you use. All of these things have historically been done by platform vendors.

How Not to be a Sharecropper · If you develop server-side software that runs on Unix (by which I mean any platform that runs bash and creates processes with fork() , which includes GNU/Linux, Solaris, AIX, and many others), you’re not a sharecropper. They’re not 100% compatible, but they’re enough alike that you can move around and nobody really owns the turf.

You’re not a sharecropper if you’re building around the Apache webserver and the increasingly-large suite of associated software. Nobody owns it, and it runs on anything; nuff said.

You’re not a sharecropper, especially not a sharecropper, if you’re building on the Web platform. If you can define your value-add as a series of interactions via a browser, or an interchange of XML messages, nobody can whip the land out from under you.

Good For the Customers, Too · It’s pretty obvious that it’s healthier not to be a sharecropper vendor. But a little thought shows that it’s better not to be a customer on a sharecropper’s platform. When something good and new comes along, the chances are less that it’ll be scooped and monopolized by the landlord, and greater that it’ll develop into a healthy ecosystem.

But it‘s especially good for the customers to be on the Web platform. The notion of routing everything through the browser (with one significant exception, which I'll discuss below) is incredibly user-centric, user-friendly, and user-empowering. Because once they know how to use the “Back” button, to click on highlighted text, and to fill out a form, then they don’t need much training in how to use your application.

Reactionaries · But there are those who want to break out of the browser mold and go back in time. They used to be the Visual Basic crowd, then the tribal drumbeat came from the Java/Swing dimension, and most recently we’re hearing that WinForms will supersede the browser. In Don’t try to re-invent the browser, please, Frans Bouma holds forth, for example “The concept of the ‘browser’ is a concept of the past. Let it rest, let it die in peace, it's about time users move on to richer environments...”. Similarly, Richard Tallent, coming from a much less Microsoft-centric direction, says in Browser of the Future, “Any web site can expose an interface that is indistinguishable from a native app...” and talks about “... the best of both interface worlds: browser-like flexibility with application-like usability.”

Bzzzzzzzzzzzzzzzt! Wrong. · These people have forgotten that all application interfaces (VB, win32, X Windows, Mac OS) used to be “richer environments,” and the users abandoned them by the millions, in favor of the browser, the moment they got a chance (granted, the browser was an advance on previous online-service interfaces).

I said millions and I meant millions: tens of millions, hundreds of millions of browser downloads from the Netscape that was, and the software vendors fighting the rearguard actions to defend their “richer,” “more responsive,” “higher-performance” client software; and losing, losing.

Hey, I cashed in on it. Open Text got to be a successful vendor of content management software largely because we were the first to do it all through the browser, with no client software. Our stuff didn’t do all that much more, but given a choice between client and browser, the people wanted the browser.

That’s why the phrase quoted above, about flexibility and usability, is so completely 100% wrong. Browsers are more usable because they’re less flexible.

I think I’ve told this story before here, but it’s a good one; at a content management conference, a woman from the Tandem-that-was saying “It was so wonderful when the browser interfaces came on; the vendors had to discard all those stupid sliders and cascaded menus and eight-way toggles, and only leave the stuff that mattered.” Which is to say, WinForms is not the way forward.

The Exception · Which is not to say that the browser is the right answer for everything. Here’s an overgeneralization which I think works. Computer applications, excluding games, fall into one of three baskets: information retrieval, database interaction, and content creation. History shows that the Web browser, or something like it, is the right way to do the first two. Which leaves content creation.

The time I spend not in the browser (counting NetNewsWire as a Web browser, which I do) is substantially spent in Emacs (where I create code and ongoing), Email/Chat (text that goes right out on the wire), Word (text destined for a printer), Excel (numerical models), and Photoshop (pictures).

The browser makes a lousy funnel through which to pour your soul into a computer, and I don’t see any reason to expect that to change. I don’t think WinForms is apt to replace any of the above input paths, so what future for it?

Back to Sharecropping · Scoble talks about how much he and Microsoft want to lure developers to build applications for Longhorn, and no surprise. To mangle three metaphors, if you drink that kool-aid, you’re either locked in the trunk like Dave Winer says or if you like my metaphor-ware better, you’re a sharecropper. Either way, it sucks.

Don’t go there.