Native will beat web apps on desktop too

Posted by: on Jul 27, 2011 | 14 Comments

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:

  1. The web is a shit platform for making applications. All this effort we developers are putting into it to is well out of scope.
  2. As many others have noted the primary attraction is that it is easy/easier to make cross platform apps with a web browser.
  3. 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.

Well here’s the reality check. It’s nearly 20 years later. Expectations of apps are much higher now. Quality and UX is much more important. Making cross platform (including mobile) web apps is now harder than it ever was because there’s so many more layers of stuff we have to schlep into the apps, and reams of JavaScript to do anything half decent. To still fall far short of any meaningful native integration with the desktop O/S’s features.

…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]

 

14 Comments

  1. Maximilian Eberl
    July 27, 2011

    Hmm, … it is so damn easy to call everything “shit”, “crap”, “sucks”. But this usage of language points more to the speaker than to the subject.

    What then is the better alternative to the existing “shit”? Developing the same application for 27 different operation systems (thank God the death of Symbian has reduced the amount by 1)? No customer today will finance that.

    The VHS video format, the IBM PC or the Otto-motor driven car with 4 wheels have conquered and dominated the market because they became de-facto standards (although there have been technically alternatives like BetaVideo, Wankel motor or Atari). With your car You can drive to any petrol station, You don’t have different petrol stations for BMW, Volvo, Buick and Toyota.

    This is the driving force on the market and as long as there is no quasi monopolic mobile OS, the native development will be fruitless.

  2. Marc Palmer
    July 27, 2011

    I’m sorry if saying “shit” offends. I just don’t like to mince my words.

    You’re entitled to disagree with my post. I don’t buy the car analogy. Making 2 ports of native apps (OS X and Windows) is most likely all anybody needs to do in future, and let’s face it people are already doing that now. Both of those will provide a good % of reusable work for the iOS and Windows mobile ports too.

    Porting is horrible and painful. But kludging it with web tech is much worse.

  3. Tomas
    July 28, 2011

    Balsamiq Mockups is the perfect example of something built in Adobe Air that is not platform native but works on the web, Macs, Windows and Linux ( albeit without support from Adobe ).

    I think the appeal of tools like Air, Unity, PhoneGap is that you trade in performance and size for portability. Ultimately, it’s a case of the right tool for the right job, no?

  4. Peter De Winter
    July 29, 2011

    Ah, the big debate. Native of web based.
    The market will decide for us, but if you have a closer look at what is being offered there is another clear distinction between both. Native “apps” are a preferred choice for consumers, while web “apps” seem to be a preferred choose for businesses. Who will win? Both. I hope.

  5. Performance
    July 31, 2011

    Who needs to support 27 platforms, there is only Windows (for dekstops), iOS and Android (for mobile) to support the rest is Shit as Marc loves to say, just check the market share so trading performance and size for portability is just lazy talking, where’d all the good programmers go?

  6. Bob McBob
    August 22, 2011

    The biggest advantage of web apps is that they can be used from any browser, not just my browser installed on my machine. I can go to my sister’s house and use her browser, or an internet cafe anywhere in the world, and use MY apps. I don’t have to install anything. I don’t have to upload my data.

  7. Richard Spence
    September 7, 2011

    Marc

    For the record I am up for a lot more swearing and I think it is really clever too.

    You are wrong about the apps thing by the way but perhaps not *totally* wrong.

  8. Marc Palmer
    September 7, 2011

    Bob – I think that is primarily a benefit of the Internet, not the web. Cloud data storage for native apps for mobile & desktop, which is already coming (e.g. iCloud) gives you that without compromising on the user experience (which is sadly what web-based apps tend to have to do).

  9. Bob McBob
    September 13, 2011

    To get the features I listed, then the cloud will have to deliver the whole app, not just the user’s data. I’m sure it can be done, but that sounds like the web by another name, or a different kind of browser that somehow supports a native interface. That would be great, but I’m not sure that’s what you’re talking about.

    Say I want to use a “native” app with my data on my sister’s machine or an internet cafe. But, I don’t want to install anything on my sister’s machine.

    Currently, to use Apple’s iCloud, I need to install iTunes or some other app that uses the cloud.

    Mobile apps you have to install. Luckily, I can take my phone with me almost everywhere.

  10. Marc Palmer
    September 13, 2011

    Well it depends what usage. iCloud has a web interface too for many of the features, but not running the apps themselves.

    Personally I’m not looking for this functionality because I already have it in my phone – iPhone, and in my bag – iPad. That’s what Apple is going for.

  11. Grails Rocks » The web is doomed. Native will rule. I’m not alone.
    September 27, 2011

    [...] those of you who read my previous post on the possibility native could eclipse web on the desktop too, will know that I could not agree more. It’s not something I want, but I believe it may [...]

  12. Joe M
    October 2, 2011

    Marc,

    For what it’s worth, I totally agree. The web imposes too much stuff upon programmers that is there only to deal with the statelessness of HTTP, not to solve business problems.

    I have to develop a road map for the next generation of a health-insurer’s enterprise system. Lots and lots of business rules, complex processing, etc. Sorry, but the “look how fast I can create a blog app in Ruby on Rails” just doesn’t impress me as being able to support large enterprises. I would very much like to build a desktop app (frankly, I’d be very interested in writing it in Ruby or Python, but am not infused with confidence by what I am seeing in this area)

    Keeping the desktops updated is much simpler than it was 15/20 years ago. But…The whole Windows 8 thing is leaving me leery about the future of .NET and frankly, of Windows. Java? Been there, done that, not interested in returning to that rat’s nest of open-source-project-version-dependency madness (at least on the webside). And so… I am with you, I want a desktop app, I don’t want to be tied to an OS and I just don’t see much to choose from out there.

  13. Dmitry Nikolaev
    December 23, 2011

    Thanks for the post, Mark.

    I read you article trying to find answer on question many of us asked yourself: what has the future. Does it depends ? (universal answer), or maybe there are clear (I mean crystal clear) distinction between web apps and desktop apps from the perspective of success.

    The anser (and I agree with author) is in user experience. Web is for consuming information and interaction. Desktop is for producing content and for more frequent use.

    I think desktop has more chances. Here is why: http://apprium.ru/2011/12/web-or-desktop-whats-now-and-how-its-going-to-be/

  14. Marc Palmer's Blog » Code generators all the way down: Why the Web sucks for Apps
    April 16, 2012

    [...] may have read my previous posts (here, here and here) on why, at a very fundamental level, I think the open web is a terrible way to make [...]