
os.js: JavaScript Cloud/Web Desktop Platform - eridal
http://os.js.org/
======
mkawia
The whole thing is 194KB ,a normal TODOmvc demo of your favourite Js framework
goes above 250KB . Really Impressive stuff.

really motivates to build slimmer web apps

~~~
digitalsurgeon
amazing that its 194kb and you think this is very small. what world are ver
living in that web development has made us so sloppy and inefficient, when
MB's of script downloads are considered slim.

~~~
FatalBaboon
Yes, because in 2015 194kb is so incredibly much.

Maybe the carriers' are sloppy and inefficient. See, whatever I do, when I
access anything web-based on my mobile phone, it is slow. And I live in Paris.

It's funny how suposedly the 3G/4G stuff should be fast but in reality it is
not, I believe that is mostly because in large areas the access points are
overcrowded.

In other words, the technology used to access internet is saturated, and
developpers should be blamed for having websites >200kb heavy!

Who's crazy now?

~~~
moron4hire
I don't disagree that the main culprit is the carriers, but access points
would not be so saturated if websites were smaller.

------
tlrobinson
There was a similar early YC company called YouOS (they "finally" shut down
about 7 years ago:
[https://news.ycombinator.com/item?id=260267](https://news.ycombinator.com/item?id=260267))

------
tga
An example for the "why" question -- the "web desktop with apps" style seems
to work for NAS control panels (namely QNAP and Synology). As far as I know,
they are using Sencha ExtJS for the UI -- which, although pretty complete and
mature, doesn't get a lot of developer love.

[https://www.google.com/search?tbm=isch&q=qnap+control+panel](https://www.google.com/search?tbm=isch&q=qnap+control+panel)

[https://www.google.com/search?tbm=isch&q=synology+control+pa...](https://www.google.com/search?tbm=isch&q=synology+control+panel)

Here is a QNAP demo, if you search around you may also find a Synology one
that works. [http://www.qnapworks.com/live-
demos.asp](http://www.qnapworks.com/live-demos.asp)

~~~
stephenr
It's not really clear to me what functional, or even user experience benefit
there is from having "draggable windows" in something like that?

~~~
tga
I couldn't say really, can't say I'm a big fan, but it's relevant that
multiple big companies are using this kind of interface. I would hope they
have some reasons beyond UI flashiness and copying their competitors.

Whatever the reasons, when a customer says "build me one of those" it's useful
to have a good library to call upon.

------
gedrap
While it looks like a nice exercise in front end JS, and looks cool, does it
solve any problems? Do users actually need some more abstraction layers on top
of Google Drive / Dropbx, etc? Either I am getting too sleepy, or they didn't
provide any actual use cases in the homepage.

It provides some sort of API ("simple, modilarized and flexible JavaScript
APIs so you can easily make changes, extend functionality and create
applications") but is it just a new look for single page applications?

I am not trying to be cynical or anything, just curious :)

~~~
batmansmk
A few use cases:

1/ Make a modular backoffice for CMS based website. Make an app to manage
users, an app to manage content, an app to upload and manage gallery of media
etc.

2/ Make a distributed OS. All services can scale and use backend power beyond
what a single node can provide. If you need to burst in the cloud due to a
heavy process for instance.

3/ Could use it to provide a separation between the OS and the GUI, providing
a UX I may like even if the backend server has to be Windows or Centos or ...
Or remotely operating a part of my machine at home?

4/ What about reducing the cost of HW it needs to run? Chromebook style.

5/ What about being less tied in my Web App to Google Drive API + friends by
adding a abstract VFS layer in between like a OS does? Same for texting,
emailing? Sure it only uses part of this and don't need the client, but the
architecture is well splited on this project between the two.

6/ It is multi-user as its core, so it can be shared across an organization
and not only on one computer. You could even create one account per
project/team and share a set of common tools / organization / folders that way
across online services.

With the rise of web apps, it seems interesting to investigate the possibility
of a web OS to administrate and make those ones collaborate more nicely. Or at
least the possibility of separating the UX and the execution on two different
nodes for general purpose systems as well.

~~~
witty_username
> 4/ What about reducing the cost of HW it needs to run? Chromebook style.

How so? At least for me the window moving is slightly laggy and is probably
going to worse on low-end systems.

~~~
robgibbons
It's quite snappy on my own Samsung Chromebook. However, I did grasp the irony
of running a web OS inside of another web OS.

------
naoru
And there's this thing: [http://www.windows93.net/](http://www.windows93.net/)

~~~
haylem
Most evil-feeling OS experience ever. Impressive, if only for that.

------
narrator
Too bad browser JS is single-threaded. If you switch windows the background
application stops. Kind of limits its ability as a desktop replacement no
matter how much effort they put into it.

~~~
Lerc
What is the reason for requiring the single thread of execution in JavaScript?
Trading race conditions for callback hell?

Even the concurrency provided by web workers, suffer from the same issues, you
communicate with them via messages and they will not respond to messages if
they are looping away somewhere else.

I'd love to have some simple pre-emption in JavaScript. Suspend code execution
at one point and pick it up at another. Instead of having threads, have the
fundamentals that allow threads. Has this been discussed and rejected by the
JavaScript community?

I'd really like to know what the deal is here

~~~
desdiv
The single thread limitation is caused by the global interpreter lock[0]
that's common to most interpreted languages. Along with JS, it also appears in
CPython and Ruby MRI, the reference implementation of Python and Ruby
respectively.

[0]
[https://en.wikipedia.org/wiki/Global_interpreter_lock](https://en.wikipedia.org/wiki/Global_interpreter_lock)

~~~
tlrobinson
That's not the reason.

As I understand it, the GIL is an implementation detail of certain
interpreters that prevents threads from running on multiple OS threads (and
thus multiple CPUs).

JavaScript has explicitly chosen not to support preemptive multithreading at
all (aside from Web Workers which don't share memory), while Ruby and Python
do have it, even if it can't fully utilize multicore processors.

------
andersevenrud
Nice to see my project on hackernews :D

Thanks for checking it out guys. It-s something I enjoy working on in my
spare-time

~~~
jdc0589
It's been a while since I've checked up on the project. How's everything
going? Have you gotten any adoption? Did the backend stuff ever get completely
ported over to node from PHP?

~~~
andersevenrud
Yes, there is a company that will make use of OS.js in a commercial product.
More news about that will surface this year, so stay tuned! :)

And the Node backend is pretty much identical to the PHP one now... and PHP
will probably be deprecated in the near future (at least from the main
repository)

------
eng_monkey
Very nice, although it must have been a lot of work for uncertain benefits.

It also reminds to what eyeOS ([http://eyeos.com](http://eyeos.com)) were
doing a few years ago.

------
TazeTSchnitzel
Reminds me of the now-defunct g.ho.st (an early cloud desktop of sorts), and
michaelv.org (JS recreation of Windows 3.1 UI).

Incidentally, I've been wanting to recreate Windows 95's interface for ages
now. I should get back to that.

------
BinaryIdiot
Looks cool! Certainly fits the "why not" category of why it exists though I
can't figure out a way to make it useable; without a proper window manager
(which can't be done inside of a web browser) using apps inside of the window
becomes more difficult than simply having a tab for each app. In fact if every
app opened up full screen and into a new tab that could almost be handy
depending on the extension API, etc.

~~~
mkawia
I could see a use as some sort of a Control panel.

------
HappyTypist
I must say that is a very nice domain name (js.org)

~~~
chdir
The demo domain is cool too : 0o.no

------
revelation
That's interesting, it's an operating system emulation running in the browser,
and the one thing missing is.. a browser.

~~~
NikolaeVarius
Would definitely be interesting how many levels we could go down.

I'm going to assume 2.

~~~
moshthepitt
Why 2?

------
amyjess
Reminds me of something I saw way back in the late '90s called MyWebOS, which
looked cool but never caught on.

Also, I see the Internet has unleashed its usual brand of stupidity on the
demo. There are files in the shared directory with names like "Got any good
porn.txt" and "dicksmoker.odoc".

------
callesgg
I cant really see any good use cases.

But WOW am i impressed that, is one of the cooler things i have seen on the
web.

~~~
keithwhor
Always cool to see these in action, but multiple "online desktops" have come
and gone since the mid-2000s. I personally built one myself in 2010 only to
realize it had been tried and failed a few times. My next instinct was that to
get attention and attract users I'd need a mobile-style UI. My instincts were
wrong, and your gut is right. There wasn't a strong enough use case.

The motivator for these projects is typically something along the lines of,
"it would be great if there was just one OS or interface I could use on any
device." As engineers it's very easy for us to see the usage pattern of apps,
the speed, power and ubiquity of web tooling + JavaScript and say, "aha! The
next logical evolution is _all_ of your client logic on the web!"

Alas, if it were only that easy.

"Unfortunately, this ability to see patterns can prove catastrophic as you
attempt to build your own company. The more you generalize the solution to a
particular pain, the further removed it becomes from that specific pain. While
it might end up being able to solve a lot of pains, it won’t be very good at
solving any particular one." [1]

A shared, web-based environment is probably where everything _is_ going. I
mean we're more than halfway there with most operating systems, cloud backups,
tons of SPAs, etc. The problem is there's no consumer-driven need for a fast
transition to a JavaScript "OS" environment. Everything is just good enough,
and offloading all device logic to the web, for the end user, is barely
noticeable (if not a minor detriment as older devices still have rendering
issues). It's likely that everything will converge on this sort of environment
(but without the desktop metaphor) because _engineers_ want to head towards
elegant solutions, but it will take time. (You won't convince people to start
switching with software alone if it means they have to figure out how to open
Chrome / Safari / Whatever on their phones, first.)

FirefoxOS [2] is probably getting pretty close. The sooner we get to an OS
just being a glorified web browser, the more we drive development spending way
down and cut costs for the consumer. Then the software will already exist,
packaged with the phone. But you need the phone first --- not the software.
That's the product. That drives consumer demand. "JavaScript OS" becomes a
reality as soon as web-rendering matches native performance on ubiquitous,
low-end devices. The software will exist to sell the product, not vice-versa.
(We'll also have a Cambrian explosion of offline-first front-end tooling. ;))

... Yeah, I've done a lot of thinking about this. ;) Was my first big pet
project.

[1] [http://degoes.net/articles/engineer-
entrepreneur/](http://degoes.net/articles/engineer-entrepreneur/)

[2] [https://developer.mozilla.org/en-
US/docs/Mozilla/Firefox_OS](https://developer.mozilla.org/en-
US/docs/Mozilla/Firefox_OS)

~~~
millstone
> The motivator for these projects is typically something along the lines of,
> "it would be great if there was just one OS or interface I could use on any
> device."

A lot of people do have this dream, but in practice it's horrible. The UI on
my watch has to be very different than the UI on my flatscreen TV.

This notion that things will move to a web based environment because
"engineers want to head towards elegant solutions" has two problems.

The first is that "what engineers want" doesn't matter in the least. We saw
this with Windows 8: a single OS that tries to scale from tablets through
workstations. That's an engineer's design and an engineer's dream, but users
hated it, and Microsoft has since backed off.

The second problem is this notion that the web is "elegant." It has some nice
properties, but it's layered hacks upon hacks. Demos like this are impressive
because they work _despite_ the web's limitations.

> The sooner we get to an OS just being a glorified web browser, the more we
> drive development spending way down and cut costs for the consumer.

This is frankly delusional. If web apps cost less, it's because they do less,
or do it less well.

~~~
keithwhor
It seems like you read the first couple of lines of my post and then skimmed
through the rest of it. :) You reiterated points I made as though you're
arguing with me, I'm a bit confused.

Re: dev spending. We drive development spending down because it costs far less
to write software once and deploy everywhere than it does to write it for two,
three or more platforms. The "elegant" goal is one compilation and/or
deployment target, whether _you_ like it or not doesn't matter, and it seems
like JavaScript (or some related cousin) is going to fill that niche. Pretty
silly to think that's delusional when it's already happening.

------
pbreit
Pretty impressive UI/UX. If that's possible using "web technologies" (JS +
HTML + CSS, I gather), shouldn't it be possible to create such things on
mobile? All the mobile-optimized web stuff I see still feels sub-optimal.

~~~
BinaryIdiot
> All the mobile-optimized web stuff I see still feels sub-optimal.

That's probably because all of the mobile browsers are terribly inefficient
when compared to desktop browsers. It makes creating a mobile experience
that's fluid and fast.

~~~
pbreit
Aren't the JS/HTML/CSS engines pretty much identical?

------
jawngee
From 1999:

[http://www.zdnet.com/article/will-mywebos-com-catch-
on/](http://www.zdnet.com/article/will-mywebos-com-catch-on/)

------
mrmondo
Impressive but everything is _very_ slow for me - I've tried on my late 2015
5k iMac i7 and 2015 Macbook, both take almost a minute to load to the desktop
in Firefox, granted I have a very slow internet connection at 18Mbit down
2Mbit up but given that it appears to be quite small in size something must be
awry?

~~~
Retr0spectrum
Maybe the server was just under load? It was pretty much instant for me, on a
similar internet connection.

------
eklavya
When I worked in a telecom company, there were a lot of servers where a GUI
was exposed which mimicked a Gnome 2 environment (through Citrix if I remember
correctly). It was painfully slow and really a time waster. I wonder if this
is faster than that. If it is, so many companies can use it.

------
ostyn
Compare this(and the response to it) to the overall perception of JavaScript 5
years ago. It's interesting to see how decent tooling and some good language
changes can move the perspective from largely disparaged to greatly desired.

------
antoniuschan99
Really Cool. A similar app I know of is called Synaptop.

Also, jQuery Desktop is pretty cool too although its just a UI and doesn't do
anything

------
mchahn
Back to the future. I have been very happy to leave the desktop metaphor
behind.

~~~
keithwhor
I don't even think I _use_ my "desktop" anymore. It's where screenshots save
to automatically before I figure out where to put them, and that's it.

------
jbverschoor
What about an X11 server?

~~~
JoshuaJB
Just an X11-client would be interesting. It would theoretically allow you to
transparently offload UNIX applications to a remote server.

~~~
PAEz
Im no linux person (gawd no) and so dont know EXACTLY what you mean, but is
this the sort of thing you meant?.....

[https://www.youtube.com/watch?v=Hd73b-Twf4I](https://www.youtube.com/watch?v=Hd73b-Twf4I)

Mentioned....

[https://www.reddit.com/r/javascript/comments/3yo754/osjs_a_j...](https://www.reddit.com/r/javascript/comments/3yo754/osjs_a_javascript_web_desktop_implementation_for/cyflj8i)

[https://www.reddit.com/r/javascript/comments/3yo754/osjs_a_j...](https://www.reddit.com/r/javascript/comments/3yo754/osjs_a_javascript_web_desktop_implementation_for/cyfjxkd)

------
e12e
Would be nice if the page mentioned how this differs from/improve on projects
like Lively Kernel?:

[https://www.lively-kernel.org/](https://www.lively-kernel.org/)

------
delan
2016 is less than 48 hours away. Why is curl [http://](http://) | sh still a
thing? Why is the Windows installer delivered without HTTPS, and does it
really have no digital signature, or have I been MITM’d? I don’t know about
you, but I wouldn’t touch this with a barge pole, let alone a computer.

~~~
jacisnonsense
because everyone knows that curl [http://](http://) | sh is the most async

