I started playing this evil little game called Tiny Tower last week. It's effectively a Sim-Tower-heroin-clone-resource-management game. Every few hours I return to feed the beast make sure the little "Bitizens" are OK. Moving things, managing resources, restocking virtual shelves with new virtual goods. Mindless and addictive, but pointless.

The Update Beast

I realized that I'm doing the same thing with the apps on my phone. I'm always feeding the Update Beast. How often have you looked at Non-Technical Friends phone and showed them how they need to update their apps? All the time.

Installing Apps is like the old Flash CD-ROMs of the 90s. We couldn't do something on the web or over the wire so we used the ultra-high bandwidth of sneakernet along with native APIs to deliver richness. Then we'd endlessly download updates and patches (*cough* Diablo *cough*) until either a new CD-ROM was released or bandwidth increased enough to effectively deliver the whole CD-ROM over the wire.

If you had to install updates to Facebook, do you think you'd use Facebook very long? Auto-updating fixes only part of the problem. Sure, we'll get that feature one day, but the apps are still little islands of functionality that don't talk to each other. It's great that they talk to the Cloud and to various services, but few apps know they aren't alone on my phone. In fact, nearly all my apps live in the Tiny Tower of my phone but think they are alone.

Go Somewhere, like the Web

But as a user, more and more, I want to Go Somewhere and get functionality as opposed to Bring Something To Me to get functionality. Managing apps, updates and storage is as pointless as my managing my growing Tiny Tower.

If all these hundreds of apps were places I could go, link to, always updated, and always fast, would they still be apps? Would they just be bookmarks? I think they'd be something else. Web Apps are largely a hack today, no matter what browser you're running. But when what you can do in the browser matches what you can do outside the browser, interesting pressures will start to be applied.

Native Pressures push the Web forward, The Web pressures Native Apps

Native apps have the advantage of a richer experience right now. But the water level is rising and every time I think I've seen it all on the open web someone goes and ports freaking DOOM to HTML. Yes, JavaScript, HTML and CSS is a mess and it's hard, but it won't always be. As browsers get smarter native apps will introduce new interaction models, hardware accesses and new features. Those will get folded into HTML 9, then HTML 10 and the cycle will continue. I agree with Dave Winer that the real win is linking. That's the one thing that the Web brings that apps have yet to replicate.

I would hope that users just see better experiences and developers have more fun using better technologies and one day I'd just notice that the "Tiny Tower" of my phone had become a self-managing and connected system. Kind of like a real tower.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

It's nice to see someone say this. For a while, I wondered if I was alone in thinking the world's love affair with the phone app was a time warp back to 1994. Sometimes I feel as though my phone should have a 3.5 inch floppy drive.

I mean, I can understand the apps that use the phone's digital camera or other hardware, but why should I download apps to view websites? When I say this to (mostly non-technical people), they kind of look at me strangely until I ask them how they'd feel about downloading and installing a piece of software on their desktop that would allow them to do google searches. It's just like using the browser, except it takes extra disk space and sometimes you have to download more stuff to fix bugs.

Do you think that we'll start to see a dropoff in apps that don't actually have any reason to be stored on the phone in the next year or two?

App up lightly.. Just because they give free samples away at the store doesn't mean you need to eat them all up. Un-install what you don't use regularly as you can always install the latest editions from your purchase history. [Analogy] It's like carring every credit, debit and rewards card in your wallet. The updater is an indicated of your wallets thickness and you'll feel some pain if you sit on it.

Hint: If you haven't used an App since the last OS version update, you probably don't need to carry it around in your device (wallet).

Alt. Option: Plug-in, connect to wifi & Update All before you go to bed. ;)

You can see two trends heading into opposite directions if you look at applications on the desktop, and apps on the phones. On the desktop, everyone is advising against building applications even for things that are essentially a heavy-processing task (like some enterprise applications) or a fundamental desktop task (like managing it).On the phone, everyone is building an app where sometimes it just doesn't make sense. Content apps is a big example. Why build an app for a news site or a blog? I visit a blog these days, and the first things I see is “Get our free iPhone app”. You people know that it doesn't have ads, right? Your blog have ads while your app doesn't and you're asking me to use your app when I visiting your web site.Why do content web sites need an app anyway? What happened to mobile sites? When I open one of those apps, I'm literally downloading everything I see on the screen. IT'S ALL CONTENT. How is that better than just using a mobile web site?If you ask me, it's all about trends. Some company sets a new trend with a success and then everybody go crazy for that. Apple started it. “There's an App for that”, and then it was.

