Internet operating systems is a niche subject that I am fascinated with, and I put a list of them on my website. Im going to add OS.js to the list soon.
Here is the list if you want to check it out: https://www.whoisthisjoker.com/jokerlinks/virtualoperatingsy...
[edit] I guess hackernews doesn't support markdown. Edited it to be more readable
The open web is dying, and it's those messages that are killing it.
https://en.wikipedia.org/wiki/EyeOS
The initial release of OS.js was around 2015, over a decade later.
I can't imagine that big a difference is due to hardware differences. The M2 is fast, but Intel 12th gen isn't much slower just more power hungry.
That means it's a software issue. Which is sad considering how good the NT lineage of kernels was, they have been making a worse and worse OS around it. They have themselves to blame for dropping from nearly 100% desktop marketshare to around 60% now. Only time until they're going the AOL or Yahoo way...
To fix it, you should add a "cleaning cloth" app that the user can drag and drop onto the Tetris canvas that moves the pieces horizontally by 0.5 pixels.
Or even better, only move the pieces that intersected with the cleaning cloth. :)
If you did everything in canvas you’d just have to reimplement something like flexbox to center, align, stretch, and animate all your icons text, boxes, buttons, etc.
Why not just stay in HTML and use a layout engine that’s already implemented, and highly optimized for literally every platform.?
But maybe one day down the road I have been considering a total rewrite in WebAssembly in which the entire thing is a canvas. I feel this would be much more portable to other platforms and would have a better chance of escaping the browser one day.
The window and state management can be demoed on my personal site at https://prettydiff.com
Now, if the machine is only used to run such a desktop, then such an internet OS might run best on a chrome-book style device, with minimal storage for system data only, and locked down to run only the internet desktop. You could even store your entire config settings in the cloud, so when you log into the machine, it is automatically configured. So all you need to to acquire the hardware, and you are to use it immediately. No more mucking around with settings and installations and drivers and whatnot.
This setup is not good for every user in every situation, but in some scenarios it would be very useful.
On one hand, I think these things are cool. Why did they do this? Because they could.
On the other hand, I still wonder why they do it.
Maybe this one is better, but I’ve worked with a large enterprise web app that uses a similar approach and it’s horrible. Everything opens in a “window” and there is weird state being passed around windows (ie drag a item from list window to the form window to view details). Not fun on a desktop and zero chance of it working on a tablet or phone.
The backend is written in Go and can run locally or on a remote server; Go is just the only language I've used recently that has nice http frameworks and can be compiled to a statically linked binary, which means that running the program is as easy as downloading a single binary, and that a running instance of it can possibly upload itself via ssh on another linux machine the user wants to access.
For now the frontend is web-based, written in Preact, and talks with the backend via some JSON endpoints, although I'm planning to add websockets sooner or later, for instance for double binding text input values.
The motivation behind this project is to try and build an alternative to terminal with tmux+ssh for accessing multiple different linux machines at the same time, while being able to easily monitor and manage them.
The last release (or even git tag) is from July 2021.