Why did the web take over desktop and not mobile?
subconscious.substack.com
subconscious.substack.com
Input APIs for touch, multitouch and gesture were a mess for many years in the browser.
Media queries didn't become a w3c recommendation until 2012 so building a ux that looked pleasant really wasn't possible.
The memory, cpu, GPU, storage and battery constraints were unbelievably tight.
In short mobile hardware and the iOS and Android SDK environments were consumer + developer ready for practically 10 years before the web was ready for mobile.
The real question is how did the web remain relevant while being so far behind this tectonic platform shift?
I think major points that kept the web alive: content addressibility (via urls), ease of connectivity between content (via links), vast amounts of information already in the platform, smoother learning curve for developer technology, and the vast amounts of money/influence Google was willing to put in to keep it's search ads property relevant.
I'd say the app ecosystem promotes closed content whereas WWW promotes open content.
If we're judging whether the Web promotes open content by the actual results after three decades, the exact opposite is the case: the Web promotes closed content.
Netflix, ESPN, Google/Gmail/Maps/News/etc, Microsoft/Bing/Office/mail/etc, NYTimes, Washington Post, USA Today, MSNBC, CNBC, Reuters, AP, CNN, Bloomberg, FoxNews, ABC, CBS, NBC, Facebook, Instagram, Twitter, TikTok, LinkedIn, Pinterest, YouTube, Imgur, eBay, Amazon/Twitch/Prime/etc, Target, Walmart, ETSY, Disney, Viacom, Verizon/Yahoo, Match.com, Quora, PayPal. Along with pretty much all corporate sites and porn sites. Most blogs are privately owned, copyrighted; same with substacks; same with most mailing lists. Most photography on the Web is owned by someone, and captive on a platform. Travel sites/services (Booking, Expedia, etc), review sites/services (Yelp, Trip Advisor, most cooking sites, etc), weather sites, real-estate sites (Realtor.com, Zillow, Apartments.com, etc); ticket sites (Vivid, Stubhub, Ticketmaster, Live Nation) - they're largely in the same box, they're all privately owned, copyrighted content, closed corporate platforms.
Now keep going with that list for most of the next 5,000+ largest sites (with few exceptions like Wikipedia or Stack Exchange).
Nearly everything on the Web is centralized, closed, privately owned, copyrighted content and or platforms. They're all little walled gardens.
Anyone can make an app too.
> if it's has one good article, it will show up in some google query's result.
Maybe buried deep in the 100th page, but not the front.
After they install some bloated IDE, learn some "tech", and pay the gatekeepers
> Maybe buried deep in the 100th page
But they can be found and share, as opposed to apps of a non existent category where average people publish what they are working on, their thoughts, or whatever. App Store and Google Play search would crumble at the scale of the number of websites in existence right now (~2 billions). Remember that search engines index what's inside those websites too not just their name and description.
Tell me how making and hosting a website is absolutely free.
On iOS, this is only true if they're in good standing with Apple and have their approval, while also paying the yearly $100 Apple tax.
Wait till you find out about paying for bandwidth.
Have you heard of biscuits?
You've been able to turn off cookies since the beginning in any sort of competent browser.
Or I completely screwed up my understanding of this thread. That's also very possible.
[1] https://support.mozilla.org/en-US/kb/enhanced-tracking-prote...
Cases in point: Facebook, Instagram, Twitter (increasingly closed), Reddit (increasingly closed). All of them have sites built on open protocols.
But open content is not 1% of the existing web; there are more than a billion[1] websites, and anybody can make one.
You might not easily be able to find those websites (currently, there's still a good chance you might, via the major search engines, but that is subject to corporate hegemony, state actor malfeasance, shit-flooding the zone, etc).
But I think the ability to "put it out there" counts for most of the definition of "open".
Being able to consume content on your terms is also cool, but not as fundamental as being able to produce it.
[1]: ¯\_(ツ)_/¯ — https://duckduckgo.com/?q=how+many+websites+are+there+in+the...
We didn't all shift to to smartphones the instant they became available. It took a while for people to transition to smartphones. Likewise getting an app up and running (in addition to their websites) took time for most businesses, and many probably waited before jumping on the band wagon
I am sure everyone on HN moved quickly, but for the rest of the non-tech world I am sure they were doing just fine using their home computer for several more years.
Even now, I still think "I'll wait and do this on a proper computer". It's not like apps have solved all computing-ills - many are total garbage with bugs and/or poorly thought through designs.
A whole generation of people in India never used Computers as the western population did but large majority of same people directly moved to smartphones.
I may be wrong, but I suspect you have that backwards. My guess is that at least older HNers were slower to shift from powerful but complex creation tools (computers) to easy consumption toys (smartphones) designed for consumers who found computers with files and folders just too darned complicated to use. Until good, portable mapping and good-enough cameras came along, I had no use for the "smart" features of a phone that were vastly inferior to the smart features of a real computer. For a long time, all I needed from a phone was the phone, which a small flip phone handled just fine. For anything "smart", I used the laptop & real camera in my backpack.
We assume that things we actively notice other people doing in public are representative of what everyone (or everyone in some category to which we've assigned that person) is doing. We don't notice all the people not engaging in that behavior because they're not noteworthy.
Doesn’t this comment include it’s own set of biases?
Which would imply that there's a tendency to notice the noticing more than the not noticing, and, as a consequence, over-estimate how often people do it.
It's a good point.
They're consuming, not interacting. It is not lazy nor is it dismissive to suggest smartphones are largely devices that inspire consumption. It's just a proper observation.
The same goes for the comment about iPhones being 'designed for consumers'. They were designed to be easy to use, but that in no way means they were under powered or less capable because of those design considerations. Again, that's not how that works. Powerful or easy to use is a false dichotomy.
They're incredibly powerful tools and mistaking a major, even the major use case for being defining of the tool (therefore everyone uses it this way, or therefore that's where the main value lies, or therefore these people here wouldn't use them) is fallacious. There are 'influencers' who have built fortunes almost entirely on their phones.
This is also probably one of the reasons TikTok took off; it allows high quality content creation via smartphone that anyone can do.
Yeah… no. Maybe for some people, but I primarily use it as a consumption device. But then, I don’t use social media, I don’t answer my phone (I listen to voicemails once a day and choose whether I want to respond or not). I don’t use any work apps on my phone, like slack.
Using corporate censored devices is not making you free or enlightened in any way. We are approaching real danger in the tech community where criticism and non-conforming to the gospel trends are becoming the norm.
Once you are used to the power/freedom available on a Laptop/Desktop Computer you could never get comfortable with the restrictions on a Smartphone. The latter is for less tech-savvy people and almost always used as a media consumption device.
Oh, yes we did. Within 3 years (say 2007-2010) it was game over for feature-phones for the mass population, whereas the state of web APIs was still bad.
I'm routinely in the same boat, though it's less about the computer and more about not fighting with a tiny monitor. Most things built for mobile are "light" versions, as easily exposing all the bells and whistles on a 6" monitor would be a UI nightmare.
Also my mouse is (insert big number) times more precise than my index finger.
I don't think I'd make my phone my primary machine despite this until Linux phones are daily-driver ready for me though. The mobile OS is still too limiting.
(That and while the NexDock is serviceable, its touchpad is awful. Good enough to use occasionally, but I wouldn't want to be stuck with it as my main machine.)
The good sites are :)
The not so good ones "force" you to download an app with no alternative and require obtrusive permissions even though all you want to know is the answer to a quick question.
The Micro PC proves that we were sold a myth; that dumbed-down UIs were a necessary evil to enjoy computers in our pockets. They aren't. Pocket sized laptops work amazingly.
However, I will also say that a touch-type keyboard on a phone is still awesome, and I will certainly be buying a PinePhone+keyboard when it comes out. I live in forlorn hope for the day I can evict Android from my life entirely (the Micro PC does not, alas, make phone calls).
Yeah, the inherent fatness of fingers problem. And the lack of buttons on those fingers other-problem.
Looking at the resolutions, 1280x720 vs 1440x720, I would have just expected the phone experience not to feel terribly different. Of course it remains to be seen how much the PinePhone software adapts to landscape in wake of the keyboards coming.
Edit: I've been a fan of the netbook concept since well before the term was coined, when the Toshiba Portegé first came out. But my experiences with them, like everyone else, were disappointing. I'd love it if these new units had good performance.
- Memory management means that whatever application you're using at any given moment can vanish, with all its user state.
- Applications are crippled versions of full-desktop variants, where they exist at all. E.g., FennecFox vs. the Firefox browser. Support for user-empowering extensions is limited.
- You. Will. Not. Have. Root. Some devices are rootable. Many are not. This means that whole sections of the OS are not available to you.
- Information is siloed into applicationd databases (inaccessable on the device, since You. Will. Not. Have. Root. --- or worse, maintained on some distant cloud server.)
- The OS itself is not upgradable by you. Android device vendors often provide absolutely no post-purchase OS updates.
- Even power kits are very third-class citizens. Termux, The Only Android App That Does Not Precisely Suck[TM], is useful and powerful but its 1,400 packages are only a minuscule fraction of those available on a full Linux system (Debian contains over 60,000 packages), and are limited in functionality as You. Will. Not. Have. Root.
Numerous affordances and capabilities are simply missing or buggy as all hell.
Using an ebook reader, as an example, with an external keyboard, I cannot enter a space character into a search field as that scrolls the screen rather than editing the search dialogue. Just one of many, many, many cuts in a death by thousands.
Source: Have used Android for over a decade, tablets for over five years.
I've tried using an iPad but it's no match for the power, control and flexibility of a full desktop/laptop device, and the larger iPad has an even bigger screen than some smaller notebooks.
Of all the things that makes me prefer a proper computer, the shenanigans that devs do with various SDKs that are privacy invading pieces of shit have put me off of trusting any apps. Because of the all of the information that makes a mobile device so convenient to use is precisely the data that makes privacy invading data collection so desirable, it will be imposible to ever make it a serious compute platform for me.
For me, the mobile platform is primarily used as the Bar Bet Settler 5000(TM).
This is me. For years my employer offered to get me a phone, but I declined. Why would I want a mobile phone. I don’t want people to get ahold of me whenever they want. But, then that first iPhone came out that was actually a full-fledged computer with phone capabilities on the side. I immediately jumped on that.
Not sure it is relevant anymore for a non-trivial chunk of people - at least in mobile. Lately I have quite often needed to explain about a good web app accessible in browser but not in app store. And I am a bit bewildered. The amount of people pretty much unable to distinguish between browser, app store and url is... not too small. (And don't get me started about iphone users' understanding why their location services "do not work" in safari. I assume there is a difference in default permissions there between iphone and abdroid there)
On Android, websites can request location permissions, you can't access any of that stuff by default.
this is an "apples vs oranges" question
To pan/pinch/swipe you either need to implement it yourself or use a JS library like Hammer which adds unnecessary bloat.
2. Opera had gestures 15+ years ago and it was glorious for those that liked them
Also, desktop browsers have been around for over 30 years, and hence the click, double click, scroll, and basic key shortcut metaphors have as well.
Brands and vendors don't like the web because often they cannot 100% control what browsers do, and of course, a browser website cannot get access to the whole contact list, phone numbers and files on a phone device unlike a native app...
Installing an app via an appstore on mobile is low friction. Good luck getting someone to install your Windows or MacOS app on your desktop...
Even PWA that were all at rage a few years ago, called a replacement for native apps by the dev community, how many here have a single PWA installed on their desktop computer?
Agreed on the control- another thing to consider at least in this crowd is that Safari content filters (aka ad blockers) aren’t applied in apps.
This doesn't seem true at all. What popular "native" apps are you talking about? The most popular native apps couldn't exist on the web on the early days. YouTube couldn't work on the web due to the dependence on Flash. Instagram couldn't exist without camera access (and arguably fast image processing which JS couldn't do at the time). The technology to build some of the most downloaded apps like Words With Friends or Angry Birds could not be done on the web.
App permissions exist to do the same for native apps.
Because CSS +HTML + JS is 20x easier to learn than any mobile code language. Anyone in a few hours can create a website, that has never been the case for mobile apps.
You can even create a basic website by copy pasting some html template and modifying the content with notepad.
As a result - as long as Google doesn't decide to deprecate HTML and CSS because it doesn't suit their complex requirements - the web is assured that much more people will be able to create website than apps. When you look at Kotlin or Swift, HTML looks like a no-code language
This was the case for the first iteration of the iPhone, as well.
The truth is that the web didn't flourish on mobile because the two mobile operating systems giants knew that they could make a killing by keeping a stranglehold on the mobile app distribution market with their app store models. And they did so successfully for a decade, making tens of billions of dollars each year from said stranglehold.
Giving the web equal footing on their mobile operating systems like webOS did would put those billions of dollars of yearly revenue at risk.
A lot of people have forgot that YouTube were using FLV (video streaming using Flash) during a lot of time because there wasn't any better multiplatform viable alternative.
You are totally right. The web wasn't ready for new universal types of information exchanges and we needed to use 3rd parties to solve that, in form of a Flash plug-in or an installed app.
Mobile search ad clicks have been surpassing desktop search for a while now, If it was done solely through Google app and if iOS wasn't a thing then Google would have happily killed the web by this time.
I think instant apps is(was?) an attempt at it.
Remember how all the largest spying products like Instagram, Facebook, LinkedIn, Reddit, Twitter, etc aggressively push you to install their phone apps even though they are (or were) perfectly usable through their mobile websites.
For example on desktop the top 10% or so of the screen is taken up by the browsers UI and tabs which is normally fine. On a tablet in keyboard mode your left with ~40% of the screen being useable. Native applications sidestep this by not needing the browsers UI.
WebGPU and WebAssembly are getting close to matching the speed and capabilities of older hardware.
Tab UI is possible to hide, and has been for some time. You can "app-ify" a web site into a dedicated window with no browser UI.
ISTR apps that we doing this >10 years ago.
I think the real differences break down to economics. Can't charge an app store fee for web sites or force sites to use your advertising network.
That’s not a solution to the issue though. An independent application is managed by the OS, but websites are generally managed by the browser which has multiple tabs. Users don’t want every tab to be treated like it’s own app, which means websites need to play nice with the browsers UI even if the OS did give them full control.
Now, mobile OS have mechanisms to treat websites as native apps but your still stuck with web baggage. From a users perspective installing this website as a native app is simply worse than installing native app. Basically when you start improving the websites as app enough, such as gracefully handling network outages, you just end up with a native application.
From the other direction anything that would be fine as a website is already fine. You don’t get websites killing huge numbers of native apps because in that case there weren’t any native apps built to be killed.
The options for showing a numpad are also very limited. <input type="number"> exists, but it doesn't work for things that aren't numbers, like codes starting with 0.
Connection speeds in the original iPhone era were low, as was processing power. Spotify wouldn't have been able to provide you with the service it can provide over the web now.
The focus on the web was also a complete break from existing smartphones, where installing applications had been the norm for years. iPhones weren't exactly the first to feature apps, or even app stores, and delivering an iPhone experience that was as smooth as a Windows Mobile or Blackberry experience was going to be difficult without native code. At the same time, everyone already knew that upper and middle management (and all the other departments to convince when introducing new software) were going to buy iPhones because new, shiny Apple stuff often scores well as a status symbol.
At the time, it made complete sense to be mad. It's not that people didn't want to create websites, it's that websites were simply not equivalent to the real deal. A lot has changed since then.
Given the popularity of tools like Cordova and React Native, and the absolute dominance of Electron on desktop, I'd say he wasn't exactly wrong.
That would essentially have been Firefox OS, minus HTML5 that wasn't yet ready back then.
It's probably because the specificiation for native apps is always cooked up by a single company, whereas the web specificiation is always under scrutiny of multiple organizations.
Never attribute to purely good engineering and design that which is incentivized by profit.
What I don't get is why they put all the effort into maintaining a high-quality mobile site if they hate people using it this much. Just get rid of it and load the desktop version. Pop-ups saying "Reddit works better in the app" would be less off-putting if the alternative was an unoptimized desktop site, rather than a perfectly good mobile site whose only downside was said pop-ups.
for example, you open the comments of a post, it opens a faux-modal with a X button. You tap it, it closes the post but opens the subreddit. It doesn't go back to where you were.
Another example is how to collapse a thread on the comments you need to press the empty space beside the username?!?!
It's so slow and wrong that I've built my own front-end, but it's virtually impossible to load reddit videos correctly...
Twitter on mobile has become almost unusable (unable to see most content without making an account), though I've found a workaround: it's not totally broken in incognito windows, so I guess that's how I read it now.
My only gripe is the upvote, downvote, and " comments" buttons are a little too small compared to the other elements. Oh, and that new slide or multi picture UI sucks.
It loads quickly too. Quicker than the mobile versions, which is ironic.
I think this claim is unfounded.
On iOS though you can't do that stuff, and I would tend to think apps are more sandboxed than websites (no cookies, for one). I don't know for sure though; I'd love to hear more from someone who has more firsthand experience.
The web was always limited by JS access, processing power, network connectivity, and a very fragile identity graph that was routinely reset. That's why Safari's battle on privacy is routinely seen as a misguided effort by most of the adtech industry that knows that SDKs in mobile apps reveal a magnitude more data.
That's at least another reason why the web is not pervasive on mobile: Apple and Google are quite happy that it's not that way because they can monetize their platforms with far more control than through the browser.
The article references app stores pointing out that they reduced user friction in payments and subscriptions around apps. Of course, under the guise of user experience you can focus your development efforts on native tool chains and not invest in the mobile browser experience.
As for the question that the article raises, there are probably many co-occurring reasons, and a lot of comments make good points. However, one that I couldn't find listed is IMHO performance. I still find web apps (and web sites) to feel really sluggish and slow on everything that is not a top-tier phone. Again, many reasons for this (JavaScript bloat, tracking, intermittent connectivity, ...) but the user experience is just not the same.
I agree that there are likely different reasons that had an impact. Performance is a good addition and I think also the bad mobile connectivity in the earlier years of the smartphone area is another reason.
I wonder if you read the whole article, since the author specifically calls out performance as one of the factors.
aka "the substack style"
Another thing: on desktop, the burden of task switching is lower -- you click another tab while the page loads. It's literally just another instantly responsive click back when the thing loads. On mobile, it's a slightly slower, more involved process as you tap and hunt for icons.
Absolutely not. In fact, I expect more responsiveness from my desktop.
It's hilarious when you think about how ludicrously powerful these devices are compared to what we were using 15 years ago that wasn't that sluggish. And of course by hilarious I mean dreadful.
Tablets can provide the ergnomic benefits and the high-level interface for their tasks that a mouse and keyboard can, depending on context, add more complexity to. A lot of the times, you don't need all the power user features at once for your work in the course of creating some art form.
Tablets are lighter than laptops generally and are faster to boot up for when the spark of creativity hits.
Posture and ergnomics are definitely big wins for mobile as a whole, and lot of comments here are desktop power users speaking strictly of their workflows translating to a phone.
Any application I install on the desktop can potentially steal my data and ruin my life.
And no, big names like Spotify or Valve don’t offer complete protection either due to supply chain attacks.
The big difference is the "inviting" experience of installing apps on smartphones. Yes search the name and tap "install app".
Which, given the history of adware toolbars and registry bloat on Windows, is maybe warranted.
https://www.pcworld.com/article/149951/registry-cleaner.html
Where we've gone astray is that people don't treat "apps" the same way.
Disagreed. It's not just about files; once you run an untrusted binary on a desktop it will typically be able to capture your screen, keyboard input, etc. It doesn't need to be in a file for malicious software to be able to pick it up.
In contrast, mobile applications typically run within a sandbox where short of an OS/kernel exploit there is no way for the app to access anything else but its own data (besides a very limited subset like photos, etc that you still have to authorize explicitly).
> The basis of performance shifted from small binaries to smooth interaction.
> Log-in disappeared completely. The web’s de facto identity system is designed for a world of keyboards. Thumb-typing usernames and passwords is excruciating. But native app log-in is one-and-done.
> Discovery shifted from search to app store.
> Engagement shifted from links to icons.
> Business models expanded to IAP, subscriptions, and app purchase. Security shifted from sandbox to app review.
Connectivity, 2.5G and 3G were slow, bandwidth is capped, no internet at all somewhere.
And yes, what can you do on iOS if Apple forces their browser on all their customers?
But (Android) I still spend most of my time in a browser. Notable exceptions: WhatsApp, Telegram, K9, Maps, OSMAnd, Camera, Gallery, YouTube / NewPipe. Maybe 1 hour vs all the rest.
Why not use the web versions of WhatsApp, Maps, YouTube, Photos etc.?
Those companies made billions of dollars each year through their anticompetitive behavior.
If it is indeed skewed toward non-browser activities on the phone, that's got to mostly be due to hardware integration for things that don't exist or aren't used the same way on most desktops (camera, voice assistant, GPS) and better notification interfaces (messaging apps, which surely occupy a larger percentage of mobile users' time than desktop). Most of the stuff in the article seems way less relevant than those (e.g. "typing passwords is awkward on a phone"—OK, but I don't type them, they auto-fill, and Safari even generates them for me so many of my passwords I've never typed on any platform, so....)
Phones could add APIs for webapps to use those.
Also despite WebGL, or due to the way it was evolved during the last 10 years, game development for the Web is a failure, hence why everyone is having yet another go at streaming with graphics cards neither WebGL nor WebGPU will ever support.
Also nice touch forgetting about PalmOS, Symbian and Windows/PocketPC.
Phone apps seem to be modelled on webapps, typically the server is run by the app maker, installs are easy and updates are automatic. Additionally, phone apps automatically go on the home screen and have notifications, which means you’ll open them more often.
To install an app on mobile you go to a specific place, find it, peruse screenshots and reviews if you want to, hit one standardized button, and it's installed in seconds.
On desktop, you Google it. You hope the first link is the right one and not malware. You poke through a few pages until you find some sort of download button. Your OS asks you where you want to save it. You save it and then go find the file and open it. Then some kind of installer usually runs that may ask you further questions. It's probably going to dump some clutter in various places and will hopefully give you an icon that you can use to run it without searching for the install location.
For companies trying to ratchet-up conversions, this friction matters a whole lot
These days there's also the developer experience, but I think developer experience for desktop apps tanked because marketshare tanked, not the other way around
It's pretty hard to use traditional responsive web apps over such an abysmal network
Native apps can offer a layer of insulation with prepulled assets and more advanced network handling (you can change pages and even close a native app with outstanding requests and it's usually fine--it'll handle changes asynchronously when the network is available)
Web apps can be installed on the phone. Has been working on Android for a long time, and it won't need to reload anything. I don't see them being much less efficient than "native" Android apps, especially considering their average quality.
> desktop gets power plugged into a wall and is therefore less constrained
Unless it's a laptop.
Mobile APIs for apps are fairly modern.
The limited nature of Mobile experience + the more modern APIs and integrated build/deployment/storefronts make those a much easier choice than otherwise on mobile.
Desktop app frameworks are old and complicated, and there aren't very good options for apps in between 'web' and 'major installs'. Desktop UI generally require a lot more component types and layouts, and frankly there is no framework that has conquered that domain very well. Every single desktop UI framework falls quite short.
For a while, there were many iphone optimized mobile websites. E.g. Google reader had an iphone version. Typically these worked well on the S60 webkit browser as well and looked and functioned much nicer than the typical mobile websites optimized for the much crappier browsers that were common before that. Opera mini became a thing around the same time, which was an actual browser implemented in j2me that you could run on feature phones.
Performance was not really an issue with this. That was the problem: it worked a bit too well and you didn't need an iphone to use these websites.
Apple fixed it with a native SDK, an appstore, and a by now well established practice of systematically crippling the browser experience on IOS in subtle ways. For a long time you had weird memory restrictions, they never bothered with progressive web apps, and they have very strict policies in the app store that further ensure users and developers focus on building "native" experiences. It would be fairly easy to fix it. But of course there's a rule against third parties doing that too. Safari is the one and only browser that is allowed on the platform. Officially that's because it benefits the user but the obvious actual reason is that Apple does not want people removing obstacles that would allow for a better application experience inside browsers. Flash was banned for the same reasons before the iphone even launched. So were applets and the whole j2me ecosystem that existed at the time.
Google on the other hand shipped chrome on a far more open platform. But they make money from ads rather than hardware sales. Which is why the playstore exists and why anyone earning money with apps and ads prefers using native apps as well. The status quo is these two fairly locked down platforms and a few niche platforms that don't seem to move the needle much when it comes to what people build.
That might change in the next few years as the Apple/Google duopoly slowly heads for inevitable court cases which might introduce more application stores and platforms. When that happens, web first becomes a cheap strategy to target mobile because testing and building apps for each platform is already getting quite expensive with just two of them. Add wasm to the mix and what's native and browser based becomes kind of blurry in any case. Five years is about right in terms of timeline. But you can bet that Apple will drag their heels with all of this.
While Apple initially said that apps would be web apps they never really walked the walk. No html-css frameworks for optimizing sites for the iPhone. No frameworks for offline support.
And this was at a time when Apple and Google were good friends and Google were developing their Google Gears for offline support (you could use gmail offline with google gears back then)
Apps offered 4 things: a development environment, offline support, a monetization strategy and a cool factor.
Make it 5: they also supported things that are more than a glorified webpage.
I almost exclusively use the mobile browser and don’t like installing lots of apps. They’re intrusive, they always want to collect things like location data, drain the battery, take up space, and spam me with notifications. The app is often built to steal more of my attention by being faster and shinier…
For example, no matter how hobbled the Reddit web experience is, I don’t want their annoying app. I’d rather sandbox it to iPhone safari and protect my sanity.
When looking at news sites, HN, ... my way of using those is that i open interesting articles in background tabs and then go through them. With an app I constantly have to go back and forth between front page and article. Especially annoying with longer reads.
For example, navigation between screens. On iOS, you have a nav bar at the top of the screen, and when you navigate to a new screen it slides over the current one, animating in a back button back to the previous screen. All apps behave this way, and when you have an iPhone you don't even notice this - it is just the way you interact with all apps.
You would have to hand-build that on the web, or use some random library that probably uses CPU animations and looks and feels bad.
Compare that with the corresponding iOS app code:
self.navigationController?.pushViewController(vc, animated: true)
Then add on top of that other platform-specific things like location detection, push notifications, or camera interaction. The web got those, but years later. The native libraries are simply built for the native use case, and it's a huge competitive advantage.Of course everyone hated it because performance sucked and interactions weren't smooth and reliable.
In what way does that go against what I said? (it doesn't)
I would imagine something similar happened everywhere. All of a sudden there wasn't many web developer jobs and web developers had to take "regular" programming jobs. And when all you have is a hammer...
In the long run, of course the Web grew, but in that short period of time there was definitely a displacement of skills and the rise of "Web Applications". I'm not talking of public applications, but rather internal business applications.
1. graphic / gpu intensive apps 2. memory / cpu intensive apps 3. background process / push notif apps
Both point 1 and 2 can easily be games, which is why most of them are still in native apps. I think (cmiiw) webassembly is trying to tackle this.
Now the 3rd point is, IMO the strongest reason that makes browser-based apps cannot penetrate mobile native beside ux, performance and lacking functionality for web in mobile. People in their mobile simply cannot run browser all the time in background for process and push notif. It's far easier with native apps.
Because the desktop is not portable so your applications still need to move with you. Phones are with you wherever you are so interaction always happens on the same physical hardware.
The reason native apps disrupted web apps was because they were (all else equal) more performant, and had access to more of the device, and because companies drove users to using their apps because they could get more value out of them that way.
My take on it at the time was that native apps gave companies a way to reset their relationships with web users, and bring them into an environment where users had less control, and companies had more.
> Gmail, Google Docs
Outlook and the Office suite are common desktop apps, especially in certain industries.
> [Google] Maps
Most people probably use Maps on mobile. Most of my use of Maps outside mobile is definitely just in Google search results.
> Outlook
I use OWA but long-time Outlook users often still prefer the (extremely legacy) desktop app.
> YouTube, Facebook, Reddit
Some people primarily consume media on mobile devices. Especially if they have a dedicated work or gaming desktop.
I do use Youtube, Google Maps, Google Translate, Netflix and Amazon store. I do not think they make anywhere close to even 10% of what I use. I do not use Facebook, Reddit and LinkedIn. Well I do have accounts and I used those couple of times to find particular person but that's the extent.
On mobile, the only apps I use are offline GPS - OsmAnd and some that control my gizmos like drone. Other than that my phone works strictly as a phone and does not even have data plan.
in nature, if your carefully nurtured monoculture (don't call me Microsoft) failed, your field would normally grow a dozen types of weeds, not another monoculture. the different tech epochs feel more like the passing of the "torch" from one dominant entity to the next rather than any broad based competition for survival of the fittest. this structure has as much to do with the political / regulatory systems of those eras as any intrinsic aspects of digital technology.
but on the substance of the future of the "web" (=the future of non-owned computing) its rough outlines are already there and they are beautiful: it will break the confines of the "browser" (the OS becomes the browser), and break the confines of the http protocol. mobile will be just another form factor in "convergent computing", offering another UI into both self-sovereign data spaces and federated interaction platforms
mark my words, the era now on its final legs will be remembered with disdain as a stagnant cash-cow period that had no moral scruples and exploited any and all human behavioral failings to turn users into exploitable idiots.
Do you want a truly "great oxidation event"? That would be a headband activated by Alpha/Beta/whatever brain waves so you can wear your computer on your head and command it using your thoughts. That's gonna be a true device, that will disrupt both desktop and mobile altogether. Until then the next "wave" is gonna be IoT where you'd play Doom on your coffee maker. Nothing disruptive about IoT either, just another gizmo for us to play with.
Whereas home internet connections tend to be fairly reliable.
Anecdotally, I don't rely on web apps because the terrible network reliability that I have means that they are frustratingly slow and frequently outright break. Native mobile apps work just fine.
Besides, major draws for building web apps includes control of user data and keeping business logic behind an API.
So they develop everything on wifi, and it seems OK, and they make certain design choices. Then after they launch, performance is terrible when people try to use it on cell networks. By then it's too late to fix performance because they'd have to re-architect the whole thing.
The lesson they could take away from it -- the one that would be most accurate -- is, "We should have designed our mobile web client differently." But the subtlety is lost and the message everyone learns is more like, "Last time, when we did a mobile web client approach, it was a disaster. Let's never do that again. From now on, it's native apps."
And it's worse than just reliability. It's also performance.
TCP just does not work well over wireless networks. Its congestion control is designed to allow multiple TCP streams to coexist on a network that has steady bandwidth. It works fine if the network layer is basically stable and the problem is sharing it.
On mobile networks, the available bandwidth fluctuates wildly over a short time period. When the bandwidth drops, TCP backs off exponentially, and when the bandwidth returns, TCP does not ramp back up quickly enough. So it ends up sitting around doing almost nothing when there's bandwidth available.
So even when the network is working, native apps typically perform better because they lend themselves to separating network activity from user interaction. With the web, unless you do a single page web app, navigating to different screens and views of things tends to be a page load, which is just too slow too often.
Desktop hardware was more powerful and forgiving to unoptimized web apps or poorly performing web engines.
It’s still the case now, desktop or mobile.
Not to mention lack of accessibility features.
Mobile is best taken advantage of via native. It has a rock solid distribution system, which sort of doubles as a marketing platform? It's more portable. There's lots of system features exposed to native apps. Your app can be on always, collecting telemetry and pushing notifications. The net connection is not always great.
Desktop is best taken advantage of via the web. Portability is a pain for native desktop, and there's no unified distribution system. You don't need background apps to be on all the time, people spend more time with their phones anyway. There isn't as much unique hw/sw functionality. But you have the fastest net access.
However I'm relatively confident that the web is going to eat mobile regardless, starting with web technology and cross platform JS based frameworks gaining popularity, regulatory action against platforms, and when we're at the point where the web on mobile isn't disadvantaged any more it should be the clear preference.
God. Fucking. Damn. It. Just wait and publish the whole thing. There's no Netflix for the web. I don't want to subscribe, I just want the next episode when it comes available. Not the next 100 episodes. One of the great things about the current video systems (HBO, Apple TV, etc) is that these shows accumulate a few seasons before they catch fire. And then you can watch an episode. And then maybe another episode. Or not. You don't have to wait for next Thursday's episode of Friends.
Originally, Apple said that iPhone apps would be Javascript and web view based. Palm bet the farm on Javascript + webviews for WebOs. Apple changed course quickly, and WebOS just didn't get enough traction.
It was one of the few devices where web based technologies were first class citizens.
Applications and the entire UI were built in JavaScript and HTML.
iOS and Android were, and are not as able to express via web interactions. It was difficult to even compile web apps as mobile apps for the iOS web store.
The desktop didn’t belong to anyone and was reasonably open from an app perspective. So was the web.
Maybe webos or something like it will emerge in the future and let us see what tightly managed mobile environments we live with.
More memory requires more power and weight, but portability and features restrict battery size.
Non-native languages use garbage collection, which implies 6x memory or limited performance. It is possible to emulate manual memory management, but this does not seem a common practice.
Hence, if developers write apps the standard way using web technologies, they will perform poorly on mobile devices compared with native apps.
This is primarily about ios though. Android is a different world, since it seems apps primarily use the Java ecosystem.
Desktop as a platform is also more hostile to native apps: a lot of users don't have permissions to install native apps, and another slice of users is sufficiently clued about security that they don't want to. These probably make up >50% of your potential users. The same effects exist on mobile too, but in smaller portions.
- Because PWAs started working on iOS in 2018.
- Because native solutions are faster than JavaScript and HTML.
- Headstart for development tools.
Anyway, I just mean that "modern" mobile sites couldn't have taken over native apps on Android. Its web engine is just not performing well enough.
1. Switching apps on mobile is significantly less friction than switching browser tabs. (And it’s somewhat less friction for many people than switching apps on desktop.)
2. There’s significantly more investment in quality, mostly native, apps on mobile platforms.
Trying to do the same thing on mobile is a pain, so it's more convenient to use the mobile apps there.
The linking issue is important, but not present in the mobile alternative. And networking support via XmlHttpRequest is trash compared to native sockets.
And like others have said, often mobile apps are just thin containers around an embedded web app.
Facebook etc. apps are hugely popular, but the web is still very alive.
I still use tons of native apps on my laptop, and almost exclusively native apps only on my desktop.
And now we live in a world where the web is owned by Chromium and thus Google.
Unfortunately the gatekeepers don’t expose most phone functions to websites.
- Standard and easy installation process of Apps.
- Apps born with modern UI.
I use Web apps on mobile whenever I can.
No.
The App Store is like going to the dentist.
Nothing else than that is needed to explain it.
Preventing PWAs is detrimental to users and an abuse of their monopoly.
What do you mean by "machine code" though? To me, the most native you can get is a Java/C++ app that uses Android APIs directly. Anything lower is systems development, something not generally possible for normal developers.
I mean like C/C++ (which compiles to machine code) and not Java (which compiles to bytecode).
Same as the distinction the terminology made on desktop: https://stackoverflow.com/a/855774
Nowadays, my understanding is, if it's not loading a webpage off the internet, people call it "native". Doesn't matter what framework it uses to actually display things (even if it uses web technology).
Just like C# is one of the native ways to make Windows applications.
Please do everyone a favor and, at least for the sake of desktop development, don't misuse the terminology like that if you want people to understand what you're saying. The entire reason ".NET Native" was developed was that C# did not produce "native" applications. Saying C# produces native Windows applications is going to confuse the heck out of everybody.
.NET has always supported AOT via NGEN, although it only supports dynamic linking and was optimized for fast startup of applications.
Windows 8 introduced the Bartok compiler used by Singularity, where applications would be pre-AOT compiled in the Windows store minus linking, with on-device linking happening on installation.
Windows 10, improved the later scenario with the introduction of .NET Native, slightly based on the Midori experience.
The new Windows 11 store is still fully based on .NET Native, as it makes use of WinUI 2.6.
I didn't claim otherwise. But AOT != "native".
What makes something "native" is not merely the fact that you compile to machine code. It's one of the main features of native code but far from the only one. Again: there's a reason they came up with ".NET Native" and called it that despite the fact that NGen always did AOT. And there's a reason the Android NDK has an N, unlike its SDK. It actually means something beyond AOT.
You can go against the grain if you want and call them all native apps, telling people they're Wrong On The Internet, but you're just confusing people.
Curious to find out, how those people distinguish it from an MFC/ATL or an Win32 one.
But see for example https://stackoverflow.com/a/855774
If you still don't like the terminology though, I'm not going to keep arguing. I didn't coin the term. You should go ask Microsoft why they didn't call C# native when NGen was already there. I'm just saying that terminology is already established and you're confusing people by using it differently.
Which isn't what users talk about when arguing about native apps, they don't even know what a GC is.
Because I'm sure if you went and asked the vast majority of "users" what a "native app" is, you'd get a coherent answer instead of a blank stare.
Let's lay this matter to rest. You don't like the definition, I get it. It's fine.
Or are you going to argue that Visual Studio, SQL Server Management Studio, Microsoft Store, Microsoft Blend, Office AddIns, Power Automate Desktop aren't native?
I'm not sure how the discussion turned from "native" to "the way to go".
I get the feeling like you're jumping all over HN trying to reply to me at every comment you find because... you took "not native" as some kind of insult to tools you like/consider superior?
I am jumping because the distinctions you are making aren't the ones that users care about.
So each one can go on their merry lives with their own dictionary version.
So Java, Kotlin, C, C++ and Web.
For desktop browsers there are also no application launch icons.
Probably has most to do with the limits of the UX of a phone. Pulling up a browser and typing in a url, hitting autocomplete is done in 2 seconds. On mobile everything is so much more painful, a lot more desire for one click wonder buttons
Safari on iOS can do this, too. You can pin a website to your home screen, which is something that I have done for PWAs.
It could have easily gone another way where this was the "normal" behavior of the mobile ecosystem.
The iPhone however was designed for a networked world so it didn't have all the limitations of desktop OS.
The web wasn't designed for a mobile world so it had a lot of limitations: hard to do a good UX, passwords to type on a tiny keyboard, no offline mode (or so complex to use that no dev do), URL vs app icons...
The world works with power: Apple used their power to make strangle the entire idea of the web on mobile by putting a break on change. Why? Mobile web tech helps their competitors more than it helps them.
If Apple's own platform / APIs had had the same rate of change as they effectively forced on the mobile web, then they would be a decade behind Android.
This is exactly the same thing as Microsoft did in the 90s with productivity software. They had secret undocumented APIs which made Office a fantastic experience and non-office "meh".
See: US banking (in the EU I can transfer cash, instantly, for free to a friend's bank account and have been able to do so for a decade), Fossil fuel vs Climate change, most commercial standard bodies. It's everywhere.
This one actually seems like a fault of the US government dragging its feet on making advancements on a nationwide protocol for transferring money and staying stuck on ACH. So much so that, that the biggest banks had to get together and create their own system 10 years ago:
https://en.wikipedia.org/wiki/Zelle_(payment_service)
> Launched in April 2011, clearXchange was originally owned by Bank of America, JPMorgan Chase, and Wells Fargo.
Supposedly, the US government is finally rolling out a proper system in 2023:
https://www.federalreserve.gov/paymentsystems/fednow_about.h...
> Apple used their power to make strangle the entire idea of the web on mobile by putting a break on change.
but this seems to neglect the fact that 1. apple/jobs wanted web tech initially for apps
2. native app devs were beating down the doors for access to native, not web apisYet, most business still go native due to the development experience, like not having to turn <div> magically into beautiful dropdown combo boxes with multiple selections via an HTML/CSS/JS soup, that don't feel quite right with the native ones.
It’s hard to twist the web into something it isn’t. So much effort goes into making the web do what native apps already do instead of trying to complement all that towards a better experience.
* Why did the web disrupt desktop?
It's not even really worth addressing these, because they're all so weak. None of the actual reasons that web was successful are here. And the ones that are there are nonsense. For example, to suggest that security in the browser was a significant factor in the success of the web on the desktop is utterly detached from reality. Even if average people cared (which they didn't) then they'd be better off trusting software bought at the store than going into the wild west of the internet with the shambles that we called browser security back then.
* Why didn’t the web disrupt mobile?
- the web’s network advantage had evaporated
If anything this argues against the thesis that "make anaerobes do photosynthesis" is insufficient. How would apps become successful by merely matching the existing networked nature of the web? At best this item is filler that adds nothing.
- The iPhone was a completely new thing
Yes, this is actually a good point. New paradigms and new APIs for a new type of device. Makes sense.
- The basis of performance shifted from small binaries to smooth interaction
What? No. This is silly. There's no way that the web prioritizing download size had a significant impact here. And "smooth interaction" has absolutely nothing to do with binary size, so I have no idea why the author is associating them.
- Navigation shifted from keyboard to springboard
Kind of a repeat of the smartphone being a new device, but okay, good additional flavor.
- Log-in disappeared completely
I mean I guess. But if there's any difference, it's more a matter of shared devices not being so much of a thing with phones. Web is perfectly capable of "one-and-done" logins, and many sites do that. And you could easily have a longer session cookie on your mobile site based on the single-user-per-device assumption.
- Discovery shifted from search to app store
Decent point, but only by accident. "Lowering the friction of software install" is nothing, since web has zero friction in that regard. I don't think that typing-free discovery was really that huge of a deal either. But having a large ecosystem of app developers, with ratings and featured content, was enormously influential. This might have been possible with web technologies but obviously nobody did it well enough to gain critical mass.
- Engagement shifted from links to icons
You could have single-page applications on web, with shortcuts on your home screen, send notifications through the browser, etc. You can use icons instead of links on web. Behind the pile of buzzwords, this item is nothing. "Deep, branded experiences" really?
- Business models expanded to IAP, subscriptions, and app purchase.
Yeah I think this is a good point. Having a single payment processor in the play store / app store that knows your payment details did reduce friction.
- Security shifted from sandbox to app review
No, no, no. Not this again. People don't really care about security, and anyway again, app security was still dogshit by the time it had won on mobile, just like browser security was by the time it had won on the desktop. Apps requesting tons of permissions to spy on users were rampant for years and years, even with apps being reviewed by apple/google. And how does this item even constitute a competitive advantage? You can have a browser remember permission to access your location or camera or whatever. There's nothing here.
I feel like this article really dazzled with its introduction tying in business and evolution and setting up the framework for the problem, but then fell to absolute pieces when it came time for the author to actually know anything about technology. Even if there are some good points here, the missteps really undermine their credibility. The analysis of the success of web on desktop is especially lacking, but I don't feel like it's a great analysis on the web vs app section either...
All the author had to do to check this was type 'anaerobic photosynthesis' into any search engine. (Add 'banded iron formations' for some really interesting stuff).
So if you get something like that wrong, and it's the analogy at the heart of the argument, well... it does make one question the accuracy of the rest of it.
I'm going to agree that the reason is Apple.
The safari do not support the pointer events.
I don't agree with this paragraph. There are many ways to constrain what a native application can do on a PC and conversely there are many ways a malicious website could harm you using Javascript.
https://news.ycombinator.com/item?id=28489942
I made a post on HN but didn't get enough hits, so crossposting to relevant HN posts such as this.
https://semiosis.github.io/posts/the-imaginary-web-with-code...
- Visit any website you can imagine, even the ones that are not real!
- Edit and re-imagine as you go see alternative website realities – change the sentiment of the author!
- Peer into the future – read about GPT-5!
- Generate relevant URLs (often real, sometimes imaginary) from any text selection
- Read an article on anything from your favourite blogger.
- … This is the future of the web.
It's the same reason why software developers use paid enterprise subscription services instead of open source software. They were successfully brainwashed to believe that the open source software is difficult to operate or doesn't work as well as the enterprise software. Meanwhile enterprise service companies are collecting and monetizing data from all their apps... In addition to recurring revenue.
People are suggestible and easy to manipulate, that's why. If you flash some big stacks of cash in front of their faces, they'll believe anything you tell them. You don't even need to give them any cash, just show them you have it. People follow the money like sheep to a slaughterhouse.
A desktop app is just as capable of using the internet as a phone app. So that point does not make any sense to me.
The main reason apps are more popular on phones is first battery usage is gonna be better and the was especially important early on when phone processors were less capable.
2nd there has been a big push particularly from apple so they could capture those purchasing fees. Combine this with the fact they prevent the device users from side-loading unless they find an exploit to jailbreak their device the Apple's incentives are clear.
Combine this fact the apple when it comes to implementing standards for browser featuers drags their feet at times. Developers will just often deal with implementing a native app, also combine the fact because users can't side load your only stuck to one browser engine on the iPhone.
This bleeds over to android as it's kinda pushed the defacto method of getting apps on a phone being to use a store. Also google is not going to really try to change it either because they are also collecting fees. Although a developers options are certainly more free on that platform, but again to the users if you stray to far from what has become the defacto method getting users will be difficult.