The real win is linking. That's the one thing that the Web brings that apps have yet to replicate.

Maybe the apps on your device...

Combined with the hardware back button, Android's Intent system is everything you like about links and everything we've cobbled together with bookmarklets all mashed together and injected with anabolic steroids. So great I even miss it when I'm browsing the web on a Real Computer. Thanks to Intents, every time I go through the highlight -> copy -> new tab -> type url -> find textbox -> paste process I feel like a damn cave man.

I think we'll always have interpreters (like a browser, or .NET or Java VM) that can deliver almost as much as a native binary, but not quite, for less effort. The trick is identifying the "not quite."

I agree with the above comment that too many apps these days simply don't need to be native apps (that includes desktop), which end up just reinforcing the point of this post. Why should every user have to update their native app when you could just update your web app?

Linking native apps... isn't that the job of the OS? With most OSes, I think you can register a native app to handle URLs of a specific scheme/protocol (e.g. iOS). Seems under-utilized, though.

Wednesday, 14 December 2011 02:47:01 UTC

All this Html 5, CSS 3 stuff is fun - aint it. ;)

Some many promises from newer browsers, but so many polyfills for people that think that IE 8 is just swell.

lynn eriksen

Wednesday, 14 December 2011 02:55:18 UTC

I understand your point but to be honest I dont think there is anything they could possibly add to the mobile web version of twitter that would make it better than just simply go to the People Hub on my windows phone to check for updates...

apps that replicate a website are pointless... apps that simplify functionality to device specific scenarios are great.

No, you can't play Doom on the web actually (go, follow the link), at least not under the name 'Doom'. Trademark infringement and all that. I don't know where to find the same thing, renamed or not.

BJ Blakely

Wednesday, 14 December 2011 04:08:00 UTC

@Amr,

One reason there are mobile apps now rather than just mobile sites is people think apps make money.

Another is people want to experiment with new technology so after doing years of asp.net, building a mobile app for the iphone or android is pretty exciting.

DotNetDude

Wednesday, 14 December 2011 04:25:45 UTC

Thirty years ago as a young programmer RPG was my weapon of choice because I got paid for it. It was ugly as a programming language then because its original purpose was to produce reports. It's still ugly as a programming language for the same reason.

I could call it "Immersive", but it would still be ugly.

Gregg Wood

Wednesday, 14 December 2011 05:47:41 UTC

Couldn't agree more Scott, I work for a company that started out building m-sites but now 90% of our work is iPhone/iPad/Android Apps. In the last few months I've noticed a bit of a renaissance in m-sites its as if people are waking up to the fact that with modern phone browsers you can pretty much have it all (access to native cameras etc... aside).

We often build Apps and m-sites in tandem with a shared webservice layer. The app is always miles faster as it doesn't have to download the html etc... just the JSON to drive it. Until 3G speeds in Australia become alot faster I still see this as being a key driver in building an App instead of an m-site.

Interesting... But seriously, what is the fundamental difference between app and web site? You mentioned updates and linking. I am not convinced.

We just transitioned to Goggle new look. For couple of days we had a choice to go with new UI or to use old one (may be the choice is still there). Isn't it the 100% app update?

Linking. Some people say you need to go to Facebook app to update status, then to CNN app to read news, then to Fandango app to order a ticket and this is really annoying. But alternative is to go to different web sites (with radically different designs, mind you). Why that's different? Because it's a link and not a button?

Of course, I know that the difference exists (I am programmer after all). But may be it's just us? May be the difference is purely technical - we are feeling it because we know the underlying technology?

"You see, honey, this Youtube video is shown to you by browser by means of special HTML tag. It's a great achievement of modern civilization. But this Youtube video is just plain local player which is loaded when you press on that picture. Same as we did last century. You understand now how they are totally different, don't you?"

