This story is pretty funny. (also notice the discussions on Hacker News) The package manager for node.js is npm. Due to a bug regarding security certificates, npm stopped working for a bunch of users.
I’m amused by the way people say “Node.js is cool because it has a package manager!” Almost every modern language/OS has a package manager, such as CPAN, PEAR, apt-get, and yum. One problem with npm is that lots of the packages are junk. Lazy programmers use someone else’s buggy package that meets 80% of their needs, rather than writing their own thing that meets 100% of their needs and, if you’re competent, bug-free. Seriously, people are using packages when rolling your own would only take a couple hours. It takes more than a couple hours to figure out how to configure the package and use it properly and then debug it when it doesn’t work right.
I already wrote about the maintainers of node.js acting like spoiled children. Now, the maintainers of npm are doing the same thing.
Someone posted a comment saying “If you don’t manage npm properly, someone is going to fork it.” That comment was censored on the npm website.
I have zero tolerance for censorship. On every forum where someone censored one of my comments, I stopped contributing. There’s no point participating someplace where you aren’t respected. For example, one of my comments was once censored on Joel on Software, I stopped contributing, and that forum is dead now. That’s one of the big advantages of having my own blog. Nobody can censor me here. My policy is to allow all comments except for obvious spam.
When the node.js and npm people censor people for disagreeing with them, that’s a clear signal that you shouldn’t contribute to their project or use it.
The person whose comment was censored was Rob Colbert. Initially, I had some sympathy for him. However, he’s also a twit. He had a programmer job, and tried to convince his bosses to use node.js. When they (correctly) refused to start using node.js, he quit in protest. What makes him a twit is that he has no savings and now can’t pay his rent, and he’s refusing to take a job where he can’t use node.js.
Also, he’s running his blog off a residential DSL connection, rather than spending $5-$20/month for proper hosting. My Linode is worth $20/month, especially since the Linux administration experience is useful at one of my current jobs.
He also was complaining “Why aren’t any responsible people contributing to node.js? Why do most npm packages suck? All these clueless people are making node.js look bad, and making competent employers reluctant to use node.js.”
There’s a simple answer. When a community is controlled by children, the sensible people stay away. A serious programmer would stay away from the retarded idea of single-threaded Javascript on the server and callback spaghetti continuation-passing-style. The serious programmers have better things to do, so only children contribute to node.js.
There are a large group of people working on node.js (until the next fad), because they follow the hype and not the technical merit. The people who are capable of evaluating technical merit know to avoid node.js. That’s two reasons node.js can’t ever compete with an adult language. First, the community is controlled by children, which smart people notice and stay away. Second, it’s a fundamentally stupid idea, and even if competent people were working on node.js, it’ll never be better than something that isn’t based on a retarded idea.
The weird thing is, in my performance benchmark test, Javascript/V8 came in third, behind C/C++ and Java but ahead of Python and PHP. I still prefer PHP, but now I know to use an external C/C++ program for anything computation-intensive. If I ever run into a situation where PHP can’t perform well enough, I’ll switch to C/C++ rather than one of the inferior solutions.
Incidents like this and Ben Noordhuis show that node.js is run by children and not adults. I’ve already concluded that node.js is a waste of time. Foolishness like this shows that I made the right decision to not invest any time in node.js.
Why are you surprised about v8 beating php and python?
http://stackoverflow.com/questions/5168718/what-blocks-ruby-python-to-get-javascript-v8-speed
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=python3
I thought that PHP was mostly a wrapper around the C standard library. I didn’t realize there was that much extra overhead.
I did seriously consider HVVM (Facebook’s optimized PHP), but that’s probably not worth my time.
My plan is still to use PHP, and then switch to C/C++ when performance is an issue. Now I know to not do anything calculation-intensive in PHP.
There was another amusing bit at work. Doing calculations on the server in SQL isn’t really much faster than doing it on the client (in Javascript)! The only downside of doing it on the client is that it takes awhile to transmit the data. I blame the lousy AWS instance. I noticed a 100% variation in the amount of time a calculation takes! (i.e. 40-80 milliseconds)
I did some more C/C++ lately, working on the Video Poker program. I forgot how nice it is to use a strongly typed language. It’s so much easier to debug when errors show up at compile-time instead of run-time. Lots of nice little things like “unused local variable warning” that you don’t get in Javascript and PHP.