5 ms·
Why is node.js a mess?
by jackweirdy 13y ago
Why is node.js a mess?
- outside1234 13y agoIt isn't. But its fun to say with all your hipster garb on.
- wambotron 13y agoWait, I thought node users were hipsters? Now node haters are hipsters as well? .. Is anyone not a hipster?
- laichzeit0 13y agoCompared to e.g. Java API documentation, I find node.js documentation to be an amateurish attempt at best.
- smacktoward 13y agoIn defense of Node (God, there's a phrase I never thought I'd find myself writing), it's also much newer than Java is. Given ten or fifteen years for people to work on them, the docs almost certainly would get better.
- crono5788 13y agoTo be honest, the Java API documentation is pretty stellar. I am/was a Python developer, and I remember hearing the claim that Django has great documentation. I don't know if I'm spoiled by Java or what but if Django passes for "great" then I think Java's docs should pass for legendary.
- integraton 13y agoJavaScript is a messy language, but ignoring that, the module ecosystem is a mess. There are many duplicated modules, many of them done in a half-assed manner by inexperienced developers and rarely updated. For example, the Node community absolutely loves MongoDB for inexplicable reasons, and support for other datastores is terrible. Despite Postgres supporting hstore for years and Node being popular for years, the two hstore modules are "node-postgres-hstore" (7 stars on github) which hasn't been updated in 1 year and "node-hstore" (17 stars on github) that hasn't been updated in 2 years. Everything I've seen indicates that this is typical for modules in Node. Meanwhile, Ruby and Rails support Postgres extremely well at this point. Similarly, node has several migration libraries, all of which are pretty limited. One of the popular ones, "node-migrate" by one of the most prolific node module developers, still has an open issue from 2 years ago about using timestamped migrations, with the developer commenting as if the concept is news to him (https://github.com/visionmedia/node-migrate/issues/2 https://github.com/visionmedia/node-migrate/issues/2)
- clavalle 13y ago>There are many duplicated modules, many of them done in a half-assed manner by inexperienced developers and rarely updated. This statement accurately describes the world of Ruby gems.
- integraton 13y agoThat might be fun to claim, but the reality is that it's 2013, not 2007. The Ruby ecosystem is much more robust at this point.
- dragonwriter 13y agoThe greater robustness means that: 1. There are more high quality modules, so if you look hard enough, you are likely to find one for your tasks, 2. There is an even greater number of duplicative, half-assed, and poorly maintained modules than there were in 2007 (some of which existed but weren't half-assed or poorly maintained in 2007), and those are still quite often the first ones you'll run into when looking for something that does what you want.
- julianlam 13y ago> For example, the Node community absolutely loves MongoDB for inexplicable reasons, and support for other datastores is terrible Right, because everybody uses Postgres, right? All of the major database vendors are supported quite well, and just because hash storage in Postgres (which is already a stretch) is not as well maintained doesn't mean "support for other datastores is terrible).
- kintamanimatt 13y agoNode.JS is great when you simply need to move bits from disk onto the network with minimal processing in between and your app is otherwise I/O bound. This is what gives Node.JS its superficial appeal. The trouble comes when you need to write anything of complexity and you find yourself in callback hell and your code becomes difficult to reason about at an unreasonable rate. This makes adding new features to any large code base a ghastly nightmare. JavaScript is also a really shitty, poorly conceived language with cruft galore, and this compounds the hell of event-driven programming. I dropped Node.JS because it made me hate programming.
- briantakita 13y agoI've found that, if done correctly, Javascript, especially with a module system like common.js, scales with complexity extremely well. It requires a different approach than OOP that most people are used to but results in very loosely coupled code. i.e. a power screw driver is a "terrible" tool when used like a manual screwdriver.