I’m very much a believer in using the right tool for the job, a hammer is great tool for putting a nail in a wall, but it’s not so useful when putting a screw in a wall, most people change tools and pick up a screwdriver.
So what the hell do I mean by this we’ll often development team / departments use one tool (or programming language) the given language has its sweet spot but overtime with the advancement of the technology the teams have used the same language (tool) for different types of jobs which are often outside the programming languages sweet spot. There are many reason this happens, it can be laziness, fear of change etc.
If we consider programming languages like my toolbox in the garage I don’t just have a in hammer my toolbox, I have screwdrivers a drill set etc. Everyone of the tools in the toolbox has a different sweet spot and that’s why every good developer has multiple programming languages in their toolbox.
They know the sweet spots for each language and through real life experiences and trail and error they know which programming language solves a given problem best, really good developer/programmers out there know along with the above that the platforms they build there software to work on are changing all the time old assumption are being rewritten everyday!
So keep learning, keep trailing, keep making mistakes. Make sure you learn from not just your own mistakes but others too, it’s the fastest way to learn from my experiences, but what do I know, I make mistakes all the time!