19

every good dev I know says Node.js is bullshit, but no one will explain precisely why :/

Comments
  • 7
    Maybe they don't know why? It's easy to hate on something different.
  • 1
    You do realise that if you're reading this, it's most probably on some-js.
    Devrant is not a native app.
  • 2
    npm !== node

    Most people I met who hate on node either didn't work with it or hate the "many small packages" approach of the npm ecosystem and the "someone else's code is always better" fallacy it encourages. The "is-negative-number" package is one such example.

    In my humble opinion, node is very good for its use cases, but npm had it's flaws it will probably not recover from (due to backwards compatibility).

    With ES modules, for example, the node world will become divided in "old" and "new" packages.
  • 6
    I think NodeJS is great. It has a few very bad things about it, but it's still great.

    So bad, bad things:
    1. Most modules work async. Which means that everything you want done in sequence (read something from a file, then write it into a db, then output the new ID to the browser) will have to be done in a chain of callbacks. It gets ridiculously dirty, unless you are very experienced and know libraries that can make it look more readable when using them, or have enough experience to design your code better.

    2. Bootstrapping a scalable web app is more difficult than any other platform that I've worked with. You either have to learn 4 more languages and a completely new programming paradigm, OR spend hours adapting simple frameworks to suit your scalability needs. So far I haven't found a solution that requires a shallow learning curve, 5 minutes of bootstrapping, and good extensibility.

    3. The community, with their NPM dependency hell, and heavy usage of MongoDB everywhere.
  • 1
    Because they think everything is bullshit when something shinier comes out.

    They are not devs, ignore them...
  • 5
    @jschmold I don't understand. You can write shitty code in C, Java or any languages. Just because you will be using those languages instead of nodeJS doesn't mean you will end up with well documented, well-written code.

    Also, in that logic, we should all be coding in C or very low-level languages. Writing node code also requires understanding. You can spin up a small server with node easily. But if you are writing high-performance node server that needs to handle thousands or millions of requests, you will require a deeper understanding of the node API too.

    High-level languages like node are there so that server architect and developers can focus on structuring a highly scalable and reliable server side code.
  • 0
    It's the node community that sucks. This is because NPM.
  • 0
    It's trendy to hate JS. You really didn't know that?

    Most reasons I've heard is something a 6-year old kid would give for why they wouldn't clean up their room. Just because every new developer uses it or it's not a low-level language. I also have heard legacy reasons like callback hell and forced use of jQuery and stuff like that.

    Just ignore them. If you know what you are doing you would just write the code you want and optimize it afterward. Maybe even write only some part in JS and some part with some other language. Languages are tools. Choose whatever you want or whatever you are expert on.
  • 0
    @jschmold and that's why it's compared to php (as I expected, didn't know for sure)

    Despite my namesake, I think my [relatively thorough] expertise in PHP will give me enough job security for the forseeable....so what server side language should I focus on next everyone? Bonus points if it gives me some footing in the [Seattle area] gamedev sector
  • 1
    Probably they use javascript or are afraid of JavaScript. It used to be such an awkward language. I just switched to use typescript with node and it is truely great.
  • 0
    Nice. I've done some light flirting with py already. I can def dig it
  • 1
    @Alt-Grrr to be fair, using the tool that you know best to get the job done is quite a good argument.

    While one learns a new platform, the other would have finished the project on a platform he's well familiar with.

    I get that one should never pass out an opportunity to learn something new if it's relevant, but we should also consider the fact that time is a limited resource.
Add Comment