Live data from Hacker News

Node.js, a popular tool for building modern internet services, has split in two

wired.com

91–100 of 166 posts

Re: Node.js, a popular tool for building modern internet services, has split in two

#91

I think the intersection of politics and internet is interesting. I write about it quite a bit on my blog, as well as here: http://qbix.com/blog/index.php/2013/04/a-new-kind-of-platfor... In this case, we see sort of an "arab spring" of open source projects lately. Consider MySQL after it was bought by Oracle, and then the MariaDB fork was born. Now we have Node.js and Docker being forked. Until now, most successful…

I could not agree more. But then again, I'm biased, as I wrote my senior thesis in organizational studies on the subject of the politics of information technology, in college in 2003 (and still have yet to publish it online somewhere!). I think the most interesting aspect of this is the cross-disciplinary nature, when analyzing something like the Internet and information technology through the lens of a different fie…

Please post it. :)

Re: Node.js, a popular tool for building modern internet services, has split in two

#92

>Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Really? I thought that they intentionally choose javascript because it doesn't have any features like threading. > The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its cr…

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

Is that a language feature or a runtime/library feature though?

Re: Node.js, a popular tool for building modern internet services, has split in two

#93

>Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Really? I thought that they intentionally choose javascript because it doesn't have any features like threading. > The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its cr…

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

Sorta. What you say it true, but it is also true that Node isn't multi-threaded because the user does not have access to that thread pool. The user cannot create their own threads to do CPU work unless they go into C/C++ land. In other words, only I/O is multi-threaded so if you need to do expensive CPU work then you need to spawn a process which can be cumbersome.

Re: Node.js, a popular tool for building modern internet services, has split in two

#94

>Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Really? I thought that they intentionally choose javascript because it doesn't have any features like threading. > The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its cr…

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

Does each thread get a separate V8 interpreter? I was pretty sure that V8 has a GIL (at least at the Isolate level), just like Python and (Matz) Ruby, and so how do they handle lock contention between multiple threads?

Re: Node.js, a popular tool for building modern internet services, has split in two

#95

Earlier quoted context omitted.

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

Does each thread get a separate V8 interpreter? I was pretty sure that V8 has a GIL (at least at the Isolate level), just like Python and (Matz) Ruby, and so how do they handle lock contention between multiple threads?

No, because the I/O threads never enter JS land (V8); they just dump their data for the main V8 thread to pick up.

And yes you are correct that V8 effectively has a GIL for its Javascript execution (though V8 does actually run other threads in the background for profiling).

Re: Node.js, a popular tool for building modern internet services, has split in two

#96
post #9

Ben Noordhuis, the center of the Node.js pronoun scandal [1] and one of the founders of Strongloop, has activity in IO.js more recent than his activity in Node.js. I can't help but wonder how much of this is a power struggle between Strongloop and Joyent. https://www.joyent.com/blog/the-power-of-a-pronoun

Reminds me of the Docker/Rocket situation, at least in the monetary sense. Node.js became big, money went to heads, and here we are.

I don't feel that's the case at all... relative to development of every stable release of Node, 0.10 is getting very long in the tooth, and 0.11 is pretty stagnant as well. If only from the perspective of v8 supported features alone. At this point we really should be working on 0.13 (towards 1.0) which should have the --harmony features by default.

It's bad enough that I have to use browserify to get working features in the browsers... I shouldn't have to do that for a leading edge server-side JS platform in the development version. Don't get me wrong, still love node, and JS is very effective, just the same, I'd rather not have to require in libraries that should be baked into the engine at this point... or writing shims to make for an easier transition.

co/koa are over a year old now... developed against features that still aren't in the supported release... prior to 0.10, v8 had been kept very close to the edge... it's now over a year behind.

Re: Node.js, a popular tool for building modern internet services, has split in two

#97

Ben Noordhuis, the center of the Node.js pronoun scandal [1] and one of the founders of Strongloop, has activity in IO.js more recent than his activity in Node.js. I can't help but wonder how much of this is a power struggle between Strongloop and Joyent. https://www.joyent.com/blog/the-power-of-a-pronoun

It isn't that. Really it's Fedor and Mikeal pushing it a lot, not the strongloop guys. The other core devs are behind it, too, except a couple from Joyent. It really has nothing to do with corporate power struggles (that's more what Joyent's advisory board is about, frankly)... it has to do with developers getting really frustrated at the stalled pace of development on the Joyent branch. The real objective is to get…

New features for numerical computing? I am intrigued... for me that essentially means operator overloading, including []. I think that would open the door for implementing a numpy like module for Node. Is that the plan?

Re: Node.js, a popular tool for building modern internet services, has split in two

#98

>Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Really? I thought that they intentionally choose javascript because it doesn't have any features like threading. > The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its cr…

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

Really? I've never seen any synchronization code (e.g., locks) in JavaScript. If multiple threads can execute async tasks in parallel, doesn't that mean JavaScript needs synchronization primitives? Most JS code I've seen in the wild relies implicitly on the single-threaded assumption—that only one callback (for example) will run at a time.

Re: Node.js, a popular tool for building modern internet services, has split in two

#99
post #6
post #4

> Future of Popular Coding Tool in Doubt After It Splits in Two Are there convincing number of examples of very popular projects being forked and both ends being discontinued, or is this just a typical example of spreading FUD? Forking is a natural process in the open-source world.

I can think of MySQL. While I wouldn't call it dead by any measure it certainly suffered when the spit happened.

forking didn't hurt MySQL. Going proprietary hurt MySQL.

Re: Node.js, a popular tool for building modern internet services, has split in two

#100

>Node was created by software developer Ryan Dahl as a way of building and running entire online applications with JavaScript—the standard programming language for writing code that runs in your browser. Really? I thought that they intentionally choose javascript because it doesn't have any features like threading. > The massively popular programming framework Ruby on Rails, for instance, is still sponsored by its cr…

It's a widely held misconception that JS doesn't have threading. User code executes in a single thread, but asynchronous tasks are managed by a thread pool (libuv in node). Because the multi-threading is hidden with asynchronous calls, the user doesn't need to worry about it, which is why many people say JS is single-threaded. In fact worker threads execute async tasks behind the scenes; it's a very nice feature of t…

You may be speaking of a particular implementation or engine. JS, the language, has no such concept of a "thread". The standard describes execution of a valid program as linear. Libraries may add functions such as event listeners or threading or sockets, but these are not part of the language.

And yes, to be pedantic, by JS I'm refering to ECMAScript, or ECMA-262. If by JS you mean JavaScript the implementation by Mozilla, then Node doesn't use that anyway :p

Post reply on HN