Let me answer your question with a question: How many things do you do with your phone that aren’t also able to be accomplished with a website already? I’d be willing to bet that the answer is in the single digits. And for most of those, that limitation is likely to be entirely arbitrary, instituted by a developer as an anti-consumer form of lock-in.
Delivering application-like experiences via the web allows users to make accessibility changes to that experience without the developer needing to support it explicitly. It also allows users to implement plugins that extend and improve their experience, by removing undesirable content or adding functionality that you haven’t provided. And because browsers are built on open standards, there’s no longer any device ecosystem lock-in; I should be able to access all of the websites I want to from any browser on any device. Users could even build their own bespoke applications, without the need to enable a developer mode on their phone or get a certification from a megacorp.
And because downloadable and cacheable progressive web apps are a thing, as well as local storage options for browsers, the experience for an end-user of a browser-only phone wouldn’t need to be any different in low-signal or high-latency situations.
The web is a mature and proven platform for delivering arbitrary code and data, plugins make the web more accessible and easier to use, and web standards make the world more open. It’s not a perfect platform, of course, but it’s the one we’ve got; I think making it the default rather than the fallback for the devices most people use more than any other would be a great boon for the world at large.
Let me answer your question with a question: How many things do you do with your phone that aren’t also able to be accomplished with a website already?
This is kinda begging the question imo. Phones are terrible anti-user devices, so I can’t do the things I’d like to do with it that I can’t also accomplish on a website. Wasn’t that kinda the problem that was initially stated in the OP?
Delivering application-like experiences via the web allows users to make accessibility changes to that experience without the developer needing to support it explicitly. It also allows users to implement plugins that extend and improve their experience, by removing undesirable content or adding functionality that you haven’t provided. And because browsers are built on open standards, there’s no longer any device ecosystem lock-in; I should be able to access all of the websites I want to from any browser on any device. Users could even build their own bespoke applications, without the need to enable a developer mode on their phone or get a certification from a megacorp.
Almost all of this would be equally possible if the phone wasn’t just a platform for a browser. I actually think a browser model limits a lot of what you say here, and browsers definitely have ecosystem lock-in problems: what Google says essentially goes these days. The browser isn’t the great liberator of phones imo.
I don’t hate browsers; a lot of what you said is true and great for users with respect to browsers. I do however think it’s a weird way to try to fix the phone ecosystem by replacing a restrictive sandbox with a restrictive sandbox that also ties you to a really terrible development ecosystem.
Phones are terrible anti-user devices, so I can’t do the things I’d like to do with it that I can’t also accomplish on a website. Wasn’t that kinda the problem that was initially stated in the OP?
Maybe I phrased it poorly. I meant, what things do you do on your phone that wouldn’t be possible on a website if you were on another platform?
Actually, I’ve been actively trying to use Firefox Mobile for everything I reasonably can on my phone, and it’s way more possible than you might think.
I actually think a browser model limits a lot of what you say here,
I think you misunderstand me here. I’m not asking for a browser model to increase the number of things that app developers can do, I want to increase the number of things that end-users can safely do, and running web apps in a browser are currently the easiest way to do that.
and browsers definitely have ecosystem lock-in problems: what Google says essentially goes these days. The browser isn’t the great liberator of phones imo.
That’s absolutely a huge problem, yes; but it’s a different one. And in the faintest praise possible, Google does at least maintain fairly solid web standards.
I do however think it’s a weird way to try to fix the phone ecosystem by replacing a restrictive sandbox with a restrictive sandbox that also ties you to a really terrible development ecosystem.
It would be a replacing a sandbox that’s restrictive for the user and developer with one that’s only restrictive for the developer. And I don’t think it’s a particularly terrible development ecosystem; in a lot of ways, the front-end dev ecosystem is the most mature ecosystem. We’re absolutely spoiled for choice in IDEs, in linting tools, in packages…I mean, I used to work in email development years ago. THAT is a terrible development ecosystem, let me tell you.
I meant, what things do you do on your phone that wouldn’t be possible on a website if you were on another platform?
This is still begging the question: your question contains the assertion that the current smart phone model must continue. If you only think about the things you currently do with it, then of course you can do a lot of the same things with a browser model: they’re both restrictive sandboxes in similar ways. Interestingly though, I can name a few things already that are currently easy on an Android phone but not in a browser, the most obvious being running any sort of network server. You can’t take advantage of Linux’s configfs and functionfs APIs on a device that is ironically the best device made to use them. I mean, browsers were never even designed to allow filesystem access so an API would need to be added for that even, something so trivial. There are an almost infinite number of things you can do with direct access to an OS compared to through browsers; browsers are required to treat every single thing they do on behalf of the server they’re talking to as malicious. That’s the whole threat model, and it’s completely correct, but I don’t want that threat model applied to my entire device.
I think we’re just thinking of different things. You seem to be thinking about how to remake the current smart phone experience, and that’s pretty easy to do with a browser model. I think the current smart phone experience is pretty bad and incredibly limiting, so I see a move to the browser model pretty much… no different. I wouldn’t be particularly excited. I never understood the Boot2Gecko excitement anyway.
I’d like to see a smart phone that is just a small computer that happens to also have phone functionality. Where you actually have an entire Linux system available to you, and you’re allowed unconfined root access. You simply can’t get that if you’re being sandboxed by anything. To be honest if Android just stopped all the insanity around full, meaningful root access and unmodifiable hardware roots of trust, I wouldn’t need anything else. I like the availability of the tightly controlled application sandboxes. I love the use of SELinux throughout.
With respect to the development ecosystem… we can agree to disagree I guess. I’d rather leave the industry than deal with modern web development, but that’s just my personal opinion.
Google does at least maintain fairly solid web standards
I have to strongly disagree with this though. Google wants to bring it’s attestation APIs to browsers. What a nightmare. They also try to move browser addon development in user hostile ways, like trying to kill ad blocking. I don’t trust Google to have the user’s best interest in mind for a single second.
Anyway, I asked where you’re coming from so thanks for sharing.
I think I’d rather my phone be a little “dumber” than my laptop or desktop, though. Or I want it to be powerful enough to be the brains of both, but that would make it expensive enough that I would worry about losing it. Making it just a browser gives it enough utility to be broadly useful, but also enough friction that I won’t get sucked into it.
Also, I think a low-cost, low-power, mass-market B2G-type phone (a la the Chromebook) is way more likely than a mass-market Linux phone. Maybe that’s just me being cynical, though.
As for Google, yeah. I agree that they don’t have the users’ best interest in mind. But there’s currently enough of a pull from mobile Safari that they’re willing to play by the rules for now. My understanding is that the Web Attestation API was basically dead in the water—though maybe that’s me being too optimistic, ha.
Anyway, I asked where you’re coming from so thanks for sharing.
As for KaiOS, I don’t think that’s really a good successor of Boot2Gecko; from what I’ve seen they went the app route, which kind of fundamentally violates the spirit of what B2G was supposed to be.
I don’t see why it’s inevitable at all. Browsers are incredibly useful and will always have their place, but they don’t have to be everything. Why would you say it’s inevitable? There are plenty of other OS agnostic frameworks on which to build programs, and not everything actually has to be OS agnostic imo. I don’t write anything with Windows in mind :)
If you write desktop software and don’t ship a Windows version, that’s like 90% of users you’re missing out on. Android vs iOS you lose half. Not everyone wants to learn C++ for qt and by the time you get to things like Flutter, might as well use Tauri and some lightweight js framework.
Not an issue if you only do FOSS, but commercial software is always about lowest possible cost to build
Sure, but imagine a world where you could run a JVM (just as an example please don’t focus on that lol) on your phone (and yes I know Android is JVM-esque, but you aren’t just running JVM code on there willy nilly due to the way it’s designed). There is no longer an Android vs iOS in that case with respect to JVM and even desktop or laptop applications. Of course there would need to be work done on the development side to deal with screen size and all that fun stuff, but these are all solvable problems and things you already have to deal with. QT has very easy to use Python bindings if you want an easy entry to that so that’s no big deal. I don’t write a lot of GUI code so I don’t know the landscape that well, but I’ve had success with PyQt6 and Kotlin + JavaFX.
Anyway that’s all kinda besides the point. We know how to build VMs; we’ve done it plenty of times. There is nothing magic about JavaScript; it’s just a VM. Are browsers incredibly complex and well designed programs? Yes, but they’re not special and their role as the backbone of everything doesn’t seem inevitable or wise to me.
Boot2Gecko is a thing: it’s called KaiOS. It targets lower tech devices though and is just as locked down as Android, potentially even more actually.
I’m interested: why do you want it? I’m not a big fan of the idea of web development being the standard
Let me answer your question with a question: How many things do you do with your phone that aren’t also able to be accomplished with a website already? I’d be willing to bet that the answer is in the single digits. And for most of those, that limitation is likely to be entirely arbitrary, instituted by a developer as an anti-consumer form of lock-in.
Delivering application-like experiences via the web allows users to make accessibility changes to that experience without the developer needing to support it explicitly. It also allows users to implement plugins that extend and improve their experience, by removing undesirable content or adding functionality that you haven’t provided. And because browsers are built on open standards, there’s no longer any device ecosystem lock-in; I should be able to access all of the websites I want to from any browser on any device. Users could even build their own bespoke applications, without the need to enable a developer mode on their phone or get a certification from a megacorp.
And because downloadable and cacheable progressive web apps are a thing, as well as local storage options for browsers, the experience for an end-user of a browser-only phone wouldn’t need to be any different in low-signal or high-latency situations.
The web is a mature and proven platform for delivering arbitrary code and data, plugins make the web more accessible and easier to use, and web standards make the world more open. It’s not a perfect platform, of course, but it’s the one we’ve got; I think making it the default rather than the fallback for the devices most people use more than any other would be a great boon for the world at large.
This is kinda begging the question imo. Phones are terrible anti-user devices, so I can’t do the things I’d like to do with it that I can’t also accomplish on a website. Wasn’t that kinda the problem that was initially stated in the OP?
Almost all of this would be equally possible if the phone wasn’t just a platform for a browser. I actually think a browser model limits a lot of what you say here, and browsers definitely have ecosystem lock-in problems: what Google says essentially goes these days. The browser isn’t the great liberator of phones imo.
I don’t hate browsers; a lot of what you said is true and great for users with respect to browsers. I do however think it’s a weird way to try to fix the phone ecosystem by replacing a restrictive sandbox with a restrictive sandbox that also ties you to a really terrible development ecosystem.
Maybe I phrased it poorly. I meant, what things do you do on your phone that wouldn’t be possible on a website if you were on another platform?
Actually, I’ve been actively trying to use Firefox Mobile for everything I reasonably can on my phone, and it’s way more possible than you might think.
I think you misunderstand me here. I’m not asking for a browser model to increase the number of things that app developers can do, I want to increase the number of things that end-users can safely do, and running web apps in a browser are currently the easiest way to do that.
That’s absolutely a huge problem, yes; but it’s a different one. And in the faintest praise possible, Google does at least maintain fairly solid web standards.
It would be a replacing a sandbox that’s restrictive for the user and developer with one that’s only restrictive for the developer. And I don’t think it’s a particularly terrible development ecosystem; in a lot of ways, the front-end dev ecosystem is the most mature ecosystem. We’re absolutely spoiled for choice in IDEs, in linting tools, in packages…I mean, I used to work in email development years ago. THAT is a terrible development ecosystem, let me tell you.
This is still begging the question: your question contains the assertion that the current smart phone model must continue. If you only think about the things you currently do with it, then of course you can do a lot of the same things with a browser model: they’re both restrictive sandboxes in similar ways. Interestingly though, I can name a few things already that are currently easy on an Android phone but not in a browser, the most obvious being running any sort of network server. You can’t take advantage of Linux’s configfs and functionfs APIs on a device that is ironically the best device made to use them. I mean, browsers were never even designed to allow filesystem access so an API would need to be added for that even, something so trivial. There are an almost infinite number of things you can do with direct access to an OS compared to through browsers; browsers are required to treat every single thing they do on behalf of the server they’re talking to as malicious. That’s the whole threat model, and it’s completely correct, but I don’t want that threat model applied to my entire device.
I think we’re just thinking of different things. You seem to be thinking about how to remake the current smart phone experience, and that’s pretty easy to do with a browser model. I think the current smart phone experience is pretty bad and incredibly limiting, so I see a move to the browser model pretty much… no different. I wouldn’t be particularly excited. I never understood the Boot2Gecko excitement anyway.
I’d like to see a smart phone that is just a small computer that happens to also have phone functionality. Where you actually have an entire Linux system available to you, and you’re allowed unconfined root access. You simply can’t get that if you’re being sandboxed by anything. To be honest if Android just stopped all the insanity around full, meaningful root access and unmodifiable hardware roots of trust, I wouldn’t need anything else. I like the availability of the tightly controlled application sandboxes. I love the use of SELinux throughout.
With respect to the development ecosystem… we can agree to disagree I guess. I’d rather leave the industry than deal with modern web development, but that’s just my personal opinion.
I have to strongly disagree with this though. Google wants to bring it’s attestation APIs to browsers. What a nightmare. They also try to move browser addon development in user hostile ways, like trying to kill ad blocking. I don’t trust Google to have the user’s best interest in mind for a single second.
Anyway, I asked where you’re coming from so thanks for sharing.
I think I’d rather my phone be a little “dumber” than my laptop or desktop, though. Or I want it to be powerful enough to be the brains of both, but that would make it expensive enough that I would worry about losing it. Making it just a browser gives it enough utility to be broadly useful, but also enough friction that I won’t get sucked into it.
Also, I think a low-cost, low-power, mass-market B2G-type phone (a la the Chromebook) is way more likely than a mass-market Linux phone. Maybe that’s just me being cynical, though.
As for Google, yeah. I agree that they don’t have the users’ best interest in mind. But there’s currently enough of a pull from mobile Safari that they’re willing to play by the rules for now. My understanding is that the Web Attestation API was basically dead in the water—though maybe that’s me being too optimistic, ha.
Same to you! Good conversation. I appreciate it.
As for KaiOS, I don’t think that’s really a good successor of Boot2Gecko; from what I’ve seen they went the app route, which kind of fundamentally violates the spirit of what B2G was supposed to be.
I’m not sure what the original vision was, but KaiOS is just a fork of Boot2Gecko.
In fairness I’ve not tried it, but their homepage has been all about apps for a while.
I, too, hate web dev being the standard. It’s inevitable though. Mostly OS agnostic, easy to learn, etc.
I don’t see why it’s inevitable at all. Browsers are incredibly useful and will always have their place, but they don’t have to be everything. Why would you say it’s inevitable? There are plenty of other OS agnostic frameworks on which to build programs, and not everything actually has to be OS agnostic imo. I don’t write anything with Windows in mind :)
If you write desktop software and don’t ship a Windows version, that’s like 90% of users you’re missing out on. Android vs iOS you lose half. Not everyone wants to learn C++ for qt and by the time you get to things like Flutter, might as well use Tauri and some lightweight js framework.
Not an issue if you only do FOSS, but commercial software is always about lowest possible cost to build
Sure, but imagine a world where you could run a JVM (just as an example please don’t focus on that lol) on your phone (and yes I know Android is JVM-esque, but you aren’t just running JVM code on there willy nilly due to the way it’s designed). There is no longer an Android vs iOS in that case with respect to JVM and even desktop or laptop applications. Of course there would need to be work done on the development side to deal with screen size and all that fun stuff, but these are all solvable problems and things you already have to deal with. QT has very easy to use Python bindings if you want an easy entry to that so that’s no big deal. I don’t write a lot of GUI code so I don’t know the landscape that well, but I’ve had success with PyQt6 and Kotlin + JavaFX.
Anyway that’s all kinda besides the point. We know how to build VMs; we’ve done it plenty of times. There is nothing magic about JavaScript; it’s just a VM. Are browsers incredibly complex and well designed programs? Yes, but they’re not special and their role as the backbone of everything doesn’t seem inevitable or wise to me.