Abstractions like Scala, Groovy, and Clojure were built on top of the Java Virtual Machine’s finely tuned bytecode processing power.
Virtual machine innovation is now happening atop V8.
V8-powered NodeJS apps compile directly to machine code at a speed that rivals the JVM’s compilation from bytecode to machine code.
Not much. This question was an example of my vulnerability to hype vortices.
Meteor is also extraordinarily fun and easy to work with. Remember how much fun you had when you used Rails for the first time? It’s like that, but better.
A tradeoff is that, as Mattias said, “Meteor is a bit full-stacky.” Adoption is hampered by the fact that one does not simply integrate Meteor into a preexisting microservice-based, RESTful stack. To build a simple, friendly RESTful JSON service in Meteor is to miss the point of Meteor.
But–there are plenty of other options for a friendly RESTful JSON service:
Another question rooted deep in the buzzword nexus of the Hype Vortex.
These benchmarks are hard to measure.
Going further requires looking into V8.**
Any time something happens in a NodeJS application, an event is created.
New events are loaded onto the event queue. These events are processed serially. The event loop takes events from the head of the event queue one at a time and hands them off to the file system, network, or another process.
As those events are processed, they create more events. Those new events are placed at the back of the event queue, and the cycle continues.
Yes. Humans should figure out more ways to behave serially. Multitasking is a myth. Single-threaded event programming is more comprehensible for programmers.
It’s not a stretch to extend this philosophy to how we think about programming models*.
But also no. A Node microservice may be processing each individual event serially, but different services are doing different things at once. In this sense, a Node programmer’s overall system is multithreaded.
Node’s single-threaded event loop is only a part of an overall application that is doing multiple things at once.
*opinion is the author’s own
**Anyone who has performed a comparative analysis between V8, SpiderMonkey, Rhino, and Nashorn, please leave a comment. I’d like to know more about how these differ.