3 ms·
The trend in applications is to move towards Web like apps delivered over platforms like Electron. The question I have is, should OS GUI's be 100% web based, on
by bluejekyll 10y ago
The trend in applications is to move towards Web like apps delivered over platforms like Electron. The question I have is, should OS GUI's be 100% web based, only providing the building blocks for running browser windows in effect.
I think this is basically ChromeOS, right? Using things like the HTML DOM and CSS for design, and then some supporting application code. One negative for me in a world like this is the limitation of using JavaScript for development, but webassembly is going to change this, we'll be able to use pretty much any language inside the browser soon.
There are a lot of advantages to this model. It would be a unified Web and OS experience. And the other thing would be a built in sandbox. Combine this with Docker, and you can deliver nicely packaged applications with all their resources. I've been thinking this would be an awesome direction for Redox and have thought of getting involved there.
Anyway, I'd love to hear about a people's experiences with ChromeOS, as I think that's the closest thing to this concept right now.
Edit: I think people are misunderstanding my question. What I'm suggesting is that Web technologies should be used to render the desktop. It should function 100% offline (not require a network connection to run). This would unify UI development across the web and the desktop, with WebAssembly being the application build target.
- JohnStrange 10y ago> The question I have is, should OS GUI's be 100% web based, only providing the building blocks for running browser windows in effect. If you ask me: No. They should be 0% web based. Browsers are the worst platform for GUIs that has ever been devised. You will probably even get better OS integration if you write your GUI in Squeak or Oberon. Quick checklist for high quality GUI applications: [ ] Does your application allow arbitrary shortcut keys with and without command keys that are user definable? [ ] Does your application use the correct OS-provided system paths for user documents, preferences, temporary files, etc.? [ ] Does your application have the look and feel of other applications on the OS and does adhere to the OS developers user interface guidelines? [ ] Does your application work exactly the same on every platform, except for platform differences like command keys and menu positions that are expected and desirable? [ ] Does your application provide instant user feedback when the user operates controls, click with the mouse, etc.? [ ] Does your application allow drag & drop to and from the desktop on OSs that support it? [ ] Does your application work offline as well as online and allow the user to export and backup all data stored by the application to arbitrary locations? [ ] Does your application work gracefully with nonstandard or slightly outdated filesystems? [ ] Does your application respect file permissions and other access control features of all platforms? [ ] Does your application use controls that are appropriate for the data and do these work seamlessly with huge amounts of data such as lists of millions of entries? [ ] Does your application keep confidential user data local or does it protect this data with strong encryption and user-supplied keys if it stores data online? [ ] Does your application have unlimited undo? [ ] Does your application estimate the time of long operations correctly and always displays a time estimate and progress without blocking the GUI when an operation takes longer than a few seconds? [ ] Does your application highlight user selections and allow copy & paste to other applications running on the user's machine? [ ] Does your application use the standard system fonts or does it have a good justification for not using them? [ ] Does your application otherwise integrate well into the OS environment (e.g. desktop), for example by updating a tray icon, providing OS level notifications, linking up with OS level backup and indexing services? If the answer is NO to any of these questions, then your application sucks. I might have forgotten some, tough.
- analognoise 10y agoI too am against this horrible "browser based" crap - what a remarkably dumb step backwards.
- nickpsecurity 10y agoThat's a great list. Im keeping it. Yeah, my 2000-era desktop apps were cross-platform, booted instantly, ran fast on 200MHz, used little of 64MB of RAM, and customized could run stuff like Half-Life. Some of these web sites are barely responsive or performant while using up enough CPU to turn on the fan of my Core Duo 2.
- nickpsecurity 10y agoRe edit. Microsoft was an early promoter of that when they moved Help files to IE then embedded it in all kinds of things. Those proceeded to run slow as hell with lots of stuff getting hacked due to browser. It's important to remember that browsers were specifically designed to render a language for sharing and linking documents. Then they were extended to style and script them using languages with their own built-in assumptions and needs. That was then extended to do stateful, dynamic applications over a stack and protocol designed for stateless, static documents. The result is that it will never be as flexible or effecient as a low-level graphics stack. It will often be less efficient or secure than a built-in GUI with simple elements. Just look at uTorrent app for example of efficiencies one can gain. Can't happen with the browser because you still get the bloat that comes with the browser.