Talk:Node.js

WikiProject Internet (Rated C-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Internet, a collaborative effort to improve the coverage of the internet on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
 
WikiProject Computing / Software (Rated C-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software (marked as Mid-importance).
 

Quality

The entire article reads as if it is written by a first grader. — Preceding unsigned comment added by 193.191.136.194 (talk) 13:51, 2 June 2014 (UTC)

Agreed. Consider the line below found under the Uses heading: "Fast file upload client: when there are big file to be uploaded, to make sure that they don't block so that you can upload more than one file at a time." — Preceding unsigned comment added by 41.79.220.255 (talk) 10:35, 11 June 2014 (UTC)

Agreed. I deleted that rubbish section. Thanks for pointing it out. Some idiot who knows pretty much nothing about node wrote it. And it doesn't make any sense either. Trying to clean up what I can. Since when has WP become a bunch of random blog posts merged into an "article"? -- Wonderfl (reply) 03:09, 15 August 2014 (UTC)

Low quality rubbish:

  1. Random #JXcore info
  2. Ambiguous #Criticism

Date problem

I'm reading "February 15, 2013; 0 days ago" on the right info box... it's the 19th. This might be a larger Wikipedia problem, since the "date" filter/tag is being used (maybe the server time is off), but it's worth noting here. — Preceding unsigned comment added by 66.176.55.151 (talk) 17:33, 19 February 2013 (UTC)

Intro needed

If the reader is not a Javascript programmer, this article does not tell them (i.e., me) anything useful at all about Node, what it is or what it does. The code snippets are only useful for people who already know about this field. Liam Proven (talk) 13:50, 2 March 2011 (UTC)

True. I tried to make the lede somewhat more understandable in a recent edit, but it requires non-programmer readers to click on wikilinks. If anyone wants to expand on my work, please go for it. Cheers, CWC 08:43, 30 November 2011 (UTC)

It might be useful to explain that this is server-side javascript :-P --2001:980:331A:1:225:22FF:FE7D:8A27 (talk) 22:26, 3 November 2012 (UTC)

Is it? I thought Javascript requires DOM bindings? Without it, it seems to be just another ECMAScript application. Am I missing something?--89.146.13.103 (talk) 11:57, 27 June 2014 (UTC)

First, "Node.js applications are designed to maximize throughput and efficiency". Then, "It is commonly used for real-time applications due to its asynchronous nature". Unfortunately applications can't be both designed to maximize throughput *and* low, fixed latency (which is what real-time implies). So which one is it? Considering it's asynchronous, I can't see how it would be a good pick for real-time applications anyway, even in the oft miscomprehended sense of "very fast applications". — Preceding unsigned comment added by 31.221.2.61 (talk) 14:34, 18 September 2014 (UTC)

NPM

Should the article mention the Node Package Manager (NPM)? It seems to have won the "package manager war" for node.js and seems to be far more popular and active than its competitors or JSAN (which the CPAN article mentions as the JavaScript package manager). -- 78.35.115.245 (talk) 10:50, 1 March 2011 (UTC)

Fixed - I mentioned the full form in the NPM section. We have a section for package management as of 2015. Wonderfl (reply) 07:13, 10 February 2015 (UTC)

Node History

This article has some nice info on node and its history. Can be used to expand the article.--175.136.62.233 (talk) 19:25, 11 September 2011 (UTC)

Good one, thanks. I've just added to the article as a source for an existing statement, but we should use it more widely. Cheers, CWC 08:43, 30 November 2011 (UTC)

asynchronous i/o

i think this needs a discussion on asynchronous i/o, and an explanation of the difference between asynchronous-io/web-workers and threading/concurrency (as i understand it, asynchronous i/o, especially for server i/o, is a crucial use of of node.JS). perhaps also we can discuss why people have see node (especially in the context of server-scripting with asynchronous solutions) as providing a performance/scaling advantage (despite the performance compromised by the use of a high-level interpreted language, JS). also along the lines of performance, maybe this article also needs more thorough discussion of the google V8 engine for JS rather than just a mention and link? 50.74.192.11 (talk) 15:22, 4 October 2011 (UTC)

Yeah, async I/O is a core feature. The article now has links to relevant Wikipedia articles, which helps, but a proper explanation would be better. CWC 08:43, 30 November 2011 (UTC)

Need better sources, fewer External links

User:Thumperward recently tagged the article with {{advert}} and {{selfpublished}}. I've changed those to {{External links}} and {{refimprove}}, but his point still holds: the sources cited in the article tend to be written by fans of Node.js, and the external links section is too long. I should be doing other things, so I'm not going to tackle this myself. Can anyone else help out?

The problem we face is that lots of people are very enthusiastic about Node.js (for good reason, IMO), and articles about it tend to be more enthusiastic than desirable in a good source for an encyclopedia. So we have to be more careful about selecting the sources to cite than in most computing-related Wikipedia articles. Cheers, CWC 08:45, 30 November 2011 (UTC)

Seems to me that there are now plenty of third party sources. The fact that they are "enthusiastic" about node.js doesn't make them unreliable or advertising. Have therefore removed {{refimprove}}--Sjsilverman (talk) 11:49, 4 January 2012 (UTC)

WHAT? no mention of coffeescript? thats how most people write code with node .. — Preceding unsigned comment added by 160.94.87.122 (talk) 03:32, 26 February 2012 (UTC)

Yes check.svg Done I've written the brand-new Node.js#Overview section, every statement is cited from books on the subject and is written for average readers to understand. Hope it solves some of these issues. Wonderfl (reply) 06:51, 22 March 2015 (UTC)

Here is a svg logo, wish it can help. No need to cite any source, do wath the f. you wantwith it : http://wikisend.com/download/313448/nodejs.svg — Preceding unsigned comment added by 90.18.244.150 (talk) 17:25, 18 October 2012 (UTC)

Wrong link. Graphnode (talk) 10:44, 24 October 2012 (UTC)

Frameworks

There used to be a section on frameworks but it was removed for some reason. This section was of particular interest for people who are interested in Node.js. The large number of developers who visit the Node.js Wikipedia page will be wondering how they can use Node to make apps - Currently these users are not being catered for. I propose we bring back the frameworks section and if it ever gets out of control (in terms of length), we can trim the list down to only include the most popular frameworks. I think that there are two few frameworks at the moment to worry about this. — Preceding unsigned comment added by 110.175.94.70 (talk • contribs)

It was removed because listings of external links are supposed to be avoided and because wikipedia is not supposed to be a directory. Perhaps a list of such links could be created on a site that is supposed to be a link directory, such as dmoz.org - MrOllie (talk) 16:23, 13 November 2012 (UTC)

Use of node.js for developing desktop applications

I noticed that this article doesn't mention the use of node.js in desktop applications (using appjs, node-webkit, and other frameworks). Is this notable enough to be included in this article? Jarble (talk)

Strenghts / Weaknesses, Tradeoffs, etc.

It would be highly worthwhile to discuss the strengths of Node.js, as well as the weaknesses and tradeoffs that it carries with it. For example, there should be a brief description of some various circumstances in which Node.js may be used. The article also says nothing about the Read-Eval-Print-Loop, which is key to understanding. Perhaps we can compare how processes are run on Node.js to other implementations - the following image (at the top of the page) is handy for this, and an example used by Dahl himself. Perhaps we can also provide a list of some examples of companies / web sites that use Node.js (I heard Yahoo! and Facebook do). Hopefully I'll contribute when I have more time. Cheers! Danielbullis (talk) 05:43, 2 March 2013 (UTC)

"Its development and maintenance is sponsored by Joyent"

The citation for this points at http://www.sdtimes.com/content/article.aspx?ArticleID=35668&page=1, but the referenced page makes no absolutely no statements to that effect, at all.

http://nodejs.org/ does state "the node.js project is sponsored by Joyent", it would make a better citation.

However, uncritical acceptance of this as fact, without at least a statement of what "sponsor" means, makes this page more of an advert than a useful statement about who develops node.

Better would be the following page:

https://github.com/joyent/node/wiki/Project-Organization

Which shows that a number of companies are sponsoring Node.js development (by paying the core developers). That page is out-of-date, Ben Noordhuis was removed from the team by Joyent, and Isaac Schlueter is now an employee of Npm Inc.

Listing the 500+line Node AUTHORS file as the "Developers" doesn't reflect who the Core developers are as well as the Project's wiki page: https://github.com/joyent/node/wiki/Project-Organization

"What can we look forward in future on Node.js"

This section of the page sounds like someone is trying to sell something. 66.51.102.177 (talk) 20:13, 3 June 2014 (UTC)

Excuse me @SuperHamster:, what am I supposed to do with this statement? I think it applies to a section no longer existing. Does it have any usefulness whatsoever? -- Wonderfl (reply) 06:58, 10 February 2015 (UTC)
@Wonderfl: You don't really have to do anything, I'd say. As with most comments more than a few months old, it's from June 2014 so it's obviously stale. If you have to mark it with anything, I'd mark it as Fixed. Or, start an archive and move old discussions there. It's not standard to simply remove talk page messages just because they're dated. ~SuperHamster Talk Contribs 07:07, 10 February 2015 (UTC)
@SuperHamster: Thanks for your comments. Noted. I have a habit of cleaning up articles with nonsense so I let that habit affect my behaviour on talk pages also. I'll mark it fixed as you recommended. Wonderfl (reply) 07:11, 10 February 2015 (UTC)

Fixed -- This section has been removed.

JXcore

Keep JXcore information out, especially in the lead. This it the Node.js article, not the JXcore article. When JXcore gains traction/significance you can warrent a creation of its own article. You don't go about adding Palemoon info into the Firefox article just because its a fork. Get real.

Whoever added the "Node.js is multi-threaded" crap into the lead section, please realize that you cannot confuse two independent technologies and document exclusive features as if they are shared. You completely confused the threading note in the lead section and to avoid arguments I've moved it out of the lead into the newly created "Technical" section. -- Wonderfl (reply) 03:02, 15 August 2014 (UTC)

Criticism

Moved here from the main article. Sounds like a copy-paste job from some random blogpost. Most of it is ambiguous. All of it uncited and unproved.

  1. "certain development issues"? What? Where? How?
  2. "some issues still exist"? What issues?
  3. "can add a learning curve burden"? That's the whole point of node, async event-drivven programming. If you are a JS newbie, use JS, not node.
  4. "inherently adds more complexity". Idiot.
  5. "loosely-typed with object-orientation abilities" .. "object-orientation"? Are you even a programmer or have you just read JavaScript for Dummies and think you are competent enough criticize node?

I don't see any reason why this crap should be moved back into the main article. Discuss here if you differ. Wonderfl (reply) 03:15, 15 August 2014 (UTC)

Criticism section

Node.js has some drawbacks:[citation needed]

  • Node.js libraries are developed actively, with a high rate of change from month-to-month. This can cause version issues, instabilities and certain development issues.
  • Npm shrink wrap and package.json were introduced a while back to set up standards, but the issue of standards is still a work in process and some issues still exist.
  • The whole callback, event-driven, functional programming aspects of Node.js can add a learning curve burden to server-side programmers of other object-oriented languages.
  • Asynchronous and event-driven code inherently adds more complexity to the code compared to synchronous code.
  • As a JavaScript derivative, Node.js code is loosely-typed with object-orientation abilities. This combination can result in code that is hard to debug.

Merge with Io.js

I've merged Io.js with Node.js because it is a non-notable fork. Of course its probably gaining traction but nothing close to Node.js. Plus node is used by large companies and popular websites, making it highly notable. Io.js seems like a small project as of date, and deserves no independent article IMO. -- Wonderfl (reply) 05:58, 10 February 2015 (UTC)

Technical Overview Issues

The second paragraph of the Overview section under the Technical heading is absolutely terrible. For instance: "In Node.js, the fact that all I/O is implemented in an asynchronous and non-blocking way, combined with a single-threaded event-based loop, presented a novel way to implement real-time web applications."

Asynchronous vs non-blocking. http://stackoverflow.com/questions/2625493/asynchronous-vs-non-blocking

How was it a novel approach?

It almost would be easier to just delete this paragraph altogether---I don't feel like it adds anything to the article. Thoughts?

K428 (talk) 01:30, 10 March 2015 (UTC)

I agree that this article needs attention from an expert on the subject, but an expert that is NOT a Node.js fanboy! Everyone I've seen edit this article is either a total newbie or a Node.js expert that spews technical jargon that only the creators can possibly understand.
We need a good balance between technical explanation and simplicity.
Also, the Node.js team needs to understand that everyone is not a geek, and try to write a decent technical overview that communicates the product in a simple way.
Wonderfl (reply) 00:02, 11 March 2015 (UTC)
Yes check.svg Done I've written the brand-new Node.js#Overview section, every statement is cited from books on the subject and is written for average readers to understand. Hope it solves some of these issues. Wonderfl (reply) 06:51, 22 March 2015 (UTC)

Disputed Technical content

I've just pasted this section here. It is heavily disputed, to the point where it appears to be entirely disputed. Also, all of the statements are highly technical and do not present the topic adequately for average readers.

This removal is fine because of the newly written Overview section, that defines most of what the Technical section once did; but it includes inline citations for every point. No more arguments.

If anyone wants to salvage anything, you are free to. Add refs though.

Wonderfl (reply) 14:55, 25 March 2015 (UTC)

Technical

Dahl originally had the goal of creating Web sites with push capabilities such as those seen in Gmail[examples needed]. After trying solutions in several other programming languages, he chose JavaScript because of the lack of built-in support for streams, filesystem access, or binary objects.[1] This allowed him to define a convention of asynchronous, event-driven I/O.[2]

JavaScript has no unified API for I/O, allowing the developers to think about the best way to implement a modern I/O interface[unbalanced opinion]. In Node.js, the fact that all I/O is implemented in an asynchronous and non-blocking[further explanation needed] way, combined with a single-threaded event-based loop, presented a novel[dubious ] way to implement real-time web applications. Node.js can therefore keep many connections alive transparently without having to reject new incoming connections[further explanation needed].

Node.js applications are designed to maximize throughput and efficiency[not specific enough to verify] using non-blocking I/O and asynchronous events[further explanation needed]. It is commonly used for real-time web applications due to its asynchronous nature. Node.js internally uses the Google V8 JavaScript engine to execute code, and a large percentage of the basic modules are written in JavaScript.

Node.js is influenced by other models, such as the Ruby Event Machine and Python's Twisted model. The difference between alternatives is the implementation of the event loop as a language instead of a library[neutrality is disputed]. Unlike traditional models, which use blocking calls[not specific enough to verify], Node.js does not have event-loop calls[clarification needed]. Instead, Node.js enters the loop after executing the script[clarification needed], based on how JavaScript works. Ruby's Mongrel Web server was another source of inspiration.[3]

Node.js applications usually run single-threaded, although multi-threaded execution is supported on Node.js 0.10+ from JXcore. Node.js is based on single-threaded execution, although Node.js uses multiple threads for file and network events.

Node.js can be compiled locally or downloaded as a pre-compiled binary. Applications are executed from the command line with the command: "node <application name>.js"

References

  1. ^ Pasquali, S. (2013). Mastering node.js. Olton, Birmingham, GBR: Packt Publishing Ltd., p. 9
  2. ^ Hughes-Croucher, Tom; Wilson, Mike (2012). Up and Running with Node.js. Up and Running (1st ed.). Sebastopol: O'Reilly. p. vii. ISBN 978-1-4493-9858-3. I was concerned about the ability to program advanced push features into the website like I had seen in Gmail 
  3. ^ Synodinos, Dio (December 13, 2010). "Deep inside Node.js with Ryan Dahl". InfoQ. Retrieved 26 October 2013.