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

...or you could use Erlang. :)


Sure you could use Erlang for that, but what Dharmesh is saying is that building this kind of solution in node.js would definitely be easier and possibly faster to code that writing it with other languages/frameworks.


I'm not sure about that though: the gain here mostly seems to be the "stream" standard abstraction, and it being implemented (via adapters if needed) by many data-processing utilities leading to high pipeability (letting the developer define the chain, and the runtime handle all the data flow within that chain).

Many other languages have similar abstractions — python and generators for instance http://www.dabeaz.com/generators/ — although their usage would likely require more work as they probably are not as standardized as far as usage goes.

I mean in this case it's "faster" to write it because somebody else had already gone through the motion of creating a zipping stream (which they still needed to fork), it's not like node magically did it.

tldr: the node community is re-discovering dataflow, and a few are trying to pass it as some sort of magical property of node.


Or, to rephrase your point, the node community has built some nice pipeable abstractions in a way that's easier to use than Python (e.g.), and people are making good use of those abstractions. ;-)


pipelining data isn't new (Unix pipes!), but it's an very elegant architecture for IO heavy servers, and highly underused because of (perceived) implementation complexity. Many devs don't realise they can create streaming pipelines, and end up with complex systems with multi level caches, and work queues because thats 'how it's done'.

Theres nothing specific about node (architectures scale not frameworks), I'm just saying that node makes this kinda of architecture relatively simple. Use the correct tool for the job.

also checkout lazy haskell lists, which provide a very powerful (and related) abstraction at the language level.


or Go.




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

Search: