People are even doing hardware design in the browser now. That may or may not directly involve JavaScript on HW part as I don't know how much those apps rely on servers. It's conceivable a basic, EDA tool could be built with Javascript, though.
One thing I can't seem to find is, is this a true nodejs-based operating system in that it's all single threaded? single-threaded event loop stuff works well for network servers but an OS? To me it seems like a terrible idea.
I'm going to have to assume it's using some form of Node's clustering support, which will let you run up to X instances where X is the maximum number of supported instances for the number of cores you have. Otherwise, you're right, bad combination.
What about something like ChromeOS? Does it need multi-threading?
If each app is running it's own thread, and can spawn new threads, maybe that would work.
Also, though Node.js is currently single-threaded, there is the Nexus project https://github.com/voodooattack/nexusjs which is doing multi-threaded javascript. Maybe this or Node.js will support multiple threads in the future.
Nashorn on the JVM supports threads. So the problem is definitely not a JS issue but a JS engine issue. NodeJS is single threaded because NodeJS V8 is. There was a talk about implementing workers that communicate view text messages though, I don't know the state of workers in NodeJS .
I recently read about the SIMD support for Javascript. While parallelism and distributed systems contribute a lot to the OS, SIMD is something nice to have on top that. So, JS may be single threaded but having SIMD support might speed things up.
I recently read about the SIMD support for Javascript. While parallelism and distributed systems contribute a lot to the OS, SIMD is something nice to have on top that. So, JS may be single threaded but having SIMD support might speed things up.
I remember SGI adding code to Linux to to make it work on their NUMA machines with 256 sockets and 2,000-4,000 cores with single system image. They were my favorite but not only one. I'm sure some distro out there can handle 50 by now. :)
I'm honestly not sure. I was under the impression that it was limited... but thinking back perhaps I was thinking of the software that usually doesn't take advantage of multiple processes. Also half joking :D
Actually, BEAM can somewhat (and probably should be) considered an OS. It's got most everything you'd need baked in and ready to go...
Right now, I'd say the bigger issue isn't he entire OS taking advantage but the applications running within it... in which case, yes, BEAM would be an amazing paradigm shift! :D
I have a two-finger salute I typically give to cooperative multitasking especially thanks to the Windows 3.1 era. ;) I still investigate it with better type systems, languages, hardware monitors, whatever. I just think "NOOOOO!!!" is a good default when I see it.
52 comments
[ 3.6 ms ] story [ 106 ms ] thread"Any application that can be written in JavaScript, will eventually be written in JavaScript."
http://blog.codinghorror.com/the-principle-of-least-power/
https://www.destroyallsoftware.com/talks/the-birth-and-death...
Of course it's still challenging but it's built on top of the Linux kernel so it's also not a pure NodeOS (which would probably be impossible).
If each app is running it's own thread, and can spawn new threads, maybe that would work.
Also, though Node.js is currently single-threaded, there is the Nexus project https://github.com/voodooattack/nexusjs which is doing multi-threaded javascript. Maybe this or Node.js will support multiple threads in the future.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
http://erlangonxen.org/
http://zerg.erlangonxen.org/
Right now, I'd say the bigger issue isn't he entire OS taking advantage but the applications running within it... in which case, yes, BEAM would be an amazing paradigm shift! :D
A research OS with the theme of treating the OS as if it were a distributed system.
As much as I love Node.js, I have grown to dislike npm. Git + Github is a much nicer way to publish.
Also the whole left-pad fiasco.
But using git means its theoretically possible to have multiple registries - etc.
That's not a very nice tagline to have after the recent left-pad fiasco.
Wow!