Facebook use HTML5 for enabling developers to bring their apps to the mobile Facebook app, there was the rumored Project Spartan that they'd open their own web app store.

There's no doubt that one day very soon you can access the phone's hardware from the web. Just as you can request a user's location, you should always be able to request a camera capture dialog.

I assume that what you refer to as a hack is the hybrid app approach. It might be a hack, but as long as you get access to the features you need and you save the user from doing updates, it's the same experience as a site bookmarked to the home screen.

We took an interesting tact on our last mobile project. Initially, the client said “no browser”, but we whittled down the requirements and realized that they just didn’t want to see the browser “chrome” (back button, address bar, etc). Therefore, we just created a simple app that displays a browser frame that points to a URL on the server. We didn’t even have to distribute an app for the iPhone because the iPhone supports something called a “webclip” that is basically out-of-the-box, equivalent functionality. Since the app (if you can even call it that) has almost zero functionality to it, we’ll probably never need to roll out updates because we can just update the server and everyone’s happy. We’re using a lot of HMTL 5 and CSS3 features, which really make the app behave just like a native app, which is great. Overall, I think it’s been a great approach.

Wednesday, 14 December 2011 14:12:40 UTC

this is an intresting artical talking about the same thing:http://www.netmagazine.com/opinions/mobile-apps-must-die

I'm sure that you are right -- that we will eventually get there. But you are also right about the difficulty of writing really complex apps in HTML/JavaScript today. That's one reason I'm kind of bummed to see Microsoft backing away from technologies like Silverlight. Multi-platform problems asid, I need a good platform on which to build my enterprise apps.

For simpler apps that should run on tablets, great, we'll use MVC, but even as good as MVC and JQuery, and the host of other web tools are, it's a nightmare to try to write/maintain/QA processing heavy, UI-rich apps on that platform. I fully believe it will get better, but that doesn't help us today.

Jm

Wednesday, 14 December 2011 16:55:07 UTC

I'd be interested to see how many people would like to install applications on their home PCs for each of these services. If not, why not? And how is that different from your phone?

The whole reason apps existed was that the web experience on mobile was terrible. Now that that's (mostly) obsolete, I think apps are still around because the middle men of the world love them. Look at the icons in your screenshot - an app to sell phone calls, an app to sell books and an app to sell apps. It's all middle men...

If apps are like CDs, then Google, Amazon and Apple are like the cable companies and the music industry. Just making a buck by limiting your access to the content you want, right?

Exactly. And an important corollary to this is that my apps work just as well even if I have unreliable or slow internet service (which, even with a major carrier in a major metropolitan area, is far too often). Until we have ubiquitous reliable wireless broadband internet access, apps will continue to play an important role.

Users, by and large, prefer native apps. There are reasons for this that go beyond the technical details us devs often get wrapped up in trying to solve. Here's an article that describes one of the problems: Frames of Interaction (http://mattgemmell.com/2011/07/22/apps-vs-the-web/).

I can solve the "update" problem, if there is one (auto update in the background... not really any different than the website updating on me, which BTW, users hate just as much). I can't solve the problems inherant in running applications within a browser.

You want all apps to run in the browser. I want to go back to using the browser for what it was intended for (reading and hyperlinking documents) and get my apps back out of it. Sure, let me find and launch these apps from the web, but don't put the apps in the browser, thank you very much. OneClick type solutions, especially if they can be done without leaving an installed application on the system, are where I want us to move.

That's an argument I can't agree with. First, HTML5 is bringing about the ability to run apps locally without an internet connection. Secondly, many of the apps being talked about here, despite being native apps, rely on network connectivity to do anything.

the thing is the the client side (which for an app that is also tied to a service is) of a website webapp is UPDATED and downloaded EVERY SINGLE time. so just the annoyances of having to update it one thing, its not that you have to update one or the other, its just that for a web app downloading the client side app is automatic. So to get over that annoyance with "APPS" would just require IOS or whatever OS to on a case by case, or 100% choice, allow the use to "autoupdate", and the fact would be that between executions of your facebook or whatnot app, without you even knowing or realising , in the background, new versions of facebook client app would automatically be downloaded and updated.

I would like to see a web app store of sorts where sites can be added to the store and then "installed" so they look just like normal applications but don't need to, or maybe they could as well, support an offline mode.

