Drew Crawford’s response to James Coglan's post about Node.js and Promises. (And yes, it has the same title as Mikeal Rogers' post — vide infra…) Also long, also worth reading. His
promises : callbacks :: for-loops : while-loopsanalogy may or may not be completely appropriate, but I thought it was reasonably illustrative of the point he was trying to make: concurrency is hard and you’ve got some choices and trade-offs to make.
Mikeal Rogers with a well-reasoned response to James Coglan's bit about Node.js and Promises. There is this bit right at the front though:
That success is measured in two parts: the absolute number of modules and the degree of compatibility between those modules.
The part that makes me bristle? "The absolute number of modules." With no definition of what that means. The total number of packages listed in npm? Active packages? ("Active" defined how?) Popular packages? ("Popular" defined how?) A huge number of orphaned packages is not necessarily healthy — but having not taken a census, I'm shooting from the hip there. Obviously callbacks are not holding back Node's popularity, and it appears as though it's not holding back developer productivity, but there's always been something a bit… "smelly" about them.
Ladies and gentlemen: James Coglan:
A function with no return value is executed only for its side effects – a function with no return value or side effects is simply a black hole.
Callback hell. (Warning: It's a (very) long post.)
At The Mozilla Blog. I'm intrigued by this, but I'm also like: "What do I do with this?"
By Alex Sexton. Thorough. If you're doing even half of this you're probably doing OK.