8 ms·
As others are pointing out here: the cross-platform value-add of browser based apps is the GUI layer, not the code runtime. We've had the JVM for decades, and i
by brundolf 6y ago
As others are pointing out here: the cross-platform value-add of browser based apps is the GUI layer, not the code runtime. We've had the JVM for decades, and it even has a GUI layer, it's just a much less powerful GUI layer than today's web.
People have been trying to create a simple, native, platform-agnostic GUI layer for as long as GUIs have existed. Nothing but the web has ever come close to succeeding. It may be a flawed solution, but it's what we have, and it works, and I wouldn't hold my breath for a greenfield alternative supplanting it any time soon.
- josephg 6y agoThe other big thing the web provides a standard way to do distribution. Unlike JVM apps, I don’t need to install Gmail to use it on my computer.
- anderspitman 6y agoThe web is a great way to distribute native programs. Click a URL to download, then run.
- charrondev 6y agoI think you missed a step: - click a URL to download an installer. - run the installer that has access to large portions of your system (or if it’s an older windows program probably needs to be run as an administrator so it can add an auto updated or some nonsense like that). - run your program.
- anderspitman 6y agoThat's unnecessary. I ship my apps as single-file executables that are ready to go. In the worst case you can use a directory like zoom does (on Linux at least) which contains all the libraries and dependencies you need.
- josephg 6y agoThats still way more awkward than what the web provides. - I don't need to uninstall / delete a website when I'm done with it - I don't need to pick an executable format. (Portable or installed? windows mac or linux? dpkg or rpm? From the dev's website or through homebrew/apt? Is a portable executable even available for this application?) - I don't need to give the author of the webpage access to all my local files. Native programs are also often 10x+ as large as websites. (Eg the facebook iOS app is somehow 488mb) These problems are all solvable. Wasm alone will go a long way to solving the sandboxing and app format problems. But we still need to build the platform, whatever it is.
- kaba0 6y agoThe facebook website managed to eat 1GB of ram alone multiple times.
- josephg 6y agoRight! And despite that, it loads in seconds. Traction would be very different if people had to install facebook on their computers to try it out! "Oh yeah its this cool social network.. just download - no, not the portable executable version... yeah, its 300 megs... Then you need to click it to install it"
- pjmlp 6y agoSeconds? It can be minutes depending on where one is located on the globe. Not everyone is luckily at home using broadband connections with flat rate.
- josephg 6y agoSure; but people without a broadband connection will have even more trouble with an installed application. They're pretty consistently bigger.
- KronisLV 6y agoI think this is mostly a problem with how the modern operating systems work. Your point is still definitely valid for the real world consequences of this, but i think that theoretically things could be way more simpler. 1.) Click "download" to get a piece of software you need (a static executable) 2.) Put said piece of software in a folder called "/apps/$APP_NAME" 3.) Run said software and have it persist all of its data to "/apps/$APP_NAME/data" or some other convention like that. Perhaps that'd need to be enforced with sandboxing and limiting access to directories, which would then make sharing data across them more difficult, which would end up with something like "/data/$APP_NAME", which brings us back to the horror of Windows' "AppData" and "Documents" and "Program Data", or other folders like that, resulting in what can only be described as an Eldritch nightmare, in which you don't have any idea in which of the 20-30 different folders which particular stores its data... But theorethically things could be simpler, i've heard people mention how easy installing apps used to be on Apple devices back in the day. And recently, after running the Godot game engine ( https://godotengine.org/ https://godotengine.org/ ), which is literally a single executable, i'm inclined to agree somewhat.
- josephg 6y agoYeah this is my point too! Modern operating systems are made out of code, and I know it sounds weird but we can change them! Ideally I'd like applications to work the same way websites do. I want to be able to open an application directly from its URL, and it should download and run a contained wasm pack file in a sandbox. The app should then be cached locally - maybe with some ability to pin it to my start menu (and pin the cache entry). The app should be given some access to a rendering context (with fonts, sound, etc) and some limited storage. And not much else by default - though the user should be able to bless the application to access other files on the filesystem. There's a huge laundry list of APIs the apps will need eventually - and thats going to be a lot of work and I have no idea who'd fund something like that. But it'd be fantastic if we could pull it off.
- tasogare 6y agoBiaised reasoning: a JVM app requires the JVM and and a web app requires a browser. None of those app are executable y themselves. The only difference is that one of those runtimes is shipped in most OSes (the browser) while the other is not.
- pjmlp 6y agoExcept the little detail that people keep forgetting, Java also has toolchains that compile to native code for about two decades now.
- anderspitman 6y agoSorry, but I think there's some stockholm going on here. People use the web for apps because people use the web for apps. It was in the right place at the right time and an extinction event chose JavaScript. That doesn't mean we can't make something better (doesn't mean we can, either).
- brundolf 6y agoIf you're trying to build out an arbitrary UI, there is no GUI layer today that's more flexible than the web (in terms of screen sizes, customizability, layout styles, look and feel). Maybe you could argue that this flexibility arose because of the popularity it gained by being in the right place at the right time, but at this point the network-effect is not the only reason we use it. It has genuinely become a more powerful platform than the alternatives. I'm not saying we couldn't do better - the CSS API has a lot of warts and the DOM has performance issues if you don't know how to avoid them - but I am saying we had decades to do better and didn't, so there must be something very difficult about doing better and we shouldn't discount the only thing that's ever really succeeded.
- pjmlp 6y agoHoudini is still barely capable comparable with native drawing. Layout managers were already a thing in Motif. Where is the great web tooling capable to beat Delphi/VB workflows?
- nicoburns 6y agoCanvas isn't far off. The web is excellent for the types of UI that people often want to build for application: nestings of boxes interspersed with text.
- tasogare 6y agoSo excellent it didn’t have a grid layout until 2018, flexbox landed 2016 and before that there was heated debate for years between table and div to properly align things.