I know Alex has heard me say this before (hi Alex!), but blaming a language or stack for your problems is like blaming the English language for Twilight.
While I have sometimes seen situations where a stack or language seems to hold a team back, often there is a deeper problem behind it - usually that the team doesn't actually understand the stack they're using. The best developers are the ones who aren't content with a cursory understanding of the tools they use; they always seek to learn the tools better.
I've made it a goal to always try and learn things at least one level deeper than where I actually work. For example, the more I get into Node development, the more I have tried to learn about the internals: the module loader, the V8 parser/compiler, etc. I don't have a very deep knowledge of them, and I don't use that knowledge every day, but that deeper understanding allows me to write better code. This strategy has served me well, and has allowed me to become proficient in multiple stacks (especially since, once you peel away the superficial API, most tools in a given problem space are pretty similar).
I wish we could all learn to stop blaming our tools for our own crummy code. While tooling can make a big difference, having the fanciest knives in the world won't make me a better cook until I've studied and practiced all of the other things that go into preparing a meal.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.