3 ms·
But nodejs was never really about JVM vs. V8 in the first place. It was about async io, handling everything in a process and a handful of threads, instead of s
by emilsedgh 10y ago
But nodejs was never really about JVM vs. V8 in the first place.
It was about async io, handling everything in a process and a handful of threads, instead of spawning a new thread for every request (and paying for OS context switch).
Of course in your article you mention Netty. But Nodejs is (still) the only ecosystem where everything is async (event-loop style), vs. Java Netty or Python Twisted, in which you only have a subset of libraries.
Or am I mistaken?
- wsargent 10y agoAkka, Play and Lagom are part of the Lightbend Reactive Platform -- everything's async from the ground up, built on the JVM and Scala. The authors put together the Reactive Manifesto: https://www.lightbend.com/blog/reactive-manifesto-20 https://www.lightbend.com/blog/reactive-manifesto-20
- im_down_w_otp 10y agoThat manifesto site drives me completely nuts. It reads like somebody is trying really, really, really hard to describe Erlang without actually saying, "Erlang".
- deleted 10y ago[deleted]
- twic 10y ago> It was about async io, handling everything in a process and a handful of threads, instead of spawning a new thread for every request (and paying for OS context switch) Given that the data, and the events about the movement of data, come from the kernel, there are still just as many context switches with lightweight threads. The only real advantage of lightweight threads, as pcwalton pointed on recently in another discussion, is that they can have much smaller stacks, so you can have many more of them before you run out of address space. The biggest advantage of Node.js, though, is that it let people who know JavaScript write server-side code with reasonable performance and scalability. If you already know Java, there's no reason to use Node.js. If you only know JavaScript, or JavaScript plus some 'slow' server-side language like Ruby, the Node.js is an easy way to get more performance and scalability. Go is filling a similar niche. If you know Java or C# or C++, Go is pointless, but if you only know JavaScript, Ruby, Python, etc, then the ease of learning Go makes it a viable option on the server side.
- emilsedgh 10y agoLightweight threads? Nodejs doesnt use them. There is only a process and a handful of threads which are basically workers. And I don't buy that the only point of nodejs is that _that it let people who know JavaScript write server-side code with reasonable performance and scalability_. Writing nodejs code is a complete different beast from frontend javascript. I actually think writing nodejs is much harder to understand and code than eg Golang or Java. For me, personally, the point of Nodejs is neither performance nor the fact that its _async_. Nodejs has a really good balance of performance, tooling, ecosystem and scalability. Of course I could be wrong.