Hacker News new | past | comments | ask | show | jobs | submit login
Apps are too much like 1990's CD-ROMs and not enough like the Web (hanselman.com)
163 points by joeyespo on Dec 14, 2011 | hide | past | favorite | 70 comments



I posted this comment in another thread about apps, but too late for it to really get any responses:

- app discoverability sucks ass

- apps require updates

- app development is unnecessarily tedious and must be done x number of times for x platforms

- iOS apps need to be approved by Apple, and you have to play the game by their rules if you want to charge money for them

- apps lack basic features of browsers - no universal find, no back/forward buttons, no bookmarking of pages or states, no organizing apps into tabs, etc.

Let's be honest: not counting games, the vast majority of the native apps out there would work just fine (or better) as websites. Add API's like access to the camera and there's even less reasons to develop a native app. Apps will be relegated to games and highly sophisticated interfaces, which if I had to guess probably represents around 10% of all the apps out there (heck, most of the games out there could probably be done in the browser).


"app discoverability sucks ass"

Discoverability sucks ass. Period. Unless you already have a strong network, or lots of advertising dollars, the chances of anyone finding your software, of any kind, is low.

"apps require updates"

While that is true of some implementations, there is no reason why apps cannot be downloaded on each execution. You could even use a URL bar to show the network location of the app, if you want to.

"app development is unnecessarily tedious"

A modern web application is no better in this regard. In fact, most of the recent frameworks that have sprung up to solve the problem of building web apps all seem to be loosely based on the same ideas from OpenStep that are used in popular native frameworks.

"apps lack basic features of browsers - no universal find, no back/forward buttons, no bookmarking of pages or states, no organizing apps into tabs, etc."

I mentioned it in an earlier discussion, but it seems worth repeating: The web browser is just another platform API. There is no reason why, say, CocoaTouch could not include those things by default for all apps too.

The whole web vs. native discussion is pretty silly because it all comes down to a few specific implementations that we keep pointing to, when anyone can change the state at either end of the spectrum on a whim.


"A modern web application is no better in this regard"

Due to the web's open and standards-based nature, all you have to deal with is compatibility problems, which are resolved over time. I 'll take that over having to build for 6 different APIs, in 6 different languages in order to reach everyone's phones.


What are you talking about? PHP back end, HTML pages, CSS style sheets, Javascript to make it all run, and all this on a per browser type and version basis.


html css and javascripts are standards across the industry (despite minor differences per browser vendor). That is the huge advantage of the web. PHP is just one backend, which really could be replaced by anything else. Are you telling me native apps don't need server backends?


>despite minor differences per browser vendor

Minor? Keep in mind, it's not just per browser vendor. It's per version, per browser vendor. This is handled better today with the score of libraries you have to add in any web project but the problem is still there and will likely get worse before it gets better.

>That is the huge advantage of the web.

What? Objective-C is a standard. Cocoa is a known entity. So already I have one language and one API compared to three languages. If I include Android then I have two languages and two APIs vs three completely different and unrelated languages.

>PHP is just one backend, which really could be replaced by anything else.

Unless you replace it with JavaScript, that's yet another language I need to write and maintain. Not to mention, after all this effort I still can't consistently (if at all) provide an interface as nice as I can with an App.

> Are you telling me native apps don't need server backends?

Some do, not all. But of the ones that do, much of what you would need to do is just handled by the framework (e.g. storing data in the cloud, syncing, game serving and coordination, all handled by IOS SDK with no backend work on my part).


1) No, it actually gets better over time, and with jquery (which is still javascript) the problem is already solved. Still, you use the same language that you learnt 10 years ago

2) Learn a whole language and a whole api for one of the ~10 different mobile platforms vs 1 single language for every browser? That's a huge advantage. Seriously how much time you have to waste on learning different frameworks that do the same thing (display an app on a touch device)?

3) The backend problem is the same for both native and web apps; and PHP won't ever make your website snappier than an app because that's a browser problem.

"three completely different and unrelated languages."

What does that even mean? It's a stack of 3 complementary and orthogonal technologies that don't overlap. Don't you need to learn about layout and properties files when you do iOS development or android development or x development?

