He shouldn't have done it. He's saying some outrageously bizarre technical things. For example, he claims a big advantage of node libraries is their "purity", but it's pretty obvious that he doesn't know what that word means¹. See: http://www.reddit.com/r/node/comments/h1m2o/i_am_ryan_dahl_c...
He also says he wishes JavaScript didn't have garbage collection, like C. He says, "Too many people ignore the "no garbage collection" feature when designing languages." But javascript's object model really wouldn't allow manual memory management.
The final weird thing is talking about Akka in node, but admits he's had limited success. What I don't think he gets is how the scheduling for actors works. It's actually an alternative paradigm to the callback soup that Node uses.
¹ When we're talking about a programming language, it's not unfair to ask that we not mix up terms already used in the programming world.
You're being voted down because they are not actually that outrageous.
"purity of non-blocking libraries": the context makes it explicitly clear he is not talking about side effects and referential transparency. If I were more mean spirited I might say that you don't understand how to parse a sentence or that words can take on different meanings in different contexts. I'm certain that's not actually true but that is effectively the conclusion you came to in the same situation. Pretty silly right?
If you followed the Node mailing lists you'd see that there are questions about allocating gigabytes of memory with Node, and Ryan has to shrug and say "Sorry, Node isn't for you because v8's memory management doesn't facilitate such use". Also he mentions that he likes to win benchmarks and the GC gets in the way of that. Whether or not winning benchmarks is useful is debatable, but given that constraint it's obvious you don't want GC. He wants a scripting language without GC not JavaScript specifically. Give the guy some credit, he is a C programmer by trade.
Didn't read the stuff about Akka and can't comment on that but after the first 2 criticisms I'm not going to waste my time.
> If I were more mean spirited I might say that you don't understand how to parse a sentence or that words can take on different meanings in different contexts. I'm certain that's not actually true but that is effectively the conclusion you came to in the same situation. Pretty silly right?
Ahh so let's just play word games then? Let's just call callbacks "allocators of effect" and functions "parameterized callbacks" and see how clear our writing is. Even if we ignore this gaffe, it implies Ryah thinks the world is struggling under the burden of blocking libraries. "Oh no," our hypothetical wage slave might cry, "this library unexpected uses a thread. Now my job is impossible." It's strange to even claim that a feature in 2011. Maybe Node's needs a Paul-Tyma-figure to come snap them out of their implicit assumption that asynchronous libraries are always faster; they are not.
But what he said wasn't true. You can write loops in Javascript, so libraries could enter into infinite loops which would stop the machine from progressing.
> Whether or not winning benchmarks is useful is debatable, but given that constraint it's obvious you don't want GC. He wants a scripting language without GC not JavaScript specifically.
He was not asking or direct allocators and deallocators, if you read the quote, he was talking about removing memory management entirely. I'm not sure how Node's functions could lexically close over anything unless you start introducing a lot of new notions that current node programmers don't care abut.
> Give the guy some credit, he is a C programmer by trade.
I want to. I really want to. But then he writes blog posts like this (http://antirobotrobot.tumblr.com/post/5109182039/overlapped-...) and severely undermines my confidence in him. When he was just playing around with a side project I thought it was a cool hack. Now that he's got a corporate backer it's a little surprising he isn't bothering to up his game.
> he claims a big advantage of node libraries is their "purity", but it's pretty obvious that he doesn't know what that word means
He said: "purity of non-blocking libraries" which has nothing to do with purity in the functional sense of the word, but rather that there are no blocking libraries. "Pure" has several meanings and I don't see how you can mix them up with the context given here…
> But javascript's object model really wouldn't allow manual memory management.
Huh? Why? How can anything not allow manual memory management?
> What I don't think he gets is how the scheduling for actors works. It's actually an alternative paradigm to the callback soup that Node uses.
He wrote two sentences that he wanted "something Akka-like" and that he wanted to "connecting Akka actors". Very vague statements from his side; how can you claim he don't understand how it works?
> He said: "purity of non-blocking libraries" which has nothing to do with purity in the functional sense of the word
I'm sorry, but the word is bizarrely used here. I challenge you to find a single use of this word in this sense in the literature of our profession. I'd be surprised if you could. If he had not used that word, the sentance would have been clearer.
And it's not even true. A library could contain an infinite loop, which will do what blocking does.
> Huh? Why? How can anything not allow manual memory management?
Languages with closures and callbacks have a pretty damn hard time with explicit memory managment. And please note that he didn't say he wanted some explicit memory management features, he said he wished Javascript didn't have garbage collection (like C). This isn't, "I sure do wish I could manage some buffers."
> Very vague statements from his side; how can you claim he don't understand how it works?
Because Akka's and Erlang's dispatch model is inimical to the way Node.js does business.
It's not part of the culture I think. IAMAs are a reddit thing. My educated guess is that if it was a less notable person, it would be downvoted and flagged into oblivion.
The parent said AMA's (well, IAmA) originated on reddit, whereas I contend that, while they may have risen to prominence there, that's not where they originated. perhaps I should have said, "Not to nitpick, but..."
He also says he wishes JavaScript didn't have garbage collection, like C. He says, "Too many people ignore the "no garbage collection" feature when designing languages." But javascript's object model really wouldn't allow manual memory management.
The final weird thing is talking about Akka in node, but admits he's had limited success. What I don't think he gets is how the scheduling for actors works. It's actually an alternative paradigm to the callback soup that Node uses.
¹ When we're talking about a programming language, it's not unfair to ask that we not mix up terms already used in the programming world.