Surely the real advantage of native over in-browser apps is about offline usage?

Another factor is time to market and toolset. In general I find developers throw applications together without much thought. Applications are evolved and don't necessarily have a roadmap or vision upfront. Things like updates are seen as a means to deploy new content instead of deploying small updatable application shells where the focus is on online update able content that is cached for offline use.

Speaking from a developer standpoint, the 'App Goldmine' is being attacked by everyone, much like the .com boom, if you have an app idea you need to get it out ASAP. Once it's out, you have customers you update, in some ways the first few versions available to users are a stable test version, you get feedback and over time improve your title.

From a user standpoint as long as the app does what I need from it and doesn't crash I don't mind, web apps blatantly wrapped in a native UI annoy me, what was the point? Better looking apps are more likely to be downloaded by me, but as longs as its usable I personally don't mind.

Naughty_Ottsel

Thursday, 15 December 2011 10:55:28 UTC

Native:+better perception+easier to write+easier to find+checked for malware(except Android)+easier to get money

Web:+same for all platforms

Native apps may be the next 'web' when you can use them without install(and charged for usage) - binary file is smaller than html+js+css.

If you watch some more videos from Build conference than keynotes, you will see that Win 8 tablet will have the same capabilities as web: linking, sharing between apps using apis + consistent look using spaces and typography

Really, web apps are dead, it is just slowing down momentum. Lot of developers are trying to make a little more from of investment they did learning web.

I'm sure there will be again new java, new web - the same experience for all devices, but not in current form.

It doesn't have to be this way. I have both an Android phone and an iPad. The iPad, I'm constantly having to hit the "update all" button, and provide my store password. It is hateful. Android? I checked "update this app automatically" on everything a long time ago, and never worry about it any more. The only thing that could make it better would be a pref somewhere in Android's store to say "always default to updating apps automatically".

Apple's response to Smurfberrygate was basically to make buying and maintaining apps a total pain in the ass.

The "I can use native apps offline" is an invalid argument; with html5 offline applications you can create an offline app as well. (Graphical) experiance can be created with libraries like Sencha and jquery mobile. Native apps easier to develop? To target every platform, you need to release several apps in different languages! A webapp is one app for all, much easier.

One of the biggest disadvantages of webapps is a simple one in my opinion: there is no easy way to (programmable) get an icon on your homescreen/in your programs overview! Native apps install, get a nice icon on your phone, but for webapps this is a drag (at least on Android it is).

Also: to my knowledge, it isn't possible to run processes in the background when using an webapp and minimizing your browser. This can be a disadvantage.

The last problem: native apps are sold. In a store. Payment has been taken care of by Apple/Google. Easy. With webapps you have to think about how to make money with your app. Wan't to sell access to your app? Then you need to take care of the payment-methods. Your customers have to go through the whole payment-routine every single time.

When there problems are solved, I really think 80% of all apps can be developed as html5 webapps. Only apps which need access to, for instance, camera, need to be native. But in the future I think there will be html5 standards to access that kind of options, too (like you can access GPS now in html5).

I don't understand why not much has been said about Android on exactly this topic.The article complains mainly about two issues both of which are solved by the Android platform:

1) The keeping-applications-up-to-date problem has been addressed by the auto-update mechanism introduced by a Android Market update for some time now. The apps are updated silently in the background without any user-interaction whatsoever. That's exactly what Chrome does for the web. If you keep Chrome open for decades then your web apps will not upgrade either, at least not in the way you think they will.

2) The every-app-is-an-island problem is symptomatic of iOS since you are only allowed access as Apple sees fit. However, this is a solved problem on the Android platform through the use of Intents and the Back button which works as good as any web linking would.

This is a non-issue for me. How is works on the Windows Phone is: Use your apps without worrying. From time to time, end up in the marketplace to check new apps. Notice that there are updates, update all apps in one click.

Because I don't have the marketplace tile on my start screen, I am not nagged by the update number, so I don't really have to think about it.

With web apps, I need to update (i.e. download) the UI *every frigging time*. Now, that is annoying!

There are two reasons for the popularity of native apps as opposed to web apps.

