Why do people still use Python, C, C++, C#, and Java when there is Go?

I know and use several programming languages in my software and firmware development projects. There is a core set that I use most often, because they happen to be the right tools for the job. Early on, I learned several languages which I almost never use, because they aren’t as good a fit for the kinds of projects I’m working on.

I personally have nothing against the Go language specifically. In fact, I have nothing against any programming language (except for a few issues I have with JavaScript).

These days, my time is increasingly valuable. To learn a new language thoroughly, there needs to be a compelling reason to do so. The fact that a language is new and bright and shiny and has a lot of vocal supporters doesn’t mean that we all should drop everything and switch to it, or even necessarily take the time to evaluate it. I learn new things (including new languages) all the time – it’s just a fact of life in this business, the learning never stops. But I have to carefully choose what I spend time learning, because at the end of the day, I need to be productive. My employers and clients need actual results. I learn a new programming language as the need arises, when there is a compelling reason for it.

Programming languages are chosen for projects for a variety of reasons: availability of development tools for the target platform, integration with an existing code base, existing knowledge of the development team, portability requirements, performance requirements, available skills in the new-hire talent pool, tradition, management directive, customer directive, available libraries and frameworks, design paradigm support in the language, etc.

There are always new languages popping up here and there. Some will forever remain niche, some will catch on, and some may alter the landscape of the software development world forever. Have a look at this programming language influences network, and when you get to that page, zoom in to see more and more languages. Then consider the time it would have taken to thoroughly learn each of these languages soon after they appeared, and extrapolate that into the future – because new languages will continue to be added. Even if you learned them all thoroughly, you would end up using only a small subset of them for real-world, non-trivial projects.

Leave a Reply