I went on a 2nd interview at the startp that was using node.js. This was a more technical interview. I was not impressed with node.js.
Here’s an amusing excerpt.
FSK: Have you ever used node.js before this project?
FSK: Why did you pick node.js?
Fool: It’s the latest trendy thing!
That’s the wrong answer. “It’s the latest hot trend!” is never a valid reason for choosing a language or framework.
Essentially, he had bet the success or failure of the startup on node.js. He didn’t see the risk. “Using the latest trendy thing is never a mistake!” Unfortunately, I’ve been around the block a few times, and know better.
He had the “abused productive” personality type and should have known better than to be fooled by hype. However, the psychopath-in-training “idea guy” may have emotionally bullied him into using node.js. It’s extremely pathetic that someone with an MIT CS PhD doesn’t actually write code, because it’s “beneath him”. If you have a CS PhD, you should be able to make version 1.0 by yourself in a month. If you can scam other people into paying you to be their “idea guy”, then why not, if you can get away with it. It’s pathetic that someone would try than and that people are dumb enough to fall for it.
He also pointed out that node.js is unstable. Some node.js libraries are good and some suck. You don’t know until you try them. That’s a big negative. That’s why you don’t use the latest trendy thing. There also are a lot of big new node.js language features coming soon. Why are you using an incomplete language/framework?
He was a former Rails user who upgraded to node.js. That puts him into the idiot category. I’m very concerned that node.js gets its users based on hype and not merit. There are plenty of idiot VCs willing to bankroll stupid things. If you throw enough money and people at something, you might get it to work, even if it’s a stupid plan. Just because a lot of people use something, doesn’t prove it doesn’t suck!
There’s also a self-selecting community. When you have a bunch of people who are dumb enough to chase the latest trend, then the competent people tend to stay away. The idiots give each other positive feedback and it becomes sustainable, even though it sucks.
He also said “Rails changed a lot since 3 years ago. It’s a lot better now.” PHP only has minor changes and enhancements and bugfixes, compared to 3 years ago. Is that an argument in favor of PHP or Rails?
He had been working on the website for a month. He had two barely-implemented pages. I could have made something better in one day with PHP/LAMP. It was pathetic how little he had successfully implemented, but I didn’t say that.
There was another hilarious moment. One page had a bug, and the entire server crashed! If you use node.js and have an unhandled exception, the entire server crashes! In PHP, if you have a bug on a page, then only that page fails.
I prefer to have an obvious crash when there’s a bug. First, that gives 100% definite feedback of the error. Second, you don’t want the server continuing in an indeterminate state. If you catch the exception, ignore it, and keep going, then all sorts of crazy stuff can happen. “The entire server crashes if there’s a bug!” is a huge argument against node.js.
He had a ton of code, for very little actual working website. That was disappointing. With node.js, you’re forced to clutter things up with callback functions everywhere.
When you’re writing framework-compliant code, it creates the illusion that you’re working when you’re really just wasting time, due to the cost of your stupid framework/language choice.
I’m mostly convinced that frameworks are only attractive to idiots. It gives them the illusion of accomplishing things when they’re really wasting time. On the other hand, a lot of potential employers reject me, because I don’t have experience in the specific framework they’re using.
Here are some buzzwords he was spewing. Here’s a tip. If you hear someone religiously citing these things, it’s an indication that they’re cluless.
- RESTful design
- test driven development
Model/controller/view is a fancy name for an obvious idea. The problem comes when you start using a framework. You have to generate framework-compliant code, in addition to your application logic. No matter what framerwork you use, at some point you have to write the code for your specific application. When you use a fancy framework, you can spend a lot of time on the framework, without spending time on important things. For node.js, the callback function style is a huge overhead. It also leads to a spaghetti mess.
He probably was using the psychopath-in-training “idea guy” as his role model for how an intelligent person should behave. That’s how intelligent people get converted to the dark side. I’ve seen evil people pretending to be intelligent. This is the first time I noticed an intelligent person trying to act evil, because he had picked an evil person as his role model. He probably was thinking “If only I could be as cool as that useless ‘idea guy’!” As a gullible intelligent person, he’s easy pickings for psychopaths. A psychopath would be eager to hire that idiot, to help implement their vision. He’s nonthreatening to someone who’s faking it. He’s an intelligent person trying to be a better liar, but he has the wrong personality type and will never be a world-class liar. I can see that as a lucrative market niche, “intelligent but easily manipulated”, but I’d never do that.
I should have offered a challenge. “I’ll get more implemented by myself in PHP in a week, than you’ve done in a month of node.js.” However, he probably would have been offended and refused to hire me, if I said that.
Those people actually seemed less clueless than the other startups I interviewed at. At least they were paying cash instead of equity-only. However, using node.js seemed to be stupid. He might get it to work, but I don’t see it ever being as nice as what I could do in PHP in much less time. If I were investing my own capital in their startup, I’d be seriously concerned about their ability to build a good website *AND* also their ability to attract customers, even if they did have a working website.
Even if they get something that sort of works, that doesn’t prove that using node.js was a good idea. There was a very high effort-to-results ratio.
Node.js definitely seems to be about hype, more than substance. I was not impressed. However, I’d still take the job, if offered. I doubt they would hire me, because it was too obvious to me that node.js sucked. It’s probably a bad idea to work for another doomed startup, so it isn’t much loss.