Thursday, June 16 2011

Tim Bray has an interesting post up about mobile web apps versus mobile native apps. It's worth the read.

I'm not sure I buy Tim's argument supporting the dilution of what a "web app" is. If a web app is anything that uses data from the web, then pretty much everything is a web app now.

In any case, the whole discussion brings me back to the late 90s. At the time I worked primarily on platforms featuring thick client applications (primarily Windows). The web was still largely a toy.

But it was obvious where things were going, so I steered my projects towards the web, overcoming incredible resistance among the teams and among the community. I'm happy I persevered, powering through as technologies like XmlHttpRequest made it a richer, more robust platform.

The Anti-Web Minions

The resistance to the web was largely backed by people who feared its disruptive nature, worrying that it made the things that they know less marketable/relevant (which is also the root of a lot of anti-NoSQL advocacy). Most were professional software developers who earned their stripes in Win32 and MFC and other thick-client technologies.

The web grew. It certainly didn't take all software markets (and some people plying those foundational technologies still make most important software. C remains the least sexy language going, but still powers pretty much everything), nor should it ever, but for a lot of tasks it was the perfect solution. It represented a tremendous degradation from what was possible in the native platform (vastly more of a downgrade compared to the modern browser on even mobile devices), but the few important advantages it brought made it a winner.

Along the way there have been a lot of self-interested parties calling its death. Every time Microsoft rolled out some new client technology, such as WPF, parties like Amazon would release test GUIs showcasing how brilliant the world would be with a fat client, those looking for a salvation from the web would declare it the death blow...and then those projects disappeared and the web remained.

I knew WinForms were a non-starter and didn't waste my time with them. They died. I knew WPF was a non-starter and didn't waste my time with it. It is on life support. I knew Silverlight was a non-starter and didn't waste my time with it. It, too, is taking laboured gasps.

Why was that? Why, when the client market was a homogeny overwhelmingly dominated by Windows machines with video cards and plenty of RAM and lots of processing power, did the comparatively crippled web model own so many markets? Back when the web was actually a pretty miserable stack?

Now look at it: We have a platform with threading, local databases, offline utilization, native video and audio, dramatically better scripting performance, vector graphics of all sorts, sockets...it's insane how much it has improved, even on mobile devices.

History Repeats Itself

IMG_2328

Once again, however, we have a lot of people calling for the death of mobile web apps. That group is dominated by iOS cheerleaders who, knowing that it has an app advantage, don't want to give an inch in the one category that their love dominates. People like Gruber and Siegler. Interestingly this usually represents a complete 180 from prior positions to embrace this new marching order.

You Must TripIt. TripIt Real Good

One can't draw much from Tim's specific comparison, however. There is nothing visual in that native app that can't be mirrored, with perfect fidelity, in the web app. Whether one would even want to is open to question, though, as they're both mighty ugly (a lot of the base Android UI kit is...suboptimal). The only reason they look different at all is because they were likely developed by different individuals, both of whom set their individual fingerprint.

The visual comparsion is irrelevant, as it usually is in such comparisons. One could argue that a native app had smoother scrolling or better transitions, but that's a facet of the browser's implementation, and where it falls behind it needs to be, and will be, improved.

Of course there are some features that can't be accomodated in such a web app. With limited knowledge of this specific app, the one missing link seems to be notifications, which could be handled by other means (SMS', emails, tweets, etc), or maybe that's the justification for a native app.

Offline access to cached data, despite the many comments declaring that a deadly point, is not a problem with mobile web apps. That is a problem that has been solved for some time, so it's bizarre seeing that myth continue to pervade.

Mobile Web Apps Aren't Going Anywhere

There are a couple of fantastic mobile web apps. They are the few. Instead the field is dominated by those that were a second-thought.

That is changing..quickly.

Twitter has fully embraced the web on mobile, and rumor has it that Facebook has a major project underway to do the same. These leaders, adapting to a heterogenous platform world where you can't focus on one curated garden, will set the pace and inevitably the followers will follow.

   

Reader Comments

Add Comment

Name *:

Email Address:

(your email address is not displayed)
Website:

Comment *:



About the Author
Dennis Forbes Dennis Forbes is a Toronto-based software architect. While focused primarily on the .NET and SQL Server worlds, Dennis frequently ventures outside of this comfort zone into game development and image processing. He has been published in several industry magazines, has been quoted in the Wall Street Journal and has been interviewed by NPR.

He is a vice president and lead software architect at an innovative New York City hedge fund back-office services firm.

Dennis has been working on solutions for the financial, telecommunications, and power generation markets for over 15 years.





 

Dennis Forbes