I worked on microcontrollers, system software, desktop software, mobile apps, games and now I am a full stack web developer who mostly does backend and defers most of the front-end tasks to colleagues.
I don't like JS frameworks and it was far more enjoyable for me to use QT, Borland C++Builder, Windows Forms XCode and Android Studio than to use Angular and React and even Vue.
Aside from Web front-end to being a less enjoyable experience for me, the Web was designed for websites, not for apps. Web as an app platform means subpar experience for the users, too.
We tried with Flash and Java applets running in the browser. Those died and now we have the Javascript mess.
When, if ever, Wasm will have full access to browser DOM, maybe we can get rid of the Javascript mess. But then, again, why bother running a binary app in the browser when you can run it on the desktop or phone?
And even if web as an app platform is said to promote openness and impede gatekeeping it still has a terrible downside for the end user: it makes the user rent the software instead of owning it.
Piracy doesn't bring any money, and forever licenses don't scale to keep a steady income per month after the user base is settled, and everyone likes to get a steady income for their work.
We know with certainty that selling forever licenses scales because we have concrete examples of it happening with some of the largest software companies in history.
SaaS is only a recent trend, it’s not the only feasible way to make money with software.
I was there, leaving piracy aside, buying new versions were only when going from MS-DOS to Windows 3.x, to OS/2, to Window 95, to Atari, to Amiga, and so forth.
That market has plateaued, there are no exponential growth curves any longer, to keep everyone on their job, and the shareholders happy.
They're already almost all subscription-only. They break after a few OS releases unless they're updated (true for both iOS and Android). Local state is "hard to access"? Check. (though it's easier on Android, for now) They "alter the deal" all the time, and there's nothing you can do about it.
And native apps will always exist for any appropriate use cases, but tons of the "apps" people use on mobile are nothing but websites that you can't use adblock on (DNS excepted). Many don't have true local content, just caching.
Emulators for Web apps doesn't make sense, that is a browser.
For local-first web apps, which would be the easiest web apps to do this with, you have to fight the browser to do this, and I'm not sure how you would be able to dump out the state and code of a web app on Android Chrome and load it in Desktop Firefox. That and being able to update/modify the app locally permanently (and maybe even control updates) would I think make the equivalent of a web app emulator.
How about selling a new version with more features? That used to work in the past. Or sell a new software. That used to work, too.
After a tipping point no one is buying new versions in an amount that can keep the salaries of the building rent, employees salaries, company taxes and whatever else is required monthly in a continuous flow that can keep the company going, without starting to cut down business costs.
The only new feature most will care about is that the version they own doesn't run on the new OS.
It is exactly the same thing as people stuck in Java 8, Python 2, .NET Framework, C99, C++11,... it works for the purposes of their employeer, and the costs to upgrade doesn't justify the outcome, unless forced by external factors.
Subscriptions started exactly because that model doesn't scale.
Anyone that starts a business quickly discovers how "easy" these things are in practice.
Then again, when apps require subscriptions I avoid them, 100% of the time.
Easy, make the math how much packages you need to sell each month to keep your salary.
Then add up everything else a business depends on.
https://react.dev/learn/tutorial-tic-tac-toe
Where editing the code, immediately shows the GUI related changes on the neighbouring frame.
While what I see on https://leptos.dev/ is just screenshots, and there is nothing on that documentation you linked that provides the same interactive experience, one has to explicitly start a developer sandbox to host the whole machinery, and even requires a codebox account for editing.
For the developers it should be easy to learn, it should be stable without lots of changes, backward compatible with no breaking changes from version to version, have very good tooling, have very good package management, have a default way to accomplish things, have batteries included, be easy to debug and deploy.
For users it should be at least fast, responsive, have minimal to no latency, easy to interact with, easy on the eyes, have a coherent design language, be ergonomic, not be a memory or CPU hog.
You described modern HTML/CSS/JavaScript and the Web APIs. If only people started learning it in place of React.
Data storage concerns are orthogonal to app distribution method, as others have pointed out.
But I'm probably an outlier because I spend most of my time on websites, even on phone and tablet.
It would be nice to see this broken down by market segment. I don't see any banks in the list. I use my bank's app for certain reasons like depositing checks and Zelle.
Meanwhile our users are clamoring for app version of our web app, even though it's just a web wrapper. I guess some people just have a "there's an app for that" mentality.
example of Gen Z and alpha social media addict that used to use Tiktok,Snaps etc You cant deny that the use of web is dying and I still not mentioning Asia market where mobile is the first choice
Other entertainment (like video games) have to compete with that. But I’m not sure that websites have to compete with that if they have more practical purposes. What will people do when not watching TV?
The metric of “hours spent on entertainment” doesn’t seem like the right one to use. It doesn’t measure the value you get from an activity or how much you’re willing to spend on it.
For example, does a banking app need to try to compete with video games for hours spent on them? Something seems wrong with that comparison.
Yes it still does now but how many percent is that??
[1]: https://infrequently.org/2024/10/platforms-are-competitions/...
I personally think that the most responsible “father” is finance. The article states that there is more money with the web, but in my experience it’s far easier to lock down payments through apps. I agree that part of this is because native apps are better on mobile, but they are also much easier to work with and consume. It’s not easy to make payments function well on the web while in a native app it’s just a click with well powered api behind it. Serving both users and developers. Now, it probably could be easier on the web, but who would deliver it? The article calls out Apple and to some degree Google as guilty of not making browsers competitive with mobile apps, but why would they? If anything it’s in their best interest to keep the web shitty on mobile.
As opposed to what? Server side rendered pages with random jquery snippets sprinkled around for interactivity? I prefer the reactive model far more than manually trying to update the page myself.
Mainly Vercel after they took over React.
Compare them to HTMX that only has unpaid evangelists, each time it is brought up on HN, people compare it to React because of the strong base around React, creates a lens of how people see the world. Even though HTMX is a completely different framework with different intents.
- UI running in browsers?
- TCP/IP?
- HTTP(S)?
I personally think ReST APIs accessed over HTTP + TCP/IP have a lot of utility but I think we can do better on the UI front. Maybe we need an alternative to the web browser that can run a different (or variety of) languages other than Javascript, with a better presentation option than the DOM.
<quote>
As I see it, the web is the only generational software platform that has a reasonable shot at delivering a potent set of benefits to users:
- Fresh
- Frictionless
- Safe by default
- Portable and interoperable
- Gatekeeper-free (no prior restraint on publication)
- Standards-based, and therefore...
- User-mediated (extensions, browser settings, etc.)
- Open Source compatible
No other successful platform provides all of these today and others that could are too small to matter.
Platforms like Android and Flutter deliver subsets of these properties but capitulate to capture by the host OS agenda, allowing their developers to be taxed through app stores and proprietary API lock-in. Most treat user mediation like a bug to be fixed.
</quote>
The DOM seems critical to the user mediation goal, and user mediation is IMO a critical differentiator with other platforms.
E.g. the web would be way less cool if I couldn't have "reader mode".
What would be really needed is an open application format standard and a protocol to share it and maybe interact with it. And open source clients able to run those applications.
Maybe if we had HTML6 we wouldn’t be in this scenario. HTML5 was great but form building on the web (without JS) is a second-rate experience. And it’s even more miserable once JS is in the mix, but hey developers can provide a much better UX for end users than HTML and CSS alone could possibly provide.
Sorry Alex, but without JS the web would have died a decade ago as phones took over. It’s only JS that keeps us in the ring.
The web of semantic documents died years ago, it's an application platform now and that means JS. HTML is naught but a payload carrier.
I agree though it’s very odd that desktop web apps are serviceable, while they universally are horrible on mobile.
Specifically because they can't claim 30% of revenue from web apps.
It’s possible to deploy a PWA to Google Play so that it’s installed on Android just like a native Android app. If PWAs were as good as native apps, why would anybody build web + iOS + Android instead of just building web + iOS? Even if opening a PWA made an iPhone explode into flames, it would still be worth deploying the PWA to Google Play to eliminate Android development effort. But plenty of native Android apps are still being built every day. That’s not because of Apple. That’s because users prefer native.
I am a huge fan of the architecture of the WWW. I think it’s the most successful API and platform in history for a reason. But there are a lot of reasons why people genuinely prefer native apps, and it doesn’t just boil down to mean old Apple refusing to support things or users being brainwashed. People still choose native over web when Apple is not a factor at all. Every single native Android app is a testament to that. So when people also choose native over web on iOS, why should we think that this is down to Apple and not for the same reasons they choose native over web on Android?
It doesn’t help that the web platform veered off into web components either. When front-end developers were jumping on board React, Vue, Angular, etc., architecture astronauts working on the web platform spat out an unholy mess full of footguns. I prefer to work as close to the web platform as possible, so every so often I try again with web components before remembering how painful they are.
The people working on web components should take a long hard look at why front-end developers keep choosing frameworks that either eschew web components altogether or abstract them so far away the user doesn’t have to think about them. Telling quote from the Svelte 5 announcement last week:
> Equally, component composition is more awkward in Svelte 4 than it should be […] This is because in 2019 it seemed likely that web components would become the primary distribution mechanism for components, and we wanted to align with the platform. This was a mistake.
— https://svelte.dev/blog/svelte-5-is-alive
I really hope the web does better, but in order for it to do so we need to be more honest about its failings. If you are a front-end developer and you feel optimistic about the future of web development, I invite you to try writing something reasonably complex using web components instead of your normal framework.
This feels true, but it’s just one horn of the dilemma. The other is where websites wreck their own UX intentionally to herd users towards apps, presumably because pushing ads isn’t as lucrative as grabbing location data, contact lists, or whatever else can be legally exfiltrated and sold.
It’s weird to frame this problem as if it were all the fault of whatever trends in js development or browser development (even though I agree those trends often seem foolish and messy, at least to the outsider). The whole situation the author bemoans just looks like another symptom of surveillance capitalism, enshittification, etc, call it what you will. Even with a perfect web, users will still get pushed towards apps if apps are the best way to exploit the user. There’s no other calculus of platform aesthetics or excellence going on here
Not really. Web would still be there but for websites not web apps. The web was designed for hypertext, a medium that is just supposed to deliver information not build apps upon.
Does the Facebook app provide a worse experience on the phone than the web app? Is Gmail phone app worse than Gmail web app?