Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you do not already think it has been hyped, I am at a loss as to how to prove it to you.

Let me put it this way: Why do we hear so much about Node when it's just another event-based single-threaded "asynchronous" execution environment running on a dynamic language, like half-a-dozen others that preceded it? Basically, it won the hype lottery. Whatever nice things you may have to say about it apply reasonably well to the half-dozen predecessors, too.



Because it is inherently attractive to people who have worked client side in javascript and want to expand. Like me. I'm relatively new to the industry. I know javascript fairly well and while I might not be as familiar with the sort of problems that have to be solved on the server I am learning.

I think a lot of the criticism about people getting into it thinking that they can just port their client side experience to the server is valid. But the tone of so many seemingly anti-node posts turns a lot people off. I read more critical posts about node than I do positive ones because I know I will learn more. But sometimes it is not easy to cut through all the ego thumping and noob bashing. It would be nice to see the tone of the discussion shift, which I think it is starting to do, to what node is actually good at (in my opinion it seems to be acting as a glue for applications that require real-time).

Regardless, it works. I've started using Trello and I love it. Best organizational app I have used. Built in node. It works and I have not had a single problem with after two weeks of pretty heavy use.

So I don't think it just won the hype lottery, it has distinct advantages over Twisted and EventMachine, even if many of those advantages just have to do with relative accessibility and the ease of access provided by NPM.

It has hype because it has an involved and open community. Not just because it was lucky.


I did not have much experience with frontend code and more or less had to learn JavaScript to use Node. I think one reason Node has become so popular is that it is relatively simple to understand (in part because JavaScript is), the documentation is excellent, and it works well. Twisted has similar goals, but it was harder for me to learn what was going on, even though I have prior Python experience.


I would definitely agree with you there. The documentation, as well as the number of tutorials and ebooks, is one of the big reasons for the so called 'hype.' I tried looking at twisted, I know enough python to be able to throw together some simple scripts and work with tools written in it I'm no pro though, and felt totally lost.


I don't think you've taken the time to ask how it might be different from even the other evented systems that have come before. When something that looks similar to what has come before seems to get undo attention, you should perhaps ask if you're missing something.

All languages, platforms, frameworks etc have strengths and weaknesses. There are lots of factors that contribute to a certain solution being "really good" for a problem as opposed to "serviceable but not great". Engineers look for great solutions to problems. They don't stick with ones that are sub-par just to avoid explaining to nay-sayers why they decided to switch.


All else isn't the same. For one, this event-based, single-threaded "asynchronous" execution environment running on a dynamic language uses javascript, which is a surprisingly powerful functional language that just happens to run on the other side of the web server conversation in the context that we are discussing.

Being able to standardize and coalesce the two sides of the web pipeline -- regardless of what magic happened at the other layers -- has obvious merits.


Calling JavaScript a functional language on the pure basis that it has first class functions and closures is sort of stupid. Aside from that, what other properties does JS enforce that are deemed functional?

I'll save you some time: none.


I don't generally like to say sort of stupid things, but I would call a language functional if it has first class functions and closures.


Provide a concise, objective definition for functional languages which Lisp, Scala, Haskell, and Lua satisfy but Javascript does not.


The language uses functions as the primary mechanism for implementing core language design features, such as abstraction, modularity, code re-use, and configurable behavior. Lisp, Scala, and Haskell use functions as their go-to tool, supported by macros and/or types. JavaScript uses objects and its object system as its primary tool, with functions in a supporting role.

I will concede that JavaScript supports programming in a functional style. However, if one uses that as the definition of a functional language, the term becomes nearly useless, basically excluding only Java.


You might add that Lisp (well Scheme and some Common Lisps), Scala, and Haskell provide mechanisms to make recursion equivalent to iteration without explicit looping constructs that require mutation (tail recursion).


My interest in having a boring argument with a language bigot approaches nil. But yes, aside from the very namesake of functional programming (a vague language grouping with no disciplined definition), yeah there's nothing else there...groan.


You are correct in saying that functional programming has a vague meaning. For JavaScript, I'll accept the meaning:

    functional: adj, produces a correct result
      example usage: Despite its many warts, inadequacies,
        somehow JavaScript is actually functional.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: