9
tizio
8y

Node: The most passive aggressive language I've had the displeasure of programming in.

Reference an undefined variable in a module? Prepare to waste your time hunting for it, because the runtime won't tell you about it until you reference a property or method on the quietly undefined module object.

Think you know how promises work? As a hiring manager, I've found that less than 5% of otherwise well-experienced devs are out of the Dunning Kruger danger zone.

Async causes edge cases and extra dev effort that add to the effort required to make a quality product.

Got a bug in one of your modules? Prepare yourself for some downtime because a single misplaced parentheses can take out the entire Node process, killing unrelated pages and even static file hosting.

All this makes for a programming experience that demands much higher cognitive load, creates more categories of bugs, and leads to code bloat/smell much more quickly than other commonly substituted languages.

From a business perspective, the money you save on scaling (assuming your app is more compute efficient under Node) is wasted on salaries and opportunity costs stemming from longer dev time, more QA, and more frequent outages.

IMO, Node is an awesome experiment, a fun language, a great tool for specific use cases, and a terrible fucking choice for an entire website.

Comments
  • 4
    Welcome aboard devrant! I don't use Node, but you obviously have enough to have a proper rant going :)

    Kind of wonder why the post was downvoted though.
  • 3
    We use nodejs and debugging is sometimes hard for the reasons you mentioned!

    And a little advice: use exact version numbers in package.json depencies. We wasted many hours figuring whats wrong and it was mongoose that had a minor update. The errors that we got had nothing to do with mongoose and it was very hard to track the bug.
  • 1
    @cahva running into that problem with gulp, except its not breaking anything. Because of very slightly different versions of del on my machine and another, all of the compiled js/css show up dirty on every push.
  • 3
    im building huge VR platform (api, assets parse and stuff) in node.js for 6 months now. Havent experienced any of your problems. Because most of them comes from lack of knowledge.
  • 0
    @mort Yeah I have to agree - you will have a lot of problems when using Node, but only if you don't know what you're doing
  • 1
    have to agree with the two above, have worked in Node for ~2 years, you don't end up having those issues once you learn how it all works and can debug well. it's just like any other languages and framework.
  • 1
    Most of your problems could be solved easy enough, use TypeScript.
  • 0
    @stardust That would be fine, but if you don't have a build chain setup it's a pain to get running...
Add Comment