Metacircular thoughts

February 4, 2008

Web applications suck and they’re not worth creating

Filed under: Blasphemy — metacircular @ 10:28 pm

It’s a simple fact that complex web applications are almost impossible to create. This constrains you to making simple apps, which is often a good thing, but if the problem domain you happen to be in genuinely deserves deep exploration over time, you’ll quickly be fighting your deployment medium instead of working with it.

If you want a WYSIWYG editor roughly on par with the rich text box controls that give you about as much formatting oomph as Wordpad along with simple spellchecking of the kind that Firefox uses to tells me that “Wordpad” is incorrectly spelled as I type this, be prepared to spend several months to a year to get a production-ready version of it, the way Fog Creek did. That’s with FogCreek-level people on the job.

If you want a very nice, elegant calendar of the kind paying Backpack accounts do, be prepared to spend 2-3 months the way 37Signals did, and that’s if your coding chops are on par with DHH and the people who created scriptaculous and Prototype.

At least, if you want to achieve Internet Explorer 6 compatibility.

What chance do us po-faced mediocre daycoder fucks have? Fuck! We’re still trying to pretend Unicode doesn’t exist.

And then you have to host this. Once you grow big, you will need a full time system administrator to manage all of this, the way Fog Creek and 37Signals both do.

The unfortunate truth is that with a few minutes of point and clicking and a few more minutes of hacking in Visual Studio, I can create desktop apps with features that are a real pain in the ass to replicate in web apps. And your version will be on its way to being a big cumbersome JavaScript hack that takes so long to load it feels like a bloated desktop app. Irony.

Nothing to install, you say. From the perspective of someone who makes old-fashioned intranet client-server apps during the day and codes in their spare time and stands to make $0 off the software they produce from this, I don’t give a shit. I only work on the things I like, which it turns out almost no one else likes. You may actually discover that your customers actually want to host the software themselves, even though it’s a web app, in which case you have to do terrible things to make your dorkus malorkus customers happy.

I like applications that are fast (they do my 2 GB Core 2 Quad machine justice), that are available whenever I’m at my computer, and give me as much storage space as I can stick hard drives into my machine (on the order of a terabyte or so).

Can you imagine any web service anywhere giving you a terabyte of hard drive space, and actually delivering it? Even GOOG only gives you 2 gigs.

Getting back to complex apps, there’s a certain fundamental attribute of applications you live in, like email clients, web browsers, spreadsheets, text editors, IDEs, and other things that a lot of professionals get paid good money to spend all day in: extensibility, at multiple levels. Firefox has GreaseMonkey, Firebug, AdBlock Plus, and other wonderful things. Excel has VBA as well as a C/C++ API. Investment bankers live in their macros from what I hear.

Where is the web app equivalent of this? It’s some smug Danish cunt telling you you don’t need those things. That’s a copout and it’s a bunch of bullshit.

But there are tons of boring data-driven business apps that really ought to be web apps, you say. You are absolutely correct. By all means, the web is the default destination for heavily data-driven apps that involve a lot of simple data interactions and don’t require extensibility, realtime responsiveness (Ajax/Comet are not realtime), keyboard shortcuts and other power user features, and other lovely desktop things.

My point is this: my desktop apps leave your web apps in the fucking dust when it comes to the things that make performance-minded nerds happy. I will never create the next MySpace or Google. I don’t give a shit; I’d rather create the next uTorrent.

Blog at WordPress.com.