When we published the Worst Programming Languages to Learn in 2018, we hadn’t anticipated Google’s Flutter beta announcement. Now that it’s 2019, we’d like to update our rankings to see how these languages have fared in the past year.

Using a similar methodology, i.e. looking at community engagement, growth, and the job market, we have a new list of languages that aren’t faring so well in today’s programming landscape. Although some languages have upheld their dominance — we’re looking at you, C# — others have gone down in the rankings.

This year, we’re going to look at how the rankings have changed from 2018 to 2019 and give you the scoop on which languages you probably should not learn as a first programming language. We didn’t include Python, JavaScript, and Java on our list because they’re popular languages people usually pick up, and we wanted to evaluate less popular languages to see how they would fare against one another.

As always, we are in no way disparaging the usefulness of these languages or questioning their worth. Every programming language is created with specific use cases in mind, but it may be difficult to measure that across the board. Please refer to the Methodology section at the end of this post if you’d like to know more about how we arrived at our results.

For those who can’t wait, the five languages not to learn in 2019 are Elm, CoffeeScript, Erlang, Lua, and Perl.

Programming Languages that Improved, Worsened, or Stayed Consistent

So how did our list change from 2018 to 2019? Did some languages just switch places or were there actual shakeups in the rankings? The answer is — drumroll — yes!

Two examples of languages that really rose to the occasion for the title of Most Improved are Dart and Ruby, who made the biggest leaps. On the flip side are Kotlin and R, who fell pretty hard in the last year to win Least Improved. Finally, Clojure and Haskell are languages who Stayed Consistent, barely moving a hair in their rankings from 2018 to 2019.

Most Improved Programming Languages

Dart

Dart made the biggest comeback from 2018 to 2019, from being number one on the Worst Programming Language to Learn in 2018 to 13th place on the list in 2019. In other words, it’s now 7th on our list as a language to learn (since we didn’t include Python, JavaScript, and Java, etc).

So how did it improve thirteen places in only a year?

Google’s Flutter announcement, wihch happened around the time our list was published last year, breathed new life into Dart, skyrocketing it to 20th place on our Growth and Trending metric. While supply and demand for Dart on the Job Market metric is still pretty low, its Community Engagement score has improved in the last year, most likely because developers have been talking about or experimenting with Dart and Flutter. All in all, Google’s Flutter announcement, along with enthusiastic support from Dartians, a small but vocal community, seems to have been the biggest factor in Dart’s comeback.

Ruby

Although Ruby’s leap in the rankings was not as dramatic as Dart’s, Ruby still advanced four places, from 14th to 17th on the list of Worst Programming Languages to Learn — i.e., 3rd as a language to learn in 2019. In fact, there was fewer than 1.5 points between Ruby’s overall score and Swift’s 2nd place score.

Ruby’s ranking in 2019 can be attributed to its strong showing across the board, coming in in the top five for Community Engagement and Job Market demand. Ruby’s weakest showing was in the Growth and Trends category, coming in 10th place compared to Swift’s 16th place performance in the same category. Indeed, while Ruby outperformed Swift in two out of the three metrics, its weak performance in the Growth and Trends cost it a second place ranking on this year’s list, despite its impressive improvement in the same category and overall.

Least Improved Programming Languages

Kotlin

From 2018 to 2019, Kotlin’s ranking fell quite a bit, from 18th place to 11th on our list of Worst Programming Languages to Learn. While Ruby took its place on the list, Kotlin fell seven places to land behind R, whose rankings also fell significantly in the last year.

Even though Kotlin topped the Growth and Trends metric in 19th place, its performance in the Community Engagement and Job Market categories were towards the middle of the pack, though still an improvement from the year before. Though this wasn’t a significant change from a year ago, the drop from 20th to 19th place in the Growth and Trends category put it at a disadvantage this year because its scores in the other categories just weren’t enough to prop it up in the overall rankings.

R

Along with Kotlin, R experienced a reversal of fortune, dropping seven places from 19th place to 12th on our 2019 list of Worst Programming Languages — its former spot now occupied by Swift. What’s behind the sudden and dramatic loss of ranking for R in the last year?

R’s steep decline can be attributed to its poor showing the Growth and Trends metric. While it ranked 18th overall on 2018’s Growth and Trends rankings, it came in 11th place in 2019, bringing down its overall score. While its Hiring and Supply scores remained roughly the same as the year before, R’s Community Engagement score also went down, moving from 15th to 13th place in terms of Engagement rankings. While R’s Job Market scores improved this year, its Growth and Trends as well as Community Engagement scores caused R to experience a steep drop in the rankings.

Programming Languages that Stayed Consistent

Clojure and Haskell

Unlike Dart, Ruby, Kotlin, and R, Clojure and Haskell moved little to not at all in the last year. Clojure kept its 6th place spot from 2018 to 2019 and Haskell moved from 10th to 9th on last year's list.

