Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's the funny thing modern Node is surprisingly usable and if using TS has very advanced tooling.


It's incredibly easy to throw stuff together in Node.js, it's much harder to maintain over time. TS helps with this but you still run into really hard to diagnose memory leaks (mostly in 3rd party packages written in C++, but sometime in Node core itself). The tooling for these type of issues is really poor in my experience.


My main concern with node is how fast everything moves. Try to maintain a project that started with es5, then migrated to es6 (but some legacy code is still es5), then added some es2017 and now is adding slowly typescript to the monster, and all of this in just 3 years!

Things become a mess in no time, tooling changes constantly, and maintaining legacy code while developing new parts with current best practices helps you build a Frankenstein in no time.

(and don't even mention about coffee, or it'll make me start ranting about the move from coffee to es6 and now TS!)


I don't get this.

No one forces you to upgrade your perfectly functional es5 code to es2015, es2017, or typescript.

Yes, node moves fast and new features are introduced, but everything is largely backwards-compatible. You don't have to incorporate every shiny new feature, framework, or tooling.

If you do so by choice, this rant is rendered meaningless.


> (...) developing new parts with current best practices (...)

I sincerely suggest that you stop doing this. If JS folks had 10% of the "don't fix what isn't broken" philosophy of the Python developers who were presented with v3 as the future, we wouldn't have any of those "js fatigue" posts.


The secret is to rely on as little npm packages as possible and if you do, rely on very very popular ones.


Which applies equally well to Ruby, Python, Go etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: