6 ms·
Hook.io - a full featured i/o framework for node.js which aims to take on erlang
- changelog 15y agoFun fact, hook.io uses Dnode as it's primary TCP transport, which is written by Substack! http://github.com/SubStack/dnode http://github.com/SubStack/dnode
- mcs 15y agoThis is pretty sweet sauce. You get the modular ideology like Erlang.. without the syntax. Ew.
- rbranson 15y agoYeah those Erlang cooties. ewwwwwwww.
- jhancock 15y agoHow 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 ;)
- alnayyir 15y agoSyntax 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 15y agoShallow? 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.
- alnayyir 15y agoHave you spent more than a tutorial with Erlang?
- sjtgraham 15y agoIs 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.
- wladimir 15y agoYes 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 15y agoPrecisely.
- drdaeman 15y agoThere 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.
- bradleymeck 15y agoHey 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.
- jchrisa 15y agoI'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 https://github.com/iriscouch/follow
- audiotron 15y agoYes, 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 ). :-)
- chrismealy 15y agoI don't get it. What's this for?
- DrJ 15y agowhatever you want it to be baby! for a simple examples there is station. https://github.com/Marak/station https://github.com/Marak/station disclosure, I work @ nodejitsu.
- sausagefeet 15y agoNot really sure how this takes on Erlang, seems much more like a simple message queue for Node.
- moe 15y agoSo, 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 15y agoThe 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 15y ago> 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 15y agoI think you might be mistaken. From: http://en.wikipedia.org/wiki/Crash-only_software 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 15y ago
- alnayyir 15y ago>i/o framework...node.js...take on erlang >nodejitsu No.
- audiotron 15y agoWhy would you say that?
- alnayyir 15y agoDo 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 15y agoConsidering 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 15y agoSame 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 15y agoUgh, 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 http://news.ycombinator.com/item?id=2565609 )
- hussam 15y agoI 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?