De-Productive Dept.

By Serdar Yegulalp on 2011-09-27 13:01:37-04:00 No comments

Today I got smacked in the face with yet another example of why a web browser is a terrible place for "rich applications" (what a term).

For one of my jobs I use a content-management system that requires filling out a whole bunch of different fields in a rather large and complex form. Some of these fields accept rich text input via an in-browser rich text editor (or RTE). Most of the time, I just toggle the editor off, open an HTML editor on my desktop somewhere, edit there, and then paste the raw HTML directly in.

For some unfathomable reason — maybe as a time-saving measure, who knows — I decided to just open up the in-browser editor and input the text there. I got most of the way through one entry when the RTE got a little mixed up: it didn't seem to know where the cursor was anymore. This happens with depressing regularity in in-browser RTEs, because there's no consistency of implementation between RTEs, let alone between browsers.

Now one of the fun things that happens when the RTE loses focus is that if you press a key, that key is sent to the browser itself. This is the single worst thing about in-browser apps: the dividing line between the app itself and the browser that contains it is often very flimsy. All it takes is one mis-sent keystroke to throw everything off. In this case, the keystroke was a backspace, and you know what happens when you send a backspace to the browser as a whole — you go back a page. Half an hour's work vanished instantly.

What's even stupider is that this particular CMS is supposed to save a local copy of your work, to a cookie I guess, every so often. That way, if a trashing of the above variety takes place, you can simply reload the form and pick up where you left off. Not this time. No local copy saved. I gave up and broke out a local HTML editor and decided the effort of cutting and pasting was far less arduous than ripping my hair out every time the wrong keystroke destroyed thirty minutes of labor.

This is why I refuse to use Gmail, or Google Docs, or any of the other tools that force me to use a browser's sad, sad toolset instead of the perfectly good tools available through a rich desktop application. It's not because it's slow (although that depends on what you're doing), or because it's clumsy (although it is, plenty enough), or because things I take for granted on the desktop like rich cut-and-paste either don't work at all or break in all kinds of horrible ways. It's because on top of all that stuff is the caveat that I might lose all my work in an instant because, say, I might hit BACKSPACE when the proper UI element is not in focus. (And yes, I know it is not that hard to trap a backspace or navigation activity in JavaScript, but the fact you have to do so to prevent this kind of disaster is itself an indictment of the metaphor in question.)

And none of the things being proposed now — certainly not HTML 5 — are going to help, because the whole enterprise is wrong from the git-go. A web browser is not an app platform. It never was. It was designed to read static documents and link between them. Building apps on such a framework is like, as someone else put it for a different toolkit of astonishing ineptitude, trying to make bookshelves out of mashed potatoes.

I've ranted about this before, but every time it comes up I feel obliged to say something, because (again, as someone else once said) things are going to get a lot worse before they get worse.

Tags: computers technology