How to choose a programming language

I was watching a video, titled: “The future of the fullstack developer? Taylor Otwell interview” by Justin Jackson. One of the topics that the creator of Laravel, touched on was the difference between what the online community of development looks like versus the real world. In one snippet he said:

“On Twitter it feels like everyone’s building React Frontends, they’re calling GraphQL APIs or Firebase APIs. But I know deep down, the reality is 99.9% of web applications are not that.”

It made me realise that it’s getting harder and harder to choose a language and framework to stick to, especially with the culture of over representing one language while saying that another is “dead”.

So whether you are planning to start a new project or you’re a beginner looking for a starting point, hopefully this post will help you in choosing the right language.

Pick Something Well Backed

While a well backed technology doesn't point to a perfect tool, it does point to a tool that is well maintained, documented and one that is not going to drop off the face of the Earth anytime soon.

Another thing you should look for is a language that has large interest. But not just public opinion and the amount of people using it, but the amount of real life projects that implement it as well.

Hype plays a huge factor in what gets represented on social media and becomes public opinion. It’s not uncommon for the founders and contributors of technologies to reach out to content creators or even sponsor Bootcamps to get their project out there.

Public perception and social media might point to one language or framework being used by everyone when in reality the majority of the web is still powered by PHP, Ruby and C#.

Type of Application

Another big consideration is the type of application you are going to build.

Most of the top languages can all basically do the same things. For example, you can use C# for Machine Learning, Python for Web Development and JavaScript for mobile applications.

However, some are best suited for certain tasks. This comes down the general eco-systems, community of developers, existing libraries and available examples out there.

So while you can do machine learning and data analytics with C# in the .NET eco system, you’ll have a better experience building it in Python where the eco-system is more fleshed out.

The same concept applies to web development, mobile app development, gaming development etc.

How Does It Fit Into Existing Stacks

A stack essentially is a collection of languages, libraries and frameworks that come together to produce an end result.

For example one of the most popular stacks, MERN, stands for:

  • MongoDB (Database)
  • Express.js (APIs)
  • React (Frontend)
  • Node.js (Server)

Each of these technologies are designed to work well with each other, and there’s a lot of resources, documentation and developers that use this stack to build out their applications.

You don’t want to pick an option that exists in a bubble. The language you choose should have a good ecosystem (libraries) to communicate with a database, or a communicate with an API or with a gaming engine... Whatever your needs are.

Consider you location

Another major factor is picking the right tool is your location.

I live in South Africa and I recently made an interesting discovery. Johannesburg (where I’m currently based) is located in the Province of Gauteng and Cape Town is situated in the Western Cape.

After a quick search on Google Trends, you’ll see that JavaScript (more popular with startups) has a larger amount of searches in the Western Cape, while C# (more common with larger enterprises) has more searches in Gauteng.

JavaScript

javascript-how-to-choose-a-programming-language.JPG

C#

csharp-how-to-choose-a-programming-language.JPG

It makes sense, as there’s a lot of newer startups that are popping up in Cape Town while the more established, enterprise companies are found in Johannesburg.

Choosing the right language in the region that you are in is essential because if you pick a language that nobody really uses, you will have a harder time finding opportunities in the way of employment or potential prospects to add to you team or project later down the line.

Conclusion

By considering your location, your potential tech stack, the backing that the language receives as well as the type of application you hope to build, you start yourself off on the right foot when choosing a language to learn.

As always thank you for reading, if you found this post useful, please follow me on Twitter for more Angular and development tips and check me out on GitHub. Thanks for reading and have a great day! 😄