For me it all comes down to developer happiness, that is, achieve maximum effect in less time. That's why i m a webdev diehard and will never endeavor on proprietary closed frameworks.


>It's a stack of 3 complementary and orthogonal technologies that don't overlap.

Irrelevant. I need one language to describe the data, a completely different language to specify how to lay it out and a third completely different language to do any dynamic work (which is a lot these days). In e.g. iOS I can do all this with Objective-C.

>For me it all comes down to developer happiness, that is, achieve maximum effect in less time.

Agreed.

>That's why i m a webdev diehard and will never endeavor on proprietary closed frameworks.

That's why I'm not and hopefully will never have to be.


We are obviously in different camps. Yet, regarding the first point, it's not irrelevant. Can you layout apps in ios or android without learning about layout files, property files or what else?


Actually yes. I can't speak to Android but on iOS you can just drag the controls where you want them to be. Or you could just do it all in code. You don't have to learn anything but the language and the APIs if you don't want to.


"there is no reason why apps cannot be downloaded on each execution"

Not everyone has access to unlimited data plans or fast connections.


And yet we do this for websites. You hit up Gmail and your browser pulls down all the Javascript, CSS, HTML, and images that you need to "run the app". This is not fundamentally different from downloading a native app. The web content is granular so you don't have to download everything up front, and your browser caches to avoid fetching unchanged resources constantly, but these techniques could in theory be applied to native apps as well.


there is no reason why apps cannot be downloaded on each execution

It would make it much slower to open an application each time. After all, vast majority of applications don't do this, so there must be a reason why.


It wouldn't be such a bad idea if:

1) it only downloaded a new version of the app when it changed (easy with ETags);

2) apps were lightweight (hard on current mobile platforms).

If platform vendors and application developers cared, it would be easy to make most applications weigh a few hundred kilobytes. We could then do exactly like what Web apps such as Twitter do natively.


I don't see why it needs to be any worse than loading a web application. It is the media assets that make any application large, and they are going to be the same size no matter how you package your app.


With a webapp, you only download the images for the page that is being shown, not all the images for all the pages.


There were a small number of great CD-ROMs back then. The Voyager Company did as much as was possible given the crappy hardware that existed.

Anyhow, I could come up with an equally harsh assessment of web apps as you did of native apps:

* web app discoverability sucks (seriously how much money is spent on SEO?)

* web apps constantly change on you or disappear when the shop is bought out

* web app development can be a multilayered nightmare of browser bugs and code shims

