Grant Bourque

My face

Read, write, delete, repeat.

Feed GitHub Profile LinkedIn Profile

17 February 2020

What makes a language useful?

When developers argue about programming languages, a lot of time is spent on the intrinsic characteristics while missing the bigger picture.

Syntax, performance, types. The odd quirks and potential flaws in the design that will likely stay forever because of backwards compatibility. Those are some of the favorite things to talk about and they are easy attributes to compare. A more complicated aspect but still strongly associated with a language itself will be the surrounding community. While the supremacy or hatred of languages is debated with great passion, the discussions seem kind of unnecessary and I suspect have a good amount of motivated reasoning behind them.

In development, it is all about the right tool for the job and anything that can get it done can be the right tool. So language characteristics can make a difference, but knowledge and experience with those characteristics can be more important when it comes to a developer’s productivity. After familiarity evens things out, I think libraries/packages/3rd-party dependencies that close the gap between the functionality the language provides and the feature to deliver is what makes the programming language most useful. The niches a language serves are typically explained more by a popular package than anything to do with the fundamentals.

With that framework in mind, it is easier to see why some languages people love to hate continue to thrive with ongoing development while others that seem to be intrinsically better designed fail to catch on. The free/open source output in development environments should be better appreciated for the practical impact it has over internet arguments. If you care deeply about the success of a particular language, find how you can contribute to the success of particular use cases through libraries.