A few years ago recruiters were all on the lookout for “polyglot” developers — people who could program in more than one language. This seems to have waned, perhaps rightly so, but I do think there is great value in knowing several programming languages. Learning even one extra language broadens your horizons.
- The problems you solve are limited to JS problems. You probably do lots of web development, and not much embedded programming, for example.
- You aren’t seeing the full developer landscape. Did you know that 25% developers use Linux as their primary operating system? It’s installed on their laptops and that’s what they use to surf the web, read emails, write code, run apps. As a web dev you would be forgiven for thinking that everyone uses a Mac. In fact Linux and Mac each have 25% and Windows gets 50% of all devs.
- You run the risk of solving problems in a particular way. JS is great for event driven programming but that doesn’t fit every domain (for example writing an installation script in JS is more fiddly than in other languages.) Functional programming is having an influence, but many JS developers are still focused on objects, side effects, and imperative programming, unaware of the troubles they contain. You concentrate on unit tests, but may not have heard of generative testing.
Learning a new programming language isn’t difficult, it just takes time, and ideally a non-trivial project to work on to turn theory into practice. I think companies should offer this to their developers as part of their career development. It’s time we concentrated more on good software engineering and less on defending our choice of programming language.