1. User interface. Web apps are, without exception, incredibly ugly. Google docs is ugly, Facebook is ugly, Twitter website is ugly -- but native clients are beautiful. Better yet, they are customizable if you don't like the default look.

Why are web apps so ugly, though?

2. This brings us to the second point. Web apps try to avoid all the fancy UIs and animations for one reason and one reason only -- to make it faster to load and navigate. But still, it's nowhere near as fast as native apps, and never will be. This makes a huge difference.

I can't see these two problems disappearing any time soon. So, native apps are going to thrive for years to come.

Sam

Friday, 16 December 2011 22:36:14 UTC

Love this article!

As device access becomes richer there will be less need for native mobile apps.

Our last two mobile customers came to us asking for native Android apps and we ended up creating mobile web sites in app containers. They were thrilled with the result.

Do you really thing that HTML and JS will change and that we'll start seeing more browser compatible JS interpreters (like Dart)? I think your way up a head where the real life is, while HTML is the only cross platform out there, it's still far from being a RAD platform for many apps. Yes, we don't need proxy web apps altogether that we can write in HTML today but we do need more robust and well formed language to write our apps. while HTML and CSS deliver just that... JS is stuck way back! and dreaming on HTML 9 is like wishing you would leave up to a 120

The update problem for non-web apps has been solved. Look at what an awesome job Google Chrome is doing with that. You never need to check for updates. You're never told of a new version that is available, let alone one that you have to manually download one. It just happens. You're always on the latest version of Google Chrome.

There's no reason why desktop or mobile apps can't do the same (aside from the security/legal implications, whether real or preceived by the app market that's making these apps available for download).

Chrome's implementation is becoming a norm: with Firefox and IE following their lead. I'm sure other apps will be doing the same.

Diego

Monday, 19 December 2011 15:37:03 UTC

I agree with your points. Requesting an update for an app is a terrible UI. I understand that there may be updates and fixes necessary for the app, but these should be prompted for when the app has been started, as previously mentioned the Xbox does this well.

Another issue, particular to the android OS, is the issue with updates not installing when the app is not on the primary storage, i.e. the SD Card. The update process forces you to download the latest version and then start to install before being informed that the app cannot be updated. Why add obstacles to an already outdated process.

@Erik: "installing a piece of software on their desktop that would allow them to do google searches" maybe you're too young to remember but before there was Google people did exactly that - install a piece of software on their desktop that would allow them to do internet searches. I used WebFerret and was happy enough with it, though of course when Google was born I abandoned it immediately.

Auto-update of apps would be OK if the option to rollback to a particular version existed (not necessarily the previous version of the app, but the previous version you had installed) but this would mean Apple maintaining all versions of apps on it's servers, and I can't see that happening.

Ultimatively native code will come (back?) to the web. How should extending the mess of html/js clean it up actually? It gets worse until it starts with a new foundation based upon modern insights. Seeing js as the assembly of the web is just a temporary hack.

All of which is why I thought that the niche of WP7 phones was going to be running Silverlight *web* apps optimized for the phone -- no-brainer right? Of course, it turned out they couldn't run SL apps from the web, only native ones - why? because we want to copy the Apple app store model, not do what makes sense for the platform...

>... Chrome ... never need to check for updates. > You're never told of a new version that is available, let > alone one that you have to manually download one. > It just happens

Except that people may not like this, depending on how paranoid they are or if they happen to like your company at the moment...

The problem is that if you're not Google, then nagging for updates may be the only brand awareness/reminder tool you have, especially if your code is embedded or otherwise invisible even if it's pervasive - do you really think that Flash or the Java VM need to get updated every freakin' week? - the update toast from Adobe and Sun are saying "look, remember me? - I'm still important!"

Why do we have apps, when we can make HTML5 + JS do virtually anything? One reason - money. You can't (easily) monetize a web page. You can an app.

I think that's the only reason apps exist at all. Otherwise it seems ridiculous to have to write the same "app" 3 times in different languages for different platforms. It's worse than the CD-ROM days, it feels like a return to the C64 vs Apple IIe vs ZX Spectrum vs Amstrad CPC 8 bit days where a game had to be completely rewritten for every platform.

LMK

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.