I've never been unhappy in any web framework in any language except for Plone. The NodeJS ecosystem is not without its problems, but you can absolutely write great software in it.
Comparing Django to NodeJS itself is a bit of an apples to oranges comparison though. Even something like Express or Koa will come without an ORM. Django will certainly hold your hand a lot more through the process.
It seems like the biggest issue with the NodeJS ecosystem is that everyone wants to roll their own thing, rather than using the renowned incumbent which works perfectly well. In some ways, this is actually an indication of how deceptively easy it is to work with NodeJS — people really believe they can replace something that has hundreds of years of man hours behind it in a month.
I must second this. I've always viewed frameworks as a joy to my work, as long as there is no magic involved. I develop quite a few mini apps and I find less opinionated frameworks like Express for Node or Flask for Python an absolute dream. The packages on Node can get unwieldy but nothing bad enough to warrant a long term negative outlook.
I wouldn't question this for a second. Nor that some people may be extremely happy with it. But me personally, for my most common use case (end-to-end monolithic web apps, complete with client and back-end) it feels like it places a higher cognitive burden than the alternatives, due to all the things we're mentioning (eg, lack of an established ORM)
> Comparing Django to NodeJS itself is a bit of an apples to oranges comparison
Well, yea, but that's the point of my whole comment - Node could have a Django or Rails equivalent after ten years, don't you think?
> It seems like the biggest issue with the NodeJS ecosystem is that everyone wants to roll their own thing
Completely agree - it's almost an ethos thing. Though I'm not sure if it's a conscious "ethos" or rather having to due with the ecosystem and developer population being disparate and disjointed - anarchical, maybe?
Again, not questioning that there are some really good devs out there that are deliberate and successful in rolling out their own thing. I also think however there's a group of devs who think that they want to roll their own thing, until they have to face the consequences down the road and wish they hadn't.
> how deceptively easy it is to work with NodeJS
Yes, that's a big point in my comment. To add: I have a formal education in software engineering but like many others had to pick up web dev on my own. I bought into the Node.js "one language to rule them all" hype, only to find a much steeper learning curve than I would have had otherwise (mainly due to the async model and the lack of a batteries-included framework), without much of a payoff for it.
I feel no regrets, my path has been what it's been, I've learned a lot and I'm glad to have Node.js as an option in my toolbelt since it's so prevalent and there are good use cases for it. But if I had to recommend a young dev where to start I'd probably point them elsewhere.
As for me going forward I see myself sticking to Django and exploring things like Elixir/Phoenix, Swift, Go or F#, and only coming back to Node if the situation really calls for it or maybe, like I said previously, if there's a batteries-included framework that reaches maturity.
> Well, yea, but that's the point of my whole comment - Node could have a Django or Rails equivalent after ten years, don't you think?
It's not that such a thing hasn't been developed, but that by the time such a thing gets developed (for example: [0]), NodeJS devs have already decided they don't like gulp (even though just last week gulp was the new thing vs. grunt), they like webpack; they don't like AngularJS, they like React (or VueJS now); etc.
Almost feels like the JS ecosystem is plagued by people who want to rise to dev stardom by making the next big framework, and they spend a LOT of time trying to convince people their thing is the next best thing since sliced bread. I've seen grown up devs abandon stacks that were perfectly fine to spend years migrating to the new thing — granted this happens more at larger companies where resume building sometimes overtakes business needs.
Five years ago I might have agreed with you. I think it's pretty telling though that the techs you just listed have now been around for longer than Angular or Gulp were ever popular (at least according to my recollection). Seems to me that the churn has slowed significantly; people are generally happier with React and Webpack than their predecessors.
Comparing Django to NodeJS itself is a bit of an apples to oranges comparison though. Even something like Express or Koa will come without an ORM. Django will certainly hold your hand a lot more through the process.
It seems like the biggest issue with the NodeJS ecosystem is that everyone wants to roll their own thing, rather than using the renowned incumbent which works perfectly well. In some ways, this is actually an indication of how deceptively easy it is to work with NodeJS — people really believe they can replace something that has hundreds of years of man hours behind it in a month.