Clojure scored 6th place across the board last year in terms of Community Engagement, Job Market, and Growth and Trends. This year, however, it improved its Community Engagement and Growth and Trends scores at the cost of its Job Market score, leaving it in the exact same ranking as the year before.

In 2018, Haskell ranked 13th on Community Engagement and 11th on Job Market and Growth and Trends. This year, its Community Engagement score improved by five places to 14th place, its Growth and Trends score decreased by two to 9th place, but its Job Market score was the metric that brought it down one ranking this year. While Haskell’s demand this year was consistent with last year’s, its supply of developers decreased.

If you’re interested in becoming a Haskell developer, this could be a great opportunity for you in 2019!

Worst Programming Languages in 2019

#1 Elm

Elm Community Engagement



From 2018 to 2019, Elm’s Community Engagement ranking fell by one, from 5th worst to 4th worst overall. While its community across GitHub, Reddit, Twitter, IRC, and Facebook was pretty strong, Elm’s Community Engagement score was brought down by its lack of Stack Overflow tags. Elm’s best showing was on Facebook, where it came in 16th for Facebook likes, followed by its 8th place ranking for Twitter. Overall, while people are talking about Elm, not enough of them are doing so.

Elm’s Growth



While Elm’s growth trajectory was rising from 2013 to 2018, it declined from 2018 to 2019. As one of the languages with a upward trajectory in 2018, Elm ranked 13th in terms of Growth and Trends last year. This year, Elm ranked 3rd for Growth and Trends. Elm experienced the third largest decline in search volume from 2018 to 2019, preceded by Objective-C and CoffeeScript.

Elm Job Market



Elm’s Job Market score actually improved from 2018 to 2019. While it was ranked 3rd worst job market in 2018, it actually came in 5th worst in 2019, ranking 6th place in terms of developer supply and 4th in terms of developer demand. Although Lua, Clojure, and Dart fared worse on the Job Market ranking this year, prospective Elm developers shouldn’t be so fast to celebrate. If you’re deciding what to language to learn, keep in mind that supply for Elm developers outweighs demand for them, meaning that if Elm is your primary language, there is going to be more competition for Elm jobs compared to jobs for other languages.

#2 CoffeeScript

CoffeeScript Community Engagement

Whereas last year CoffeeScript came in second to last in terms of Community Engagement, this year it was dead last. CoffeeScript’s Facebook community was nonexistent this year and it ranked near the bottom of the pack for Freenode IRC, Twitter, GitHub, and Stack Overflow tags. /r/coffeescript, unfortunately, also had the dubious honor of being the least popular subreddit on our list of languages. It’s safe to say that no matter how useful CoffeeScript may be, it’s not winning any popularity contests this year.

CoffeeScript’s Growth

While CoffeeScript’s growth was already largely in decline from 2013 to 2018, it declined even more sharply from 2018 to 2019. Of all of the languages on the list, CoffeeScript had the biggest decline on Google Trends and the second biggest decline on Stack Overflow Trends, putting it dead last in terms of Growth and Trends in 2019. Even though this year most languages on the list were experiencing less search volume overall, judging from its trajectory, it seems that CoffeeScript’s heyday is further behind it than that of other languages.

CoffeeScript Job Market

CoffeeScript’s Job Market ranking dropped three places from 2018 to 2019, going from 12th place to 9th place overall. Although its performance in terms of Community Engagement and Growth were abysmal, it ranked 8th in terms of developer supply and 9th for demand for CoffeeScript developers. While an unenthusiastic community and declining growth prospects are not good signs for prospective CoffeeScript developers entering the job market, there are still jobs for CoffeeScript developers compared to developers who specialize in other languages.

#3 Erlang

Erlang Community Engagement

Erlang wins the biggest drop in Community Engagement of the year, from 8th place in 2018’s rankings to 2nd place in terms of worst Community Engagement. As with Elm, Erlang’s score was hit hard by its lack of Stack Overflow tags. In addition, Erlang ranked in the top five on GitHub and Reddit, further lowering its Community Engagement score. Erlang’s best showing was on IRC, coming in 11th place there, which is actually worse than the previous year. While its Facebook and Twitter presence remained constant, Erlang’s showing on other channels wasn’t enough to boost its Community Engagement score.

Erlang’s Growth

In 2019, Erlang continued its downward trajectory that began in 2013. What’s noteworthy is that while we said in 2018 that “in terms of purely functional languages, Erlang’s downward trajectory is somewhat normal, with Haskell also in decline,” this statement is no longer true for 2019. Instead, while interest in Erlang declined, interest in Haskell actually grew in the last year, albeit by only a little. This means that age and Erlang being a purely functional language are not the sole factors behind Erlang’s decline.

Erlang Job Market

