Live data from Hacker News

If you're using Node.js, you're doing life wrong

codeslinger.posterous.com

61–70 of 100 posts

Re: If you're using Node.js, you're doing life wrong

#61
post #48

Earlier quoted context omitted.

Couldn't agree more. We're all aware of the Internet Hype Machine. We've all been duped by it before. Heck, my big project today consists of frantic backpedaling from an overly hasty decision, prompted by the IHM, to use SQLite in a project that had no business being based on SQLite. We should all be open to hearing criticism about choices to use X or Y technology. -But- if you start by saying, "You're so stupid," th…

Socratic method for the win. Keep asking questions until THEY come the conclusion that what they were thinking was a dumb idea.

That works, but I think it's overkill. Generally the "don't argue like a jerk" method is sufficient.

Re: If you're using Node.js, you're doing life wrong

#62
Article like this needs to be sliced-n-diced in different ways:

1) If you don't know technology X and use it due to hype, you deserve to get burned

Let that be a lesson for anybody.

2) There's no silver bullet

Choosing node.js over web-framework just because you want the front-end and the back-end to use the same code-base is to trade one feature for another: Ruby and Rails still have better tools than Node.js while you get JS all over the place (assuming you're good with JS).

3) Complaining about the language is a sign that you have no clue

I used to think that Java is better than some of the hype dynamic languages out there but I was wrong: Java is better for ME because I _KNOW_ Java Better. If I know Ruby more than I know Java then Ruby is better than Java FOR ME.

4) Don't program using another language's idioms

This is documented left and right already. If you use technology X, find best-practices for technology X. Don't just apply best-practices from technology Y.

http://dirtsimple.org/2004/12/python-is-not-java.html

Or some of the comments here about Dependency Injection (which is quite common in Java but not so in Python/Ruby).

In the past, I had one instructor that noticed that my QBasic code looked like Fortran. He asked me if I knew Fortran beforehand and I told him that I've taken Fortran before this class.

People see and notice.

Re: If you're using Node.js, you're doing life wrong

#63
post #44
post #2

I don't really have a dog in this fight, but I see node.js as being "disruptive": * It's "not as good" as languages/environments like Erlang. * But it's good enough, and significantly simpler, as an approach to tackle a certain class of problems. This, combined with widespread knowledge of Javascript, will probably make it fairly widely used.

I disagree about it being that "disruptive". The concepts that it uses aren't new. They've existed in POSIX environments for decades. At a very basic level, Node.js is a callback-based API that's based around some(probably select) notifier loop. That's not particularly new.

[deleted]

Re: If you're using Node.js, you're doing life wrong

#64
post #60

Here's my problem and why I don't care to use it: It's a community built around an implementation of a language which they do not control. Who is Guido or Matz in node.js? Ryan Dahl I suppose; does he take requests or hold discussions concerning the future evolution of the language? Does he issue any rationale documents concerning his language design philosophy? Could he add multithreading to V8 and if so, why hasn't…

This comment is just wildly off the mark. You're comparing a framework to a language. DHH can't add features to MRI Ruby any more than Ryan Dahl can add features to V8 JavaScript.

Off the mark? Perhaps. Wildly so? Unlikely.

But if that's so, then simply view this as an explanation for why I don't use server-side Javascript. And Node is still a tool built around a language implementation which is going in a different direction from where a server side environment/general-purpose language needs to go.

Re: If you're using Node.js, you're doing life wrong

#65

If you get really angry about the choices other people make for their own work, you're doing life wrong.

Amen - I quickly learnt node.js to build http handler for the callback element of a tool I am building using authority labs - for what we need its the dogs nuts.

Yeah; maybe if you're using it to build a Big Fancy Webapp it's actually a stupid idea, like if you use a Swiss Army Knife to do carpentry and build a home, you're probably doing it wrong.

I'm using node for a small tool to analyze network traffic. The author of this drivel can cope. :P

Re: If you're using Node.js, you're doing life wrong

#66

Programming with Node's async model makes it extremely powerful and fast to run database queries and file functions in parallel, but the downside is the potential for huge callback spaghetti indeed. But the callback spaghetti problem can be largely solved by dropping in, for example, the IcedCoffeeScript fork: http://maxtaco.github.com/coffee-script/ Or the previous JavaScript TAME functionality: http://tamejs.org/ T…

If you expect a lot of callback it makes more sense to design that functionality as an object rather than as a single function. That way you can spread callbacks over many functionality and still maintain modularity.

Re: If you're using Node.js, you're doing life wrong

#67
I love articles like this. All the dry analyses, the subtle counter-counter-arguments, that the usual tech opinion articles on HN have make me nuts.

The little layer of emotion and drama added here gets the point across much better, IMHO. Of course it doesn't do anything but preaching to the choir (hi there), and not convincing anyone not already in the choir, but it's a great read! (and so is this thread).

In other news, if you're voluntarily using a dynamically typed language and an editor without an integrated debugger, you're not fit for programming!

Re: If you're using Node.js, you're doing life wrong

#68
Node enforces a programming model that puts you down the path to extreme vertical scalability, you know, actually using all the hardware you are paying for. CPUs and the kernels that manage them are good at running code. They suck at waiting for things to happen.

Out of the box the callback model can be difficult to wrap your head around. But if you are serious about writing a vertically scalable IO-bound service, it is currently the only option. There are some add-ons to make the code less ugly, but you still have to have the mental model down.

It's a lot like multi-threaded programming, or functional programming. It's a matter being able to visualize the flow and pass context around. This takes time to change the way you think.

If you approach problems in Node like you'd approach a problem in a functional language the spaghetti of callbacks becomes much less of a burden.

For the async haters out there operating at scale. How many of you have farms of machines with idle CPU's, maxed out memory, and practically idle network interfaces? Yeah, I thought so.

Re: If you're using Node.js, you're doing life wrong

#69
post #56

I'm really pretty anti-node, but this article isn't very good. The concerns here are mixed up and not very thorough. All these points need graphs, charts, something solid to anchor them to. This is the sort of article that polarizes, but doesn't add to the discussion. It starts off strong talking about a high bug count, but never gets into specifics there. As far as scaling across cores goes, it's disingenuous to sug…

Unfortunately, this way of stating unqualified arguments as basis for reasoning is quite prevalent on the Internet. Keeping it to node.js bashing, this guy takes the discussion to a slightly lower level: http://youtube.com/watch?v=1e1zzna-dNw

Ha, I liked that. But slagging aside, are the points he makes baseless?

Re: If you're using Node.js, you're doing life wrong

#70

I'm really pretty anti-node, but this article isn't very good. The concerns here are mixed up and not very thorough. All these points need graphs, charts, something solid to anchor them to. This is the sort of article that polarizes, but doesn't add to the discussion. It starts off strong talking about a high bug count, but never gets into specifics there. As far as scaling across cores goes, it's disingenuous to sug…

I don't think it even starts off strong with the bug counts. That wasn't node, but using Chrome/v8 directly to parse web pages for their web crawler. I'm not the least bit surprised that parsing unfiltered HTML from the internet dominates their bug count.

I also won't be surprised if their rewritten scala HTML parser also dominates the bug counts.

Post reply on HN