Those awful articles about "the best" / "most popular" programming languages"
23 October 2018 | 296 views | Tags: Blog
Sick of low quality clickbait articles about "the best" and "the most popular" programming languages? Even reputable sites play this game. I suppose they do it because "what language should I learn" is a question that every aspiring programmer has to ask. There's a lot of traffic in it, so they keep churning them out.
These articles are rubbish and meaningless.
There is no universal "best language"
Another flaw of these clickbait articles is that they rarely consider the level of real world support for languages. You can go learn the latest and greatest language such as Rust, but will you be able to find contributors for your bleeding edge open source project? How many employers will be looking for people with such skills to join their team?
An example: According to many articles Python is great and people really like using it, and actually this seems to be mostly true. And there are a couple of solid, well-known Python-based web development frameworks (Django, Flask). But as far as web development goes only about 1% of websites are actually using Python, whereas the hopelessly unfashionable PHP accounted for around 80% of all websites in 2018 and is available on every mainstream web hosting account. So which language should you learn for web development? It's a no brainer.
But if you want to work on data analysis or manipulate text files, then your choice will be different.
So how to pick your first programming language?
Decide what type of development work you want to do, then pick a mainstream, widely supported language that is suitable for that task. And if you're hoping to get a job then absolutely stick to boring industry standard languages, by which I mean the ones that people actually use to build the kind of things that you want to build.
So finally, here are a few foundation language recommendations for different tasks. Spoiler alert: They aren't very exciting, but they will serve you well:
- Learning programming concepts (first language): Python.
- Embedded systems (microcontrollers and resource limited systems): C.
- Server-side scripting jobs (automation, maintenance, analysis of text and data files): Python.
- Data analysis and manipulation of text files: Python.
- Mobile development: Java/Kotlin (Android), or Swift (iOS).
- Large scale enterprise software: Java.
- Big fat complicated industrial standard language that can do nearly anything, but not easily or safely: C++
If you are just starting out and want to learn how to programme and don't have a clear objective yet, I'd recommend Python as your starting point. It has the easiest syntax, plus with a few lessons you can actually start doing some meaningful work on those awful spreadsheets your colleages keep kludging together.
But wait! I hear you cry. "I want to be Avante Guarde and look to the future". Well ok. Golang is great as a general purpose language and seems to be gaining a lot of traction. It's kind of like a modern C with added memory safety features and native support for multithreading, strings and UTF-8. It's even good for web development, except that few web hosts support it yet. However, it's not suitable for embedded systems as small programmes in Golang still generate large binaries (relative to C), that just won't fit on a typical microcontroller.