You can find the 2019 updated version here.
It’s the beginning of a new year and everyone has an opinion on what is the Best Programming Language to Learn in 2018. This year, we thought we’d try something new. Instead of suggesting what languages you should learn (JavaScript, Python, Java), we’re going to talk about languages that aren’t worth learning.
There are only two kinds of languages: the ones people complain about and the ones nobody uses. — Bjarne Stroustrup, creator of C++.
Be it because nobody is using it, nobody is hiring for it, or nobody is talking about it — based on the level of community engagement, the job market, and overall growth — some languages just aren’t worth your time anymore.
Without further ado, the five languages not to learn 2018 are: Dart, Objective-C, CoffeeScript, Lua, and Erlang.
Note: we are in no way disparaging the usefulness of these languages or questioning their worth. This post merely assesses the performance of these languages based on three criteria: community engagement, the job market, and growth (level of developer interest in working with the language). Click here to read how we define these in our methodology section.
#1 Dart
Dart is an open-source, object-oriented, general-purpose programming language developed by Google in 2011. It’s often used to build web, server, and mobile applications, as well as Internet of Things (IoT) devices. Here’s a Dartisan's perspective on why Dart is worth a closer look.
Note: When this post was written and published, Google Flutter beta had not yet been announced. What effect Flutter will have on the job market, community engagement, and Dart's trajectory is yet to be determined. Stay tuned to see how this will change the list in 2019.
Dart Community Engagement
Yes, Dart is one of the newer languages, but it’s not the newest kid on the block. Kotlin, Dart, and Elixir all came out in 2011 — Elm, TypeScript, Rust, and Swift even more recently.
While it's easy to blame Dart's low community score on its age, Swift, which is three years younger, has received a much warmer response.
This pattern plays out across all six community platforms. While Dart’s numbers were respectable even for its worst ranking, its relative ranking was far lower than those of Kotlin, Elixir, TypeScript, and Swift. Although these languages debuted at around the same time, they all outperformed Dart in terms of community engagement.
Dart's Growth
In terms of growth, Dart performed fairly well relative to its performance in community engagement and the job market. For one, Dart’s trajectory has been mostly stable, with a slight uptick in 2014, which is on par with Elixir and Rust, whose trajectories are relatively stable as a whole. This is in stark contrast with Swift, which has experienced dramatic highs and lows since its debut.
Dart Job Market
Dart came in dead last in terms of the number of companies using it in their stacks. While Google, Wrike, Workiva, and Blossom use Dart, there doesn’t seem to be a large number of jobs for Dart developers.
The good news is that Dart developers have less competition compared to developers who work with other languages. Of the languages we surveyed, Dart developers are relatively rare. This means when they’re needed, they might be able to command a higher rate. The flip side, is, however, they’re also competing for very few jobs.
Why You Shouldn’t Learn Dart
Dart is a Google developed and backed language. Even though Google has a lot of clout, it might just be Dart’s main downfall. Developers may be hesitant to learn the language as its longevity may depend too much on Google.
While Dart has its strengths, it doesn’t stand out among the competition. One software developer declared Dart dead because, “No matter what Dart’s features are, or how easy Dart makes web development, the fact is, there are a lot of other options out there and they all make the same claims… so Dart doesn’t seem all that relevant anymore.”
While there are companies outside of Google using Dart, if you’re looking for a language experiencing growth, with a large and passionate community behind it, and plenty of job opportunities, Dart isn’t it — which is why it topped our list of languages not to learn.
#2 Objective-C
Objective-C is a general-purpose, object-oriented language that debuted in 1984. You may have heard of it — Apple used it to create OS X and the iOS operating systems before Swift was introduced in 2014. While many developers have jumped ship to Swift, some still prefer Objective-C.
Objective-C Community Engagement
Objective-C ranked 18th out of 20 for its community engagement score. This puts it only ahead of CoffeeScript and Dart. While Objective-C performed fairly well in terms of Stack Overflow tags and had a respectable amount of repos and forks, it fared pretty poorly on other social media platforms.
Although it makes sense that Objective-C would have more repos compared to Erlang — it’s a little older and was widely used in Apple operating systems — the number of forks it has is much fewer compared to its peers. This shows that even though developers work with Objective-C, they’re not very engaged with it, which doesn’t bode well for its longevity.
Objective-C's Growth
As you can see, Objective-C has been declining since 2014, most likely because of Swift’s debut. That being said, every year Objective-C does still experience minor spikes of interest before declining again. This contrasts with Perl and Haskell’s trajectories, which have been mostly steady — meaning there is little to no growth — as well as C’s very bumpy and dramatic downward plunge.
Objective-C Job Market
Despite its age, and the rise of Swift, Objective-C is faring quite well when it comes to the job market. Objective-C ranked 4th for the number of businesses using it, 5th for developer supply, and 6th place overall for its job market ranking.
For current Objective-C developers, there should be plenty of jobs available with companies that need to maintain their legacy code. However, there are also many Objective-C developers for companies to choose from, which makes it essentially a buyer’s market.
Why You Shouldn’t Learn Objective-C
Although the job market prospects for Objective-C may seem attractive, the major reason you shouldn’t learn Objective-C is because it’s no longer growing.
If you’re new to programming and deciding what to learn, you may find that the companies who need Objective-C developers now may not need them when you’re done learning it. This makes learning Objective-C a somewhat risky bet.
In addition, Objective-C fared poorly in both growth and in community engagement, which means that developers aren’t talking about it anymore. It’s slowly being replaced by Swift, which ranks 16th overall on a list of languages you shouldn’t learn (which means, go learn it).
Therefore, while Objective-C is useful, its future doesn’t look as quite so rosy. If you’re a beginner looking into what language to learn, you might consider looking elsewhere.
#3 Coffeescript
CoffeeScript, released in 2009, is a language that transcompiles into JavaScript. Its syntactic sugar was inspired by Ruby, Python, and Haskell. There is no interpretation at runtime and you can use any existing JavaScript library seamlessly from CoffeeScript. In fact, one developer even argued that you should use CoffeeScript instead of JavaScript.
CoffeeScript Community Engagement
In terms of community engagement rankings, CoffeeScript came in above Dart but below Objective-C, in 19th place overall. CoffeeScript performed especially poorly when it came to the numbers of GitHub repos and Stack Overflow tags it had, coming in last for Stack Overflow tags.
CoffeeScript’s best showing was on Twitter, where it has a respectable 18,400 followers. This shows that although developers are following CoffeeScript news, they aren’t as engaged with CoffeeScript as they are with other languages — they’re asking fewer questions and using it less often.
If you want to learn a language with a passionate user base, CoffeeScript may not be the one for you.
CoffeeScript's Growth
CoffeeScript is largely in decline. Its trajectory contrasts quite dramatically with Scala’s and Go’s, which are on a upward trajectory despite intense rises and falls in interest level, which means these languages still have potential for growth. CoffeeScript’s trajectory, however, suggests that while developers are interested in CoffeeScript periodically, it’s not a language developers discuss or search for often.
CoffeeScript Job Market
CoffeeScript ranks 9th place overall in terms of the job market for developers. With almost a thousand companies using CoffeeScript, CoffeeScript places 7th for number of companies using it in their tech stacks. When it comes to developer supply, Coffeescript ranks 8th, almost in the middle of the pack.
For current CoffeeScript developers, these rankings are good news. There are fewer CoffeeScript developers competing for a fair amount of jobs. And, unlike for Objective-C, there is no one key player that could be a “CoffeeScript-killer.”
Why You Shouldn’t Learn CoffeeScript
Like Objective-C, CoffeeScript performed poorly in both community engagement and growth. We can see from CoffeeScript’s community engagement rankings that developers aren’t terribly excited about it.
One reason may be that CoffeeScript is almost a decade old and there are newer languages and versions of JavaScript to choose from, which makes CoffeeScript less interesting to developers. Though there is no one replacement for it, and even though there are quite a few tech stacks that use CoffeeScript, developers just aren’t talking about it anymore — which doesn’t bode well for its future.
#4 Lua
Lua is an open-source, multi-paradigm, embeddable scripting language developed by a team from the Pontifical Catholic University of Rio de Janeiro in 1993. Currently, Lua is popular in domains like gaming and web servers. Despite its age and lack of fanfare, developers still use Lua for a variety of things.
Lua Community Engagement
Lua came in 17th overall for community engagement — above Dart, Objective-C, and CoffeeScript — and one behind Elm. While it came in 15th place for GitHub repos, of the languages we looked at, Lua had the second least number of forks despite its decent repo showing.
Lua did fairly well in terms of Facebook and Freenode IRC subscribers, coming in 9th place. This means that although Lua is towards the end of the pack when it comes to community engagement, there are forums in which it shows some promise.
Although we wouldn’t recommend learning Lua as a beginner, its relative popularity on Freenode and Facebook show that people are still interested in Lua.
Lua's Growth
As you can see, Lua’s growth has flat-lined. In the last five years, while Lua hasn’t declined, it hasn’t grown either. Like its peers, Perl and Haskell, Lua might be showing its age in terms of developer excitement and usage. That being said, R, which debuted the same year as Lua, is experiencing growth, perhaps because of the rise of data science as a profession, while Lua’s growth remains stagnant.
Lua Job Market
Lua ranks 18th place in terms of hiring and 12th in terms of developer supply, giving it an overall job market ranking of 17th place. While companies like 9GAG and Shopify list Lua as part of their tech stacks, stackshare.io data shows that Lua isn’t performing as well as other languages that came out around the same time.
Unlike the other languages we’ve looked at, Lua’s supply to use-in-tech-stack ratio is skewed against you if you’re a developer. There are more Lua developers than there are companies who need Lua developers.
Why You Shouldn’t Learn Lua
While Lua is still used fairly often in gaming and web service, it performed poorly in terms of community engagement and job market prospects. That being said, in spite of its age, Lua’s growth has flat-lined rather than declined, which means that although it’s not popular, it’s not dying either.
Overall, if you decide to learn Lua, you’re looking at a language with stagnant growth, an overabundance of developers to demand, and a lackluster community. If you’re looking for something with many potential jobs and very little competition, a vibrant community, and stellar growth, Lua may not be the one for you.
#5 Erlang
Erlang is a functional language, created in 1986, that features a garbage-collected runtime system, support for distribution, and fault tolerance. Erlang is used in telecommunication, banking, e-commerce, computer telephony, and instant messaging. For more information and resources about Erlang, check out their website.
Erlang Community Engagement
Erlang came in 13th place overall in terms of community engagement. Although it ranked 13th place for the number of forks it has, Erlang came in 17th in terms of GitHub repos — behind all of the other functional languages on our list, except for Elm.
When it came to other social media platforms, Erlang had the strongest showing on Freenode, coming in 7th place for the number of subscribers. This may be because Erlang’s organization website links to Erlang’s Slack and IRC channel for Erlang developers and potential learners.
Erlang's Growth
Erlang’s popularity has been declining in the last five years. While there are spikes of interest in Erlang, its overall trajectory is on a downward trend. In terms of purely functional languages, Erlang’s downward trajectory is somewhat normal, with Haskell also in decline. If we look at both pure and impure functional languages, Haskell and Erlang’s trajectory may be because of age — with the exception of Clojure, newer impure functional languages are growing rather than declining.
Erlang Job Market
Erlang sits at 16th place for job market rankings. While it ranks 16th place in developer supply, Erlang ranks 13th for companies who use it in their tech stacks. Heroku, Whatsapp, Adroll, and thoughtbot all use Erlang for their coding needs.
If you’re a prospective Erlang developer, you’ll be glad to know that you don’t have much competition for the few jobs out there. Although its job market is one reason not to learn Erlang, if you’re really passionate about the language, it’s not all bad — Erlang is not the worst ranked language in terms of potential job markets, and there are both newer and older companies using it.
Why You Shouldn’t Learn Erlang
Erlang has been around for about 32 years — it’s the oldest functional language on this list (Haskell debuted in 1990, four years after Erlang). While a few startups use Erlang, most of the companies who use it in their tech stacks are established enterprises. This suggests that while Erlang is still being used, startups aren’t excited about it.
One reason Erlang may be declining is because of newer functional programming languages, such as Elixir or Elm. Although Erlang is certainly useful, it’s less accessible for beginners. The steeper learning curve can be discouraging for developers looking for a side project or for beginners who might prefer an easier-to-learn language.
Before the advent of Elixir, Elm, or Scala, developers may not have had as much choice and learned Erlang because they needed a functional programming language that wasn’t Haskell.
While there is still legacy code written in Erlang that needs to be maintained, its growth trajectory indicates that its heyday has passed. If you’re looking for a language to learn in 2018, don’t pick Erlang as your first choice.
Methodology (For the Curious)
We arrived at this list by ranking 20 programming languages with three metrics:
- Community
- Growth
- Job Market
Community
Because community support is vital for software development, we looked at what languages were hot (or not) among developers active on GitHub, Twitter, Stack Overflow, Facebook, Freenode, and Reddit. Languages with more forks, repos, and subscribers had higher community engagement scores, and vice versa.
Growth
We dug into Google Trends and Stack Overflow Trends to see which languages are experiencing an upward (or downward) trajectory. Developer interest and community strength are good indicators of future employment trends, which is why we chose this as one of our dimensions.
Job Market
To gauge which languages were least in demand for hiring managers, we looked at what languages startups and enterprises were using from stackshare.io and techstacks.io, along with CodementorX’s freelance developer hiring data.
Finally, we looked at developer supply when thinking about the job market. To see how much competition developers specializing in a particular language faced, we tallied how many professional developers identified as an X-developer based on CodementorX proprietary data and Stack Overflow’s 2017 survey.
Together, these metrics gave us a list of languages that you shouldn’t learn in 2018.
Conclusion
While Dart, Objective-C, CoffeeScript, Lua, and Erlang are the top five languages you shouldn’t learn in 2018 because they performed poorly in terms of job market prospects, community engagement, potential for growth, or all of the above, there are two things you should keep in mind.
First, these rankings were derived from how well a language performed on the three particular metrics we listed above. The 20 languages we chose might perform well and even be listed as “languages to learn” based on other metrics. Therefore, while we don’t recommend learning them as beginners or as a primary language, they are useful in their respective domains.
Second, we also acknowledge that there may be inherent biases in the sources that we used. For example, Stack Overflow surveys are biased towards English-speaking developers and stackshare.io is biased towards companies with employees or founders who fill out information on the website.
Before we conclude, we want to reiterate that the five languages we chose may be less competitive on our metrics but are still useful in their respective domains. If you’re inspired by this list to learn them for fun or as a side project — and not as a primary language that will help you make a living or a career — by all means, go for it!
Enjoy reading data-driven posts? If so, here are some of our recommendations!
The State of Blockchain Programming in 2018
The Happiest Cities in the US for Developers
The Most Common Words in Engineering Job Descriptions