Last year, Erlang ranked 5th in terms of worst job market. This year, Erlang dropped a spot for the honor of 4th worst language for the 2019 job market. Erlang ranked 4th place in terms of developer supply and 5th place in terms of developer demand. This, however, is a bit of a mixed bag — while there are still more jobs for Erlang developers than there are developers available, compared to other languages, there is less demand for Erlang this year compared to last year. Although the number of Erlang jobs increased in the last year, demand for Erlang hasn’t grown as fast compared to demand for other languages.

#4 Lua

Lua Community Engagement

Unlike the other languages in the top five, Lua’s Community Engagement ranking actually improved in the last year. Indeed, Lua’s ranking rose from 4th worst to 7th worst in terms of community engagement, despite its overall ranking on the list remaining the same from 2018 to 2019. Lua’s score was bolstered by its stronger showing on Facebook and in IRC compared to last year, along with its considerably improved GitHub and StackOverflow rankings. This shows that people are talking about Lua in 2019 — more so than in 2018 — which could bode well for it in 2020.

Lua’s Growth

While Lua’s growth was flat from 2013 to 2018, it began declining from 2018 to 2019. Although it hasn’t declined as much as Perl, CoffeeScript, Elm, or Erlang, Lua’s turn from stagnation from decline isn’t a development that’s to be celebrated. That being said, the fact that its decline was much less than that of other languages shows hope for Lua — its application in data science and game development may be its salvation in terms of its longevity.

Lua Job Market

Lua’s Job Market score ranking decreased in the last year, from 4th worst to 2nd worst. Like last year, there are more Lua developers than companies hiring for them. Indeed, Lua ranks third to last in terms of developer supply and second to last in terms of developer demand, which means that not enough Lua developers turned to other languages (or retired) to reach an equilibrium — there are still more Lua developers than there is demand for them.

#4 Perl

Perl Community Engagement

Perl joins Elm as a new addition to the Worst Programming Languages to Learn list in 2019. While this isn’t all because its Community Engagement ranking fell three places in the last year, it didn’t help that Perl’s popularity on Reddit, Twitter, and Facebook was in decline. Although Perl’s ranking improved on Freenode, Stack Overflow, and GitHub, it wasn’t enough to counter its slump on social media platforms. It’s worth noting, however, that even though Perl’s Community Engagement ranking was lower in 2019 than in 2018, it still finished in a respectable 9th place.

Perl’s Growth

Perl’s growth is currently on a decline. While its trajectory was pretty flat from 2013 to 2018, searches for Perl decreased between 2018 and 2019. Like C#, which came out around the same time, Perl’s search volume decreased in the last year. In April 2018, the TIOBE Index showed Perl as in decline, titling their headline “Perl is having a hard time” and stating: still today the Perl community hasn't defined a clear future, and as a consequence, it is slowly fading away.

Although it’s difficult to tell if TIOBE’s conclusions had any impact on the developer community’s interest in Perl for the rest of 2018, Perl is facing a downward trend in terms of developer interest — however, it’s too soon to predict how that will impact Perl’s future.

Perl Job Market

Perl’s Job Market ranking dropped two places from 2018 to 2019. Perl ranked 10th in terms of developer supply and 7th place in terms of developer demand, giving it an overall Job Market rank of 6th place. While SendGrid, DuckDuckGO, Shutterstock, and Infoshare all use Perl, compared to languages that came out at about the same time, there is less demand for Perl developers than there is for C#, Ruby, and R developers. In addition, if you’re interested in learning Perl, keep in mind that developer supply for Perl outranks developer demand — you may have added competition for fewer jobs if you decide to learn Perl as as first language.

Methodology

We arrived at this list by ranking 20 programming languages with three metrics:

Community

Growth

Job Market

Community

We looked at what languages were popular with developers active on GitHub, Twitter, Stack Overflow, Facebook, Freenode, and Reddit. Languages with more forks, repos, and subscribers scored higher when it came to community engagement.

Growth

We looked at Google Trends and Stack Overflow Trends to see which languages experienced an upward (or downward) growth trajectory between 2013 and 2019.

Job Market

We looked at stackshare.io, techstacks.io, and CodementorX client requests to see what languages startups and enterprises were using to gauge developer demand. For developer supply, we tallied survey data from Stack Overflow’s 2018 survey and results from CodementorX’s proprietary data.

Conclusion

This year’s rankings confirms that the field of software development is constantly in flux. While CoffeeScript, Erlang, and Lua continue to occupy spots on the worst programming languages to learn as a first language based on our methodology, Dart and Objective-C actually improved their rankings in the past year.

Even though C# is still the runaway leader in terms of a strong programming language to learn in 2019, Swift rose to second place from fourth place to give it a run for its money. While Ruby and Swift were almost neck and neck for second place, Golang also rose up to places to to take fourth place in our 2019 rankings.

As a final word, we wanted to reiterate that while the languages that didn’t perform well this year are useful and powerful in their respective fields, they may not have ranked as highly on our list because of the three metrics we chose. Therefore, if you really want to learn Erlang, Elm, or Lua, go for it — after all, these languages may make a comeback by 2020 because of your interest in them!