

Hook.io - a full featured i/o framework for node.js which aims to take on erlang - audiotron
http://hook.io

======
moe
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)

~~~
barracks
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.

~~~
alnayyir
> 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.

~~~
changelog
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._

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

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

------
jchrisa
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>

~~~
audiotron
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 ). :-)

------
hussam
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?

------
bradleymeck
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.

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

~~~
DrJ
whatever you want it to be baby!

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

disclosure, I work @ nodejitsu.

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

>nodejitsu

No.

~~~
audiotron
Why would you say that?

~~~
alnayyir
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?

~~~
changelog
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.

~~~
alnayyir
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.

~~~
barracks
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> )

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

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

~~~
alnayyir
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).

~~~
sjtgraham
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.

~~~
wladimir
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.

~~~
alnayyir
Precisely.

