Some people think you should learn the most popular language.
That sounds reasonable. If a lot of companies are using Java, then that must mean Java is a pretty good language. In fact, TIOBE, a company that checks and measures the code quality of software programs, currently lists Java as the most popular language. On the other hand, the PYPL (PopularitY of Programming Language) index looks at Google searches to determine which programming languages are most commonly searched. It lists Python at first place and Java at second place. There’s certainly no doubt that Java is a widely-used language. There’s a reason why you’ve probably heard of Java.
Some people think you should learn whatever companies are hiring for.
The ever-changing popularity of languages and the ever-changing job market lead us (and many computer science educators) to the conclusion that the most popular language isn’t always the best choice to learn. Languages are coming in and out of fashion all the time. If we examine any device over time, whether it’s an iPhone, Android phone, or laptop, we see this constant flux of different languages coming in and out of fashion:
Back in 2007, when the iPhone first came out, developers made iOS apps using a language called Objective-C. Objective-C, which is a more advanced version of C, was the language used to build the operating system for Macintosh computers. So naturally, Apple extended Objective-C support to their iPhones. Objective-C was the predominant language used to make iOS apps for 7 years until 2014, when Apple introduced a new programming language called Swift. Now, Swift is the main language used to make iOS apps. And it has been for the past 5 years. Whether or not Swift will be replaced by a new language the way Objective-C was remains to be seen. But it certainly is possible.
A similar story is playing out in the Android world. Android apps have traditionally been made with Java. While Java is still widely used to make Android apps today, the Android world is slowly starting to move towards Kotlin, a programming language that you’ve probably never heard of, created by a software development company called JetBrains. Even though Kotlin was created in 2011, it wasn’t supported on Android until 2017. And recently in May 2019, Google announced that Kotlin is now the preferred language for making Android apps. It’s a more recent transition than the one in the Apple world, but it’s happening nevertheless. Kotlin might soon replace Java as the most common language for Android apps the same way Swift replaced Objective-C as the language for iOS apps.
The big takeaway here is that even though one language seems to be popular, it isn’t always going to stay popular. Even though one language seems to be the current standard, it can (and will) easily be replaced by another language. However, this doesn’t mean that learning the popular language is a bad choice. It just means that learning computer science shouldn’t be about learning one particular language. The world of technology is rapidly changing, and programmers have to respond and adapt quickly to these changes. So, learning computer science should be about learning new languages quickly. A proper computer science education should involve being exposed to many different languages, as well as learning how to learn new languages.
All these changes and improvements are part of the reason that languages keep moving up and down in popularity. The situation was quite different years ago. The TIOBE Index keeps track of programming language popularity over the decades in their “Very Long Term History” section. You can see how the “top 10” programming languages have changed positions considerably since 1989. Lisp was number 3 and Pascal was number 20 back in 1989; now in 2019, Lisp is at 32 and Pascal is down at 220. In 1994, Python was at 21; now in 2019, Python is number 3. SQL also made a big jump from 89 in 2004 to 9 in 2019. The point is, what used to be popular might not be popular several years from now, and what isn’t popular right now might become one of the most popular languages in several years.
Learning programming is more than just learning one language. A good computer science education should expose students to many different languages, as well as teach students how to learn different programming languages quickly and effectively. Being exposed to languages you’ve never heard of will make you more flexible and adaptable as a programmer. Learning how to learn is a transferable skill that will make picking up a new language easy, no matter how unique or difficult the language is. This is why ThoughtSTEM is constantly creating new languages for our students to learn each quarter and aims to train students not only in how to use those languages, but the best practices in learning languages. We believe this will make our students flexible and adaptable for those “popular languages” of tomorrow that haven’t even been created yet!