It’s OK, I have two sets of flameproof clothing on.
Further to my contribution to the everlasting mobile web apps vs native debate I was discussing these issues again with good friend Richard (who is truly called a platform ninja), and again cropped up the “why is a tablet different from a desktop then? why is native better for tablets and not desktop?” question.
Here’s my take on this, and I’m going to keep it short:
- The web is a shit platform for making applications. All this effort we developers are putting into it to is well out of scope.
- As many others have noted the primary attraction is that it is easy/easier to make cross platform apps with a web browser.
- My conjecture is that point (2) is the only reason people have accepted desktop “apps” that are web based. There was no other choice presented to the users, and the developers had no other choice.
The failure of Java as a cross platform UI/desktop consumer app environment is to blame for point (3).
It meant app developers had to begrudgingly support a mass market of Windows devs while actually using Linux or Macs themselves because Windows back in the 3.1 -> XP days was so unutterably shit. If you’re afraid of writing native apps for iOS or Android, you should have tried writing Win32 applications back in the 90s.
So the web came, and these devs had to keep their apps supporting Linux because they used Linux themselves or had Linux guys screaming at them – but largely ignored the MacOS users (hey I should know, I was one of these developers). The only way to do this was with the web.
Desktop apps, even if you could find a cross platform framework that was not total shit (this is impossible, an immutable rule of the cosmos), require lots of support, required per-platform installation scripts and documentation. Oh and nobody really paid for apps after the initial trend of Shareware subsided.
Consumers didn’t want to pay Joe Bloggs $20 for this or that.
So freemium was born, where we all have web apps and only a select few make real money. We don’t care if they actually need to be web apps, we just choose it as a default because it is what we know, and we are scarred by the memories of 1990s native development.
…and now Apple and others are creating high quality app stores for native desktop software. This means that there is a simple “arms length” route to market. Millions and millions of users who can and will pay you $5 for your native app. Which, when you have made it native, is likely to be quite easy to port to at least 1 mobile platform as well.
As mooted in all the native vs. web mobile app discussions, the classic issue of access to all the raw platform features comes to the fore. This is even more important on desktop if you are making actual apps rather than services.
Ergo, I see a distinct possibility that the stage is set to that native desktop could actually kill the notion of the web “app”. By apps I am talking things that are distinguished from online services. The web is document retrieval and viewing. That’s always what it was designed for.
Photoshop, Keynote, Email, bla bla. These can be much better as native apps – there have been many impressive attempts at web versions of such e.g. 280Slides, Google Mail etc.
However the cloud is not the place for the hosting these desktop apps. The cloud is just the place where you store the data.
People are used to cheap tangible purchases on mobile. They will expect the same on desktop. Its a massive opportunity for developers again to create really compelling applications. Free of the shackles of the 1990s – both in the sense that native platforms are much nicer to develop for now, and that the constraint of limiting your ideas to what is capable in a browser that 80% of your market uses can now be lifted.
Go and build great native desktop apps, go and build great web services. Don’t mix them up.
[Before you dismiss me as a madman, I've written many native Win32 apps in C, C++, Delphi. I've written many web services from right back when Mosaic was the only browser we had. I've also written and ported many J2ME mobile apps. I've also made my living off selling shareware as well as consulting.]
[Also interesting read here: http://mattgemmell.com/2011/07/22/apps-vs-the-web]