Hacker News new | past | comments | ask | show | jobs | submit login
Hook.io - a full featured i/o framework for node.js which aims to take on erlang (hook.io)
69 points by audiotron on July 26, 2011 | hide | past | favorite | 30 comments

So, you want to take on erlang?

Then how about writing some documentation. Your half-page README, half of which is spent making big claims, but then barely scratching a hello-world, left me rather underwhelmed.

Here's a simple question: How do you handle errors? (exceptions, transport errors, timeouts)

The project is pre semver 1.0.0, it should not be considering suitable for production.

You'll have to be way more specific about what you mean by "handle errors". Do you mean node to node connection errors? Node to node messaging errors? Errors localized in a custom Hook?

I suggest just reading through the codebase, it's not that big. The entire philosophy is crash only processes which are supervised by Forever. In the current early version of hook.io we usually get let things crash and restart. This isn't idea for guaranteeing delivery of messages, but it's a good start.

> The entire philosophy is crash only processes which are supervised by Forever.

> we usually get let things crash and restart.

>This isn't idea for guaranteeing delivery of messages

That is not Erlang.

Indeed not, but Erlang is Erlang, Hook.io is Hook.io, and Trolls are Trolls. More perspective on opinions would be helpful to evolving away from problems you see, and/or for the use of understanding your comment.

I think you might be mistaken.

From: http://en.wikipedia.org/wiki/Crash-only_software

Erlang is a computer language originally built by Ericsson for fault-tolerant telephone switches. Programs are structured as modules that can be replaced (hot swapped) without having to restart the entire program. If a module crashes or needs to be updated it can be restarted or replaced without affecting any other part of the program. Within the Open Telecom Platform, which often is used together with Erlang, there exist frameworks to simplify and automate this task.

Crash-only is an aspect of Erlang, you've not replaced the entirety of what makes Erlang uniquely useful.

Not really sure how this takes on Erlang, seems much more like a simple message queue for Node.

I'm an Erlanger and I like this. I don't think Node will ever replace Erlang for what Erlang is good for. However it definitely is doing a great job taking concurrent programming mainstream.

If anyone is looking for a fun hack, it looks like creating a CouchDB _changes hook would take only a few lines of code, as the hard work is already done: https://github.com/iriscouch/follow

Yes, this would be awesome! Then we could subscribe to NPM and get Hook.io events every-time a new package was published to NPM.

Wrapping existing libraries in a Hook, is very very simple ( by design ). :-)

I don't get it. I am an Erlanger and I don't understand in what sense is this supposed to be like Erlang. The provided documentation is to be insufficient.

What is hook.io all about? Is it mainly a framework for sending/receiving events (messages) between different processes?

Hey all, just wanted to chime in about us using this at Nodejitsu. Hook.io makes it much easier to have a huge mesh network of drones for us and greatly simplified our management code for child processes on our stack. If you are looking for an easy way to have a mesh network or a master/slave network Hook.io will be great.

As for personal use, Hook.io is amazing since it is like a mesh network and IPC event bus put together. I create modules, a way of using deamons supporting features through hooks makes life easier and allows them to be services kept alive out of my process.

I don't get it. What's this for?

whatever you want it to be baby!

for a simple examples there is station. https://github.com/Marak/station

disclosure, I work @ nodejitsu.

>i/o framework...node.js...take on erlang



Why would you say that?

Do I need to enumerate the many problems with node.js's runtime that make it unsuitable as a replacement for Erlang which has been done many times before?

Considering one of the authors of CouchDB has already chimed in saying he think's this is a neat idea, yes I think you should enumerate those reasons or provide similar credentials.

Same said person, Quote: "I don't think Node will ever replace Erlang for what Erlang is good for. "

In the same comment too.

Also, credentials? Do you have to be famous to be able to comment on anything with any experience or knowledge? Have we become that obsessed with programmer pseudo-celebrity?

I'd expect as much from a nodejitsu member though, the team of relentless self-promotion.

Edit: For the record, what he said, is precisely what I'm trying to express. Please explain how that is incorrect.

Ugh, just came in from IRC.

This same individual alnayyir ( Chris Allen ) feels the constant need to insult my company and team every-time he catches a glimpse of us online.

At least he's not making up rumors this time like me "threatening him with a handgun". ( see: http://news.ycombinator.com/item?id=2565609 )

Fun fact, hook.io uses Dnode as it's primary TCP transport, which is written by Substack! http://github.com/SubStack/dnode

This is pretty sweet sauce. You get the modular ideology like Erlang.. without the syntax. Ew.

How long did you program in erlang? I only did for a year or two but during that time came to appreciate the syntax as well evolved for the type of coding erlang was built to handle. There are a few syntax warts and many "standard lib" oddities due to evolution. For me, it did not take long before the syntax was very readable. On the other hand, I've programmed in javascript off and on for much longer and still find the syntax a bit ugly...to each his own ;)

There is ifene/efene (and Reia and Elixir if we'd consider alternate languages for Erlang VM) for Erlang. There's a CoffeeScript for JS, too.

Syntax can be fairly easily replaced - any good undergrad CS student should be competent enough to write a parser/translator. It's the semantics and runtime that really matter.

Syntax is potentially the most shallow thing to complain about, particularly when it actually makes sense in the structure of the language in question (like Erlang) and doesn't hurt readability for anyone (unlike some perceptions of Lisp).

Shallow? I can't roll my eyes at those whom complain about noisy/unpleasant syntax. It's quite important that it's agreeable to you if you have to stare at it all day long. Sure, there are many other important considerations when evaluating a language, but being concerned with syntax is hardly shallow IMHO.

Yes it depends. There might be legitimate complaints that arise when you "have to stare at it all day long". I'd take syntax complaints from people that have used a language for a long time far more serious than syntax complaints from people that see it for the first time (and still have to train their pattern recognizer :-). Those are shallow.


Have you spent more than a tutorial with Erlang?

Is that the point? Am I criticising Erlang myself? No, I'm just merely pointing out that being concerned with language aesthetics is not the "most shallow" thing imaginable.

Yeah those Erlang cooties. ewwwwwwww.

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