I’m sure I’ll catch some flak for this from the Node.js community (which does seem to be thriving) but I’m just not seeing Node.js as a viable platform for building web applications. When I say web application, I specifically mean websites. The platform seems great for building small servers and daemons and such, but as a complete solution, I’m not seeing it. “Why?”, you ask? Pretty simple reason, and the reason I see cited often times when explaining why Node.js doesn’t do something, it’s that Node.js doesn’t do much for you. That’s great when you need to build a ground up solution that perhaps has never been done before. But for a website? The website workflow already exists and with Node.js you have to start with clean slate.
The framework-reliance isn’t my only issue at this point, the number of options to solve a single problem was a bit overwhelming, albeit quite impressive considering the age of the platform. With my recent toying around (yes I did toy around with porting a site of mine to Node.js for kicks) I ran into a myriad of templating options, so many that I wasn’t quite sure of which one to go with. Of the engines I researched, they all seemed to have very little traction overall and most of the comparison sites out there only covered a small slice (with not much overlap). The whole thing just feels very fragmented like no one in the community actually talks to eachother before starting a new project (there are quite a few duplicate templating projects out there).
There were a few positives, specifically when it came to workflow. Personally, I always develop locally and fell victim of having to restart the server every time I made a change.
jekyll has an
--auto argument to watch for changes, but
node did not. I did find
nodemon which watches for changes and restarts your app when you save your files. The combination of
forever clears up some of my early gripes with Node.js but definitely feels a bit more like hackery than anything else.
So that’s where I’m at with it, I won’t be using Node.js for a website in the forseeable future and will most likely go with Python for scenarios where I need to build a small server or daemon (old boring technology is often times very stable and reliable, just saying).