Why Web Apps Still Suck
I attended the first Java One conference back in 1995. Anyone who was in the industry at the time will remember the excited throngs (at the conference and in the industry) getting all lathered up over all things Java. (They gave out super cool mini Leatherman knives with the Java logo. The TSA now owns mine.) The height of the Java excitement was Corel’s announcement that they would port their entire Office suite to Java. What value customers would get out of the developers convenience that Corel was optimizing around I have no idea. And in fact, customers had no idea either. While I can’t find any official net record of this project’s cancellation, as far I can tell it never made it out of beta.
This kind of mob mentality running to the latest technology is not uncommon among software developers. And it’s not all bad. The WORA promise of Java was and is attractive to developers. The fact that people over-reacted (as they often do) to the excitement by starting efforts like Corel’s isn’t the fault of the technology, it’s the fault of corporations being dopey. Today’s mass migration of apps from the desktop to the web has some similarities. Unlike Java, the stated (and real) advantages are not just for developers, but they’re for consumers and they’re very very real. But there are tradeoffs, and even using client-based technologies like Flash and Silverlight to augment the native browser platform, these tradeoffs are still there and they’re significant.
Here at Jackson Fish we’re not big on technical religion. We’ll use whatever works best for the experience we’re trying to build. The true state-of-the-art app platform doesn’t exist yet. But its definition is not about a particular set of technologies, it’s about a set of characteristics and behaviors. Not all web apps suck. In fact, some are quite lovely especially with the right mix of browser-based technologies creating smooth and polished experiences. So the glass is definitely half full. But the web will still not be the right platform for a certain set of apps until the following issues are addressed. (Note: I know there are techniques for addressing these concerns to some degree, but for me, from an experience perspective, they fall short.)
- Responsiveness. It may not seem like a big deal when a product responds to your input just a touch slowly. And in truth, most websites today are certainly tolerable. But there’s a difference between tolerable and enjoyable. Well written client apps, where nothing gets in the way of the UI thread, are performance race cars compared to most web apps that cough and sputter after you click something. And never mind Ajax. My accounting webapp, which I really enjoy relative to its over-complicated desktop cousins, is busy using Ajax to death and is super super slow.
- Controls. I think most developers (never mind most users) don’t realize how many details are critical to get right when it comes to a set of controls. It’s mostly around subtle interactions, especially with the keyboard, that are the fine grain details that need to be gotten right. It took years for IE’s basic HTML controls to become tolerable and Firefox still has work to do in my opinion (text boxes specifically). When sites use Flash things get worse as they’re often rolling their own controls and most developers don’t have the time to nail every detail for every control. Scrollbars are a particular sore point with them never quite working right.
- Handling large datasets. There are a couple of axes when it comes to handling large amounts of data. In the first blush analysis it’s simply an issue of memory. The more data (thousands of rows in a list or a very large image) that you try to load into a web page, the slower the page gets. Scrollbars are a wonderful piece of UI. However, even Gmail, the crown-prince of Ajax doesn’t let you see all the mail in your inbox at once. Instead I have to page between 50 rows at a time. Outlook is happy to show me 1569 messages at once and it’s not even breathing hard. And yes, I understand the technical realities of the browser that force these paging metaphors on users. Until those realities are fixed, the user experience in these situations will always suck. The paging user interface model is an abomination. It’s a fax machine in a world of e-mail.
- Multi-select. On deeper analysis, there’s another more insidious problem that is raised with large sets of data… that’s the issue of multiple selection. Introducing any form of selection to users is a chasm you’d prefer to not cross as it can’t help but introduce complexity to your audience. However, sometimes it’s required. There are all sorts of mechanisms that have developed for selection and operating on selections (the most famous perhaps being the Finder/Explorer model of selecting with one click — relegating double-click to opening). I’m not saying that’s the best model, but I know that checkboxes are not even close to a credible way to do multi-select on more than a couple of items. Selecting multiple items (as in hundreds) is simply a non-starter. There are techniques that have been explored, but it’s just not something you can even really do in a web app today in a tolerable fashion.
- Online. Being “online” is of course one of the main advantages of web apps. They’re hosted elsewhere, always up-to-date and only cached locally, etc. But the online world is not quite perfect. I know the optimists among us will claim that these problems are temporary, but my network still goes out sometimes, there are still weird latencies in the network that affect my user experience, and the net isn’t available everywhere yet. Maybe I’m living in the past as soon these will all be problems of the past. But for now, I think they’re real, and I’m not sure they’re disappearing any time soon. At the very least, in my opinion, the issue of network latency is a real one for some time to come. Until web apps have a way to protect their user interface from minor slowdowns and dropouts in the network (and it’s not just slight delays… it’s data loss as well… should I lose all the data I just spent 20 minutes entering into a text box because I hit the “submit” button while the network decided to flake out?) then it’s not first class app platform I really want.
- App Navigation/Management. Finally, and this is a problem really for the OS vendors, web apps are still living in their own world when it comes to the inventory of applications on your system. I suppose given how many web apps I use today, maybe it’s my client apps that are living in a separate world. Either way, there is an app dichotomy today in each OS interface. Launching apps, switching between apps (window management), etc. is done two ways. One in the shell/finder, and the other in the browser of choice. It’s not like it’s been a huge problem for users that has limited app adoption (in fact none of these issues have because the benefits of web apps so outweigh the limitations) but it’s still an issue in my opinion. Having been partly responsible for the user interface of one of those OSes I’m criticizing, I failed to get this issue addressed, and I’ll admit that not many people seemed to think it was a big problem. But I do. Microsoft tried to address this issue in the IE4 time frame but not all of their initiatives were on target. I am looking forward to a world where “installing”, launching, and navigating between apps works consistently and thoughtfully across all the different “apps” on my system.
Some folks might check out this post and immediately move to defend the virtues of web apps. There’s no need. We started a company focused on writing great software and the first two apps we published (and many more likely to come) are web apps. We get it. And we could easily write the corollary to this post talking about the numerous advantages of web apps (e.g. near-zero client footprint, no version management, anywhere-availability, etc.). However, that post has been written many times.
Some people might argue that the limitations of the browser force people to create simpler apps, and that’s a good thing. I suppose that for undisciplined developers, forced constraints can result in inadvertently simpler user experiences. However, in this case, the compromises are too egregious when it comes to writing apps with power, span, and responsiveness. There are workarounds for some of the issues listed above, and attempts at putting band-aids on some of these problems. But until these issues are addressed at a foundational level, many of the apps we use every day will always be good but not great.
Join the discussion 17 Comments
Marcelo Calbucci
February 11, 2008 at 3:33 pm
WRT to Corel moving to Java, I vaguely remember the product become so, so slow that it was unbearable to use it and they quietly canned it.
Hillel
February 11, 2008 at 5:06 pm
The only thing i could find on the net was that it never made it out of beta. But I couldn’t confirm it. Sun still has some of the press releases posted in the bowels of their site. ;)
Fred Flintstone
February 17, 2008 at 9:18 am
You’ve discovered that web apps aren’t 100% perfect. Insightful. So what are you going to do about it? Or are you just going to keep making web apps that suck?
Hillel
February 17, 2008 at 10:08 pm
Oh… I’m sorry. Were you not told that this blog is dedicated to complaining about the obvious without offering any solutions? ;)
On a more serious note… I don’t think it’s unreasonable for a software startup to constructively point out specific problems that platform vendors may (or may not) choose to address. And as for our apps, we certainly try and make them suck less by doing our best to work around these problems and constraining our app choices to ones that work best despite these issues. However, it would be nice not to have to perform work arounds or constrain our app choices.
Jerry Mead
February 18, 2008 at 3:39 am
Please take a quick look at Zeepe.
http://www.zeepe.com/zeepeinfo/mini-about.asp
12 years of gentle development, and these days pretty mature.
Obvious caveat: as always with these things, just one group (and our customers’) idea of what’s useful.
Fred Flintstone
February 18, 2008 at 8:58 am
It’d be nice to not have to work around problems? The point of business is to work around problems! Is your software startup a business or your personal playground?
Problems are opportunities. Successful businesses love problems because they can build a business (make money, make people happy) on embracing them and obviating them. You sound like an idealist (and a lousy businessman) waiting for platform vendors to eliminate your opportunities to make better products than the competition. Idealists don’t build products people love (“suck less” in your words), pragmatic people build products people love.
So do your apps really suck less? On your subjective/idealist scale, your apps suck less. But what really matters, and what should matter to you as a software-maker and as a business, is the objective scale: what users think what sucks less and what sucks more. If people use your apps more than their competitors then you are correct that your apps suck less. But if your apps are used by fewer people than their competitors, then you have to admit that your apps suck more.
Hillel
February 18, 2008 at 10:54 am
I appreciate the lessons in the basics of business. As a new business owner (and a lousy one according to you) clearly I need them. :)
That said, I believe you have a fundamental flaw in your thinking. You state at the end of your comment that the metric that “really matters” is which app people use more. This is broken thinking (imho). It’s the age old “market share is all that matters” philosophy. It’s true that market share is an important indicator, especially in markets where standards preclude the existence of a multitude of competitors, or infrastructure costs demand very high returns (and high scale).
But… (and this is an important but) not every product category fits those criteria. There are plenty of categories (including different types of software and web services) where having a small audience can be a profitable and economically rewarding enterprise. In fact, it’s the sheer scale of the internet that is turning the market share obsession on its head. The audience on the net is so great that if you can find a smaller group of folks who fervently love your product and build a loyal relationship with them that you can monetize effectively, then you have made yourself a nice business. Is it the biggest business? Maybe not. But it could be a very profitable one. Especially if your overhead is super low.
By your logic, my favorite restaurants in Seattle “suck more” because they have a tiny number of customers compared to McDonald’s. I guess you love your Big Macs. I mostly prefer my food made by a chefs who put care and attention to detail into every bite. (Though… I do love those McDonald’s fries every once-in-awhile :) .)
david
February 18, 2008 at 11:14 am
While you and Fred Flinstone throw rocks at each other, I think you have an insightful point that needs to be looked at — integration of web apps and client apps. With HTML 5 and Safari, you now have client-side storage. With Adobe Air, you have a rich client application that sits in the Finder or the Windows Shell and is launched just like any other application. What are your thoughts on this? What about the iPhone that now allows your web applications to have an icon on the home screen (launcher). Is this better integration?
Fred Flintstone
February 18, 2008 at 12:15 pm
McDonald’s is successful in what it’s trying to be: cheap food. Your favorite restaurants, I assume, are successful in what they’re trying to be: quality food. They are not competitors any more than Ford Motor Company is a competitor to Boeing. Your failure to understand the difference belies your understanding of business and of user experience. The fewer people who like something, the better it must be? Sounds like you’ve already resigned yourself to defeat.
One thing I’m sure we can agree on is that your snobbery and your ad hominem attacks on me are not profitable. I’ll let you get back to building the smallest business with the fewest customers. It’s an interesting approach, I’ll give you that.
Fred Flintstone
February 18, 2008 at 12:32 pm
By the way, the next time you go to your favorite small restaurant that serves great food ask the owner if they’d prefer to have more customers. When they tell you that they would prefer more customers, explain to them why they’re wrong.
Hillel
February 20, 2008 at 10:17 pm
David, you’re absolutely right about all the innovation happening in this space. AIR seems like progress though it’s interesting as even when I’m using flash-based apps I don’t always get the kind of responsiveness I’m used to getting in client apps built on more “traditional” client frameworks. And frankly, often when flash apps get large (in terms of screen real estate) and are visually interesting they can get pretty pokey. I do think AIR is cool in that your app is offline (and not subject to network latencies), and that AIR puts your app in the client app launcher namespace. I need to play with the install experience of an AIR app to see if you’re giving anything up relative to the “install” and “update” experiences of web apps.
The iPhone actually is very cool in this regard (though I haven’t broken down and gotten one yet), it’s designed from day one without the web app/client app dichotomy in terms of launching and windowing (though as walter points out the iPhone browser still has a separate favorites function that’s not integrated with the iPhone homepage). If you were designing a new desktop shell experience from the ground up (or heavily modifying an existing one) you would adopt some variation of the iPhone integrated launcher model. Thanks for pointing this out. I saw it but didn’t internalize that they’d made some progress in that direction.
Aaron
February 21, 2008 at 10:10 am
“Fred”, not every business owner actually wants to grow their business. If they are happy (and profitable as they want to be), then …. they are free to do whatever they want.
Some business ideas don’t scale and don’t need to. Not everyone wants to or can become the next “McDonalds”. I totally agree with Hillel. There’s no law (thankfully) that suggests that in order to be a successful business, you must have more customers than your competitors.
Say Hi to Barney for me. ;-)
Fred Flintstone
February 21, 2008 at 4:33 pm
Any business owner not trying to grow their business will not be a business owner for long.
If nothing else, businesses have to earn more revenue year after year because their costs go up due to inflation. Unless the business can simply charge ever-higher prices while keeping costs fixed, inflation will drive the business into bankruptcy.
If you still think it’s possible, any business that is just sitting there reaping profits will face more competition — why not steal the business from a lethargic business? It’s easy. That competition will drive them out of business by taking their customers.
As they say, a business that is not growing is dying. There’s no equilibrium point where a business can be idle and continue to reap profits. If you know of one, write an essay on it because you’re guaranteed to win the Nobel Prize in Economics.
Barney says “Hi”, the Great Gazoo says “Hi, Dum Dum”. :)
Brass2TheMax
June 12, 2008 at 11:54 am
I realize this is long since dead, but “Fred”, you obviously know nothing about business. A business can remain small while being successful. You have a lot to learn.
Brian
December 11, 2009 at 6:57 pm
The web is *not* an application platform. It’s amazing to me that so many people are clueless about this. The most basic native app written in C++ or even VB runs rings around a web app like a Ferrari Enzo around a Ford Festiva. Oh, but that requires man’s programmer balls and the ability to handle your own memory allocation and collection. And don’t even get me started on how every Graphic Designer recreates the world (or rather the web page interface) in “his own image”. What ever happened to consistency? Oh right! The web killed it. At this point I think society should go on a witch hunt and start burning web designers at the stake. At least then they couldn’t pollute the gene pool. /rant
Brian
December 11, 2009 at 7:10 pm
@ Fred : Just because you drink the Kool-Aid does not by default make your business more *profitable*. It’s not about quantity if the profit-margins are there on quality. Adopting trends rather than questioning and setting them is just blind obedience. Way to put on a pair of blinders. Seriously, I don’t know if anyone told you, but crack is actually bad for you.
Tom Wilson
April 7, 2011 at 3:35 pm
My company has gone web app crazy. Instead of using our travel agency, we have to book travel online. Travel accounting and time cards are also web apps and boy is that wasting time. Most of us are highly paid engineers and scientists and thanks to web based applications, we can now waste $300/hr doing grunt work while the $40/hr grunts get sacked. I don’t see that as a productive. Are all web based applications single transaction oriented? (I.e., I enter my 8 hrs for monday and my machine goes dead for 30-seconds registering that entry before I can enter another number)? It would be easier to fill out the entire form (locally) and just submit it. Why does everything have to be single-entry?