@jxhensley And when was that? Lauer & Needham argument is outdated, see "Why Events Are A Bad Idea
(for high-concurrency servers)" Rob von Behren, Jeremy Condit and Eric Brewer. The authors of this video adopt a condescending tone to make a scientific argument, which is wrong. "The greatest obstacle to discovery is not ignorance - it is the illusion of knowledge." - Daniel J. Boorstin
@rnrboy1 Lauer & Needham did not argue for either threads or events specifically, only pointed out that they are different models of the same thing. So when some dork says "events are revolutionary" I can safely ignore them.
@jxhensley Who said events are revolutionary? L & N equivalence argument requires equally good implementations. Von Behren et al. proposed a solution 10 years ago and it is still not very popular today. Why? Now you can ignore the problem if you wish, I don't think anyone will miss your contribution.
This is annoyingly incorrect. The context switch of an OS thread is significantly heavier than that of a function yielding to another. It's unfortunate node.js is convincing people the only interface to single threaded systems is a horrible abomination, modeling itself after Python's twisted. Ugh.
First of all, I'm not a speed junkie... I don't care about perfomance too much but threads involve synchronization and locking, in single-thread model you just don't care. If written properly, you can scale you app by clustering the whole thing multiple times. A little of custom messaging and load-balancing is way easier than debugging threads. This applies not only to node.js but to all single-thread alternatives, including RoR or PHP. But yeah, node.js people are often hilarious :-)
I was enjoying it up until he said LISP. Why does anyone think LISP is a good idea? I was a professional LISP programmer back in the 80's and as the code base grew it produced nothing but tears.
Nested preemption from threads and processes are an entirely different beast when scaling to multiple machines than callbacks (shared memory problems anyone?). I will gladly swap my callbacks that designate a single atomic action to avoid mutexes everywhere to avoid mutation preemption and cache invalidation (though some languages like scala etc. enjoy the ability to avoid this with transactional memory and immutability with threading). Either way, nice video, but without too much on reasoning.
luv it:)
maciekwar 1 day ago
Thank goodness my advanced OS course professor made me read Lauer & Needham so I wouldn't be sucked in by node.js propaganda.
jxhensley 2 days ago
@jxhensley And when was that? Lauer & Needham argument is outdated, see "Why Events Are A Bad Idea
(for high-concurrency servers)" Rob von Behren, Jeremy Condit and Eric Brewer. The authors of this video adopt a condescending tone to make a scientific argument, which is wrong. "The greatest obstacle to discovery is not ignorance - it is the illusion of knowledge." - Daniel J. Boorstin
rnrboy1 2 days ago
@rnrboy1 Lauer & Needham did not argue for either threads or events specifically, only pointed out that they are different models of the same thing. So when some dork says "events are revolutionary" I can safely ignore them.
As for Mr. Boorstin, right back at you buddy.
jxhensley 1 day ago
@jxhensley Who said events are revolutionary? L & N equivalence argument requires equally good implementations. Von Behren et al. proposed a solution 10 years ago and it is still not very popular today. Why? Now you can ignore the problem if you wish, I don't think anyone will miss your contribution.
rnrboy1 1 day ago
@rnrboy1 node.js fanboys. node.js fanboys say that events are revolutionary.
jxhensley 1 day ago
@rnrboy1 also fuck right off
jxhensley 1 day ago
ugh, could you post the script used to generate that video? I can't stand that shitty TTS (plus it takes 1/8 the time to just read it)
funkycoder1 4 days ago
No wonder why the node creator decided to throw in the towel.
emeka1978 6 days ago
At the end, I wanted him to say ClojureScript so bad as a response to LISP.
So funny video!
voodoo36 6 days ago
This is annoyingly incorrect. The context switch of an OS thread is significantly heavier than that of a function yielding to another. It's unfortunate node.js is convincing people the only interface to single threaded systems is a horrible abomination, modeling itself after Python's twisted. Ugh.
seemssogreen 6 days ago
Hey, I'm not the only one that thinks Node programmers are hipsters!
CorbinSimpson 6 days ago 5
non-blocking is the secret in the async sauce
orlandovftw 6 days ago 2
First of all, I'm not a speed junkie... I don't care about perfomance too much but threads involve synchronization and locking, in single-thread model you just don't care. If written properly, you can scale you app by clustering the whole thing multiple times. A little of custom messaging and load-balancing is way easier than debugging threads. This applies not only to node.js but to all single-thread alternatives, including RoR or PHP. But yeah, node.js people are often hilarious :-)
KamilTomsik 6 days ago
@KamilTomsik Why node.js people are hilarious?
svlada 5 days ago
I was enjoying it up until he said LISP. Why does anyone think LISP is a good idea? I was a professional LISP programmer back in the 80's and as the code base grew it produced nothing but tears.
gma683e066736 1 week ago
Awesome... so many choice quotes in that!
Just need some decent voice actors rather than the generated ones :P
ben5945 1 week ago
Yes, this is why I subscribed to this channel. I lost it at the gothic horror story analogy.
kdreibel 3 weeks ago 5
nowdays nodejs is able to run multi threaded with event loops in each thread. how awesome is that?
Noepel 4 weeks ago
@Noepel It is?
dscape 1 week ago
@dscape yup. its called cluster wich is a kernel module in node.
Noepel 1 week ago
@Noepel Check github.com/joyent/node/blob/master/lib/cluster.js#L23
dscape 1 week ago
Nested preemption from threads and processes are an entirely different beast when scaling to multiple machines than callbacks (shared memory problems anyone?). I will gladly swap my callbacks that designate a single atomic action to avoid mutexes everywhere to avoid mutation preemption and cache invalidation (though some languages like scala etc. enjoy the ability to avoid this with transactional memory and immutability with threading). Either way, nice video, but without too much on reasoning.
bradleymeck 4 weeks ago
"Did you just said LISP?" lol
b0n3ZS 1 month ago 5
I'm crying over here. Wow.
DoctorCal 1 month ago
nice add lol.
cptrecon 1 month ago
Hilarious as ever! Damn your vids crack me up. :D
poshko41 1 month ago