* you pretty much need to sell your soul to a bank or Paypal to sell anything on the web (let's see how Stripe works out long term before we declare victory there)

* many apps lack basic features like site-wide search, working back/forwards buttons, working bookmarking due to bad Ajax use, incoherent and inconsistent UI, etc.

Now, I happen to like web app development better than native app development, but I'm not a big fan of triumphalism in any of its stripes. Heck, the vast majority of websites out there would work just fine (or better) as paper brochures or a rolodex.

The web will continue changing and evolving and the browser will only be one of many ways that it will be consumed. Native apps will be integrated with web services more and more over time.

Apple has done a spectacular job of monetizing small apps, Google is building a good infrastructure for ad-sponsored apps, I wouldn't discount their long term potential.


"I happen to like web app development better than native app development"

I find the distinction to pretty blurry, myself. If you look at Cappuccino, you could practically search and replace a few tokens and have your code natively compile in Cocoa.

As web applications become more complex, proper separation of concerns, like MVC, starts to become important. Once you do that, as seen with Cappuccino and echoed in many other frameworks like SproutCore Backbone to name a couple more, the process starts to very closely resemble native development.

We now have the web browser playing double duty. We want it to be a hyperlink document viewer and we want it to be a platform for applications. Personally, I would like to see the browser be only a platform for applications and let the hyperlink document viewer be one of the many applications you can run in the browser.


    seriously how much money is spent on SEO?
Smart companies and individuals don't spend much money on SEO, as most white-hat practices require long-term focus and black-hat practices can get you erased from the Internet. You can't do anything unless you're doing marketing, however marketing must be part of the product and can't be outsourced.

With that said, web apps go viral faster than anything else, that's because there's no barrier to entry. You don't have to be a member of the iPhone users club to try out links.

    web app development can be a multilayered 
    nightmare of browser bugs and code shims
Compared to multi-platform development for OS X, iOS, Android, Symbian, WinMo 6, WinMo 7, Windows 7, Windows 8, Blackberry, Samsung Bada, Linux ; it's heaven like.

    you pretty much need to sell your soul to a 
    bank or Paypal to sell anything on the web
Except Paypal or a bank are NOT in the same market as you are. They also don't control the platform you operate on. They couldn't suddenly one day decide that your product should be part of the OS, making their own alternative.

If you're getting screwed by Paypal, you're only losing some money. However, if you're getting screwed by Apple, you lose your product and business model.


    Compared to multi-platform development for OS X,
    iOS, Android, Symbian, WinMo 6, WinMo 7, Windows 7,
    Windows 8, Blackberry, Samsung Bada, Linux ; it's
    heaven like.
You make this sound much worse than it actually is. iOS is where the money is and Android is up and coming. All the others can be either ignored and served with a (funnily enough) web site.

Then there are libraries / frameworks that abstract all these platforms away or allow you to use a language that you're experienced in: MonoTouch, PhoneGap, Unity, etc.

Now, libraries don't fix all the problems and sometimes you will have to deal with the platform but they do take care of a whole lot.


As a long-term investment, it's a bad choice though. I still make money from web apps built in 2007, and there's a pretty good chance i 'll keep making it with incremental changes in the following years. I doubt i 'd say the same if i'd started with phone apps in the pre-iphone era.


>web apps go viral faster than anything else

Yea, free ones. I don't care as much about how many people are using the thing as I do how profitable it is.


37signals.com


As randomdata pointed out, I think this goes more to proving my point than yours. They did a lot of work to get to that point. Contrast that with "Tiny Wings" that showed up and started making a huge amount of money.

I'll grant you that it's more effort today than it was with an App, but an App platform provides an easier method of discovery [1], an easy method for billing and even an advertising platform. With the web this is all on you and the web is more ad focused so you're probably more likely to be competing with free.

[1] Random chance with the user entering the right google keywords vs doing a category search in the app store and knowing you can see everything in that category.


Not a good example. 37signals had a huge following long before Basecamp. Their success in web apps was largely from leveraging that existing fan base. Most developers do not have the luxury.


Users determine what is successful, not developers

- Web app discoverability is much worse

- Updates is a minor issue for users

- App development is not the user's concern

- App store approval is a net win for users. It eases their concerns about malware.

- Browser functions are not useful in most apps and the add an extra layer of abstraction

Native app can be made into just fine web apps but that is not always good enough. The best apps are still native.


Web app discoverability is much worse

This is especially one of the glaring holes with web apps in relation to their native counterparts. There just isn't a central destination for users to easily assess and access them. If web developers can come together and make this happen on a greater and more open scale than what the App Store, Chrome Store, or any other restricted app directory is currently offering, then the web has a chance at reengaging those native app users. Until then, the web is a jungle.


Updates are a major issue. Most web-spoilt users don't even understand why apps don't update themselves. Browser functions are useful in most apps, hence the 'back' buttons in the top bar of most iOS apps. People are used to the web nowadays and expect similar functionality from the rest of the software they use.

Discoverability is a big problem. The chrome web store is an example, it's interesting, but it's only built into chrome, and we had too many failed "Web directory" projects in the past anyway. There are other routes, like facebook viral apps, but these are also siloed.


The typical user doesn't care about updates. Most iPhones I see have 15+ uninstalled updates. The response to every Facebook update shows that that the typical user will resist change. Why would silent updates be critical to these kinds of people? I can about what version they are on as a developer but they don't care.

The back button is useful to some apps, some of the time. Why should you show it all the time and confuse users? Native back buttons also allow you to show context; you can display information about where the back button takes you.


Let's be honest: Native Apps can be reverse engineered, the Web/Cloud don't. And reverse engineering is an important right.

When web applications have only limited APIs, limited call rates, and changing everytime I can only think that I can turn on my Apple II and continue to use the same applications as 30 years ago.

Again, don't compare Google Spreadsheet with Microsoft Excel, look at the Microsoft balance sheet.

If you're interested I've written more rants about this on:

- The Data Portability Fact Sheet: http://blog.databigbang.com/the-data-portability-fact-sheet/

- Google Search NoAPI: http://blog.databigbang.com/google-search-no-api/


Most interesting apps on my iPhone spend most of their time talking to web APIs, so that's a bit of a moot point.

Plus, for the client-side of things view source is a lot easier than decompiling a binary.


Moot point? If the APIs change your applications turn unusable. Look at what Twitter did with third party UI applications.

You are only one case. Can you summarize all the application that you use everyday for work? are they native or web applications?


* Website discoverability sucks ass; at any rate you can advertise an app on your website and ge the best of both worlds

* Websites require connectivity

* Web development is unnecessarily tedious and requires coding in multiple half assed languages and targeting different browsers and platforms (and scale)

* Most websites don't make any money at all regardless of which rules you play by, but you're playing by google's unknowable rules at minimum

* Websites lack basic features of apps, such as offering complete control over the user experience (e.g. Not wasting screen real estate on web browser cruft)

* Let's be honest, including games every website could be implemented as an app.

I actually agree with your post in many ways, but all your points can be turned around without even being clever or disingenuous. I think some things (e.g. Magazines and most content apps) should be websites not apps. Other things should be apps. A few things should be both. Websites need to devise ways to work offline (which magazine apps do, but suck anyway).

Let's take a simple example: Ken Rockwell sells interactive camera manual apps for iOS devices. Could this be a web site? Sure, but not much use when you're hiking or caving or doing a shoot on a building site huh? Also much harder to monetize.


half of these are problems with iOS apps that android solves (eg back button, autoupdate, open publishing).

others are also problems on the web (eg discoverability and tedious development on x platforms).


Keep in mind there are ton of mobile apps that do things that shouldn't require web access. I'm often in areas with spotty coverage, yet still need to use some of the following:

  camera apps
  flashlight
  calculators
  document editors / todos
  games
It seems like in these debates people are confusing HTML based browsers with internet connectivity. Internet connectivity is all that matters. The hypertext web browser, on smartphones, is looking rather obsolete from a performance standpoint.


webapps don't require web access. localstorage and application cache apis are widely supported.


I wish this were true. Those 1990s CD-ROMs were useful when I wasn't connected to a network.

My iPad has 32GB of space (about 50 CD-ROMs), two cores each faster than any computer in the 1990s plenty of RAM, etc... It wants to be used like a thin client web browser thing. What a horrible waste.


I think apps are popular because they are more concrete than the web.

A user knows where an app starts and ends and they know what icon they need to touch to get there.

Websites are far more ethereal and it isn't as clear when you've left one site and landed on another. And it's much harder remembering how to get there.

Case in point: how many people type 'facebook' into google and click the first link instead of entering 'www.facebook.com' into the address bar.


Haven't heard a better metaphor for apps yet. Long live the web.

In all my infinite wisdom, I tried out a few apps from google chrome. And gave them permission to see what websites I view. Does anyone know if that goes away once I uninstall said app, or is there any extra mucking about and cookie removal I should take care of to make sure feedly isn't following me everywhere, even after it's uninstalled?


You should be okay.

Once you uninstall a Chrome extension and close all tabs (since code could have been injected into them), there won't be any code related to it running on your machine.

It is still theoretically possible that while a Chrome extension was running that it updated state (via a cookie or otherwise) on webpages you were visiting, so perhaps clearing cookies could be helpful, but I'm not aware of this happening.


Some of these complaints are side effects of Apple's implementation and not apps in general.

Frequent updates are often used to churn an app for visibility on iTunes for better discoverability. Thanks to this, apps are updated for very minor reasons, and most people don't give a crap about minor updates.

apps are still little islands of functionality that don't talk to each other

That's not entirely true. Apps are only islands if you make them that way. Many iOS apps talk to each other using URL protocol handlers as an interchange mechanism. I just bought TextExpander Touch, and it works with over 120 other apps. There's some Twitter clients that do something similar. No question that this would be even better with more support for it in the OS, but it works now.

I spent much of last year working on an HTML5 app. Maybe HTML5 will equal the app experience someday. But that day is not today.


Re: updating your app all the time for discoverability, on the flip side of that coin is that if you update your app frequently you'll also lose glowing 1.0 reviews frequently, to be replaced by the often-less-glowing 1.1 reviews. This is actually a large deterrent for many developers to ever release bugfix updates without new features because people are less prone to leave 5-star reviews on a new version that just fixes some small issues they may not have even noticed.


HTML/JS is up to running Doom now? Is that the best example? It puts it 17 years behind native.

The article also says the water level is rising -- which is true, but why assume native is standing still? On the contrary, I see native APIs evolving far more quickly because of the huge competition in mobile platforms. iOS has gone from 1.0 to 5.0 while HTML5 has been in gestation.

Native is a moving target, and HTML isn't catching up, let alone surpassing.


One thing that web apps lag behind now is the "micropayments" thing. The eponymous "in-app purchase" is a damn sight easier for the end-user to understand and use ("Do you wish to purchase 99 potions for US$0.99?" Yes/No button).

Because the App Store already has your card on file, they can do this with minimal friction. Same goes for Amazon.


I think that people are more likely to pay for an app then for a website.. maybe that is why, Apple, Google & Microsoft are pushing apps instead of pushing the web..


This is a good point, and touches on what calebbrown said above, that apps are concrete, which makes it easier to pay for (psychologically). Perhaps the powers that be recognize this, or perhaps it's just a matter of the biz end of then interent starting to trend towards paid material. Money drives motivation here. This scares me a little, because it tells me we really are going to move into a world of apps....


I think your first point is fair, but those giants are pushing them because they can easily install themselves as gateway and take a fat cut.


Then somebody will come out with a free app that does the something or better than the paid app. Lather, rinse, repeat. Blah.


I just tried viewing this fellow's website through an iPad and an iPhone, and am pleased to report that he had the native good sense to make sure his site didn't look like garbage on a mobile device before singing the praises of the mobile web.

However. This good sense is far from universal, yet. When I browse the web on my mobile device, I stumble across a lot of pages that look as if they've never been viewed on a mobile browser - or, worse, that seem to think I'm using a mobile browser from 2003. Many other sites still use Flash - it will probably be another five years before the last one of those gets the memo that Apple mailed four years ago. And even the sites that have a mobile design often use stock frameworks like OnSwipe, which I find to be an effective commercial for native apps or, for that matter, unstyled plain text.

In short, it's too early in the web's counterattack to deem it effective. For at least another year, that app icon is more valuable than a hyperlink, because it provides evidence that at least one programmer has spent at least five minutes looking at the app on a mobile device before signing off on it.


Thanks, I'm a responsive design fan and worked hard on that. Thanks for noticing. :)


"Apps are too much like 1990's CD-ROMs and not enough like the Web"

And that's a good thing. App developers have a much wider set of APIs to play with so they can do more while web app developers are stuck with whatever they had around 2005. There's been enormous progress on the back-end of web apps, but the browser side hasn't kept up.


I remember tons of CD-roms which were just HTML, images , swf and java files. The same goes today for many of the apps that are sold on appstores, especially magazines and newspaper apps. The main reason seems to be that publishers can charge for the apps. On the web we don't really have an alternative yet, unless someone comes up with a brilliant, frictionless, secure and elegant web API for micropayments.


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 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 you web app will not upgrade either, at least not in the way you think it 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.


'APPS' AND 'THE WEB' ARE TWO COMPLETELY DIFFERENT FUCKING THINGS!!!

Do you realize you're comparing a crippled, poorly-designed gadget with a distributed, massively networked system for browsing documents and information?

'Apps' do not work like 'the web' because they're not supposed to work that way. They're supposed to be static, stable, simple, reliable, offline, well-tested, usable. 'The web' is literally thrown together like so many ingredients in hobo chili. 'An app' is a Bonsai tree. Unfortunately, most people spend all their time tweaking the chili and spend absolutely no time pruning their bonsai. God, I hate making these comparisons.

I'm sorry for being angry, but it's getting sickening just reading the titles for weird articles like these that make no sense.


so many apps do what the web can already do


That's true, but on the other hand, there are many apps that are pleasure to use where a web site is a pain in the ass. The android gmail app comes to mind.


This reminds me of the dichotomy that Apple and Microsoft faced when developing their empires. There are two major camps I think: one that ties in hardware + software (native apps) and one that relies on software with disregard to the underlying hardware (the web).

It's really tough to say what the clear winner is. There are advantages and disadvantages to both approaches. AFAIK, Apple has always bet the bank on the first approach and it's done well for them.

History would seem to suggest that the first approach provides a richer end user experience where as the latter provide ubiquity. I'm not sure which will win out in the long-run.


Why the fuck there is a debate over apps vs webs going on lately?? web,app or desktop is a medium and way to provide your service to users/customers.. You choose the medium depending on solutions u provide.. u do location based service on apps and u cannot do it well in web.. Each platform has its own advantage/disadvantage. it depends on users you target, solution you provide. i dont know why there is a debate?? is web developers vs native platform developers and their concern about their future,the root cause of this debate??


Well that's precisely the point. The advantage of the Web is its concept, not its implementation. URL is great, instant delivery of content is great. But the technology stack that Web is currently implemented with, i.e. HTML, JS and CSS is full of crap. Advocates for Web confuse the two: it's not HTML and JS that constitute the main advantage of Web, it's linking and sharing. And those technologies need to be replaced as soon as possible. Good that Google is trying to do something about it: Native Client and Dart.


Native apps have their place and so do web apps. One major benefit of native apps on iOS is consistent user experience. This is because a lot of apps use standard UI elements and navigation. I tend to feel more at home in native iOS apps than a mobile version.

I still don't understand how discovery is any worse for native apps. On the web most people use search engines to find an app? App stores have search too. Plus, search engines usually find apps on app stores. If anything this makes discovery better for the native app.


Installable applications are much easier for many people to pay for.

This isn't limited to things that run on smartphones: Games that are installable are an easier sell than network games.

In some ways, they SHOULD be easier to pay for, as they have a chance of sticking around and at least partially working if the company goes belly up.


This is why Google is so keen on the browser market. Once we're able to run beautiful apps through the browser independent of the platforms, standalone apps start to look really un-attractive. IMO who-over dominates the browser market in 5-10 years time, dominates the mobile app market.


"Yes, JavaScript, HTML and CSS is a mess and it's hard, but it won't always be."

Just wondering, since those are the only languages I know, but aren't programming languages for writing native applications (like C++) harder than, say, JavaScript?


Apps vs websites reminds of the TV vs VCR analogy. Yes you can use the VCR 24/7 but requires lots of maintainance. Sometimes it's just easier to turn the TV on no matter how bad the content.


Yeah, apps were cool in the beginning, like when you first bought your iphone. But after you've installed like 10+, the novelty wears off and all the apps feels like a scam junk yard.


Great insight, I mostly agree. And I am really crossing my fingers that HTML5 will quickly become a recognized app technology across all web platforms.


Tangent: how does developing for webOS compare to developing for the mobile web?


This "insight" is why WebOS was such a good idea. Entertainingly written though.


Clearly. WebOS has proven the author correct with its stunning success in the marketplace.


>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.

So in other words, the latest web technology will always be lagging behind. Yeah, that's pretty obvious.

But the sad thing is we're comparing two already horribly flawed systems. No one in their right mind should be arguing in terms of a locked-down, Disney-fied, compartmentalized experience versus a slow, infuriatingly clumsy and intermittently-available simulacrum of the same thing. We need to own our own devices and create, modify, and deploy our own software on our own terms. (And please don't insult my intelligence by claiming that the ability to browse to any given URL can constitute these freedoms in any materially useful way.) To publicly ask for anything less is so lacking in imagination and ambition as to be criminal; it serves only to reinforce the pathetic productivity-destroying dichotomy seemingly being forced upon us.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: