Programming Languages Not To Learn First
Written by Sue Gee   
Wednesday, 24 April 2019

Turning around the usual approach of evaluating the relative popularity of programming languages, Codementor has created a ranking of the Worst Programming Languages. Top of the league of languages to avoid are Elm, CoffeeScript, Erlang, Lua, and Perl.

For the purposes of this exercise, three languages - JavaScript, Python and Java - were ruled out on the grounds that they are obviously good first languages. Codementor then ranked 20 programming languages in terms of three metrics: 

  • Community Engagement
  • Growth and Trends
  • Job Market

Here's the outcome:



This is the second time has conducted this exercise so it's possible to discern changes year-on-year:


Commenting on the fact that Dart went down by 13 places from being very top of the worst in 2018 to 14th place in 2019, the Codementor blog answered the question:

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


Google’s Flutter announcement, which 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.

Elm made the same jump in popularity, but in the opposite direction, going from #14 to #1 as the worst language. This is mainly due to its lack of community engagement as indicated by activity on GitHub and subscribers to Twitter, Stack Overflow, Facebook, Freenode, and Reddit. Codementor's verdict on the Elm community was:

Overall, while people are talking about Elm, not enough of them are doing so.

With regard to Growth Codementor used Google Trends and Stack Overflow Trends to see which languages experienced an upward (or downward) growth trajectory between 2013 and 2019 and Elm  experienced the third largest decline from 2018 to 2019, with only by Objective-C and CoffeeScript having an even worse outcome..

Elm's Job Market share actually improved between 2018, when it was 3rd worst, and 2019, when it came in 5th. However, the prospects for getting a job as an Elm developer are still poor. As Codementor advises: 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.

At this point, you might well be asking what Elm is as you've  never encountered it: To quote Bjarne Stroustrup:

"There are only two kinds of languages: the ones people complain about and the ones nobody uses"

Does Elm fall into the latter category? Possibly. Elm is a flavor of JavaScript and according to the State of JavaScript 2018 survey which we reported on last November is indeed very little used:


Between 2016 and 2018 more respondents had heard of Elm but the proportion who were not interested in learning it had increased. While almost 30% expressed interest in learning Elm only 6% had used it and over a quarter of them would not use it again. Only ClojureScript, a language not included in Codemenotr's exercise was less popular.

Three of last year's top five worst languages for beginners to learn, CoffeeScript, Erlang, Lua, are still there in 2019. Turning the clock back to 2016, CoffeScript, which is now ranked #2 in terms of worst language to learn  was included in the State of JavaScript Survey, alongside Elm but, despite being used by more respondents at that time, was excluded from future survey on the grounds that it was clearly in decline, given the proportion of respondents who were not interested in it even if they had used it.


Elm certainly suffers from its name. If your response to hearing it is to say: "I thought it was a tree that got wiped out by disease" you are not alone and the ambiguity between tree and programming language is part of its problem. In particular Elm's prominence suffers from its lack of Stack Overflow tags.

Lack of Stack Overflow tags also accounts for the poor showing of  Erlang, but that's not all. In the 2018 Codementor noted that as a purely functional language:

Erlang’s downward trajectory is somewhat normal, with Haskell also in decline 

This year, however, while interest in Haskell has grown, albeit only slightly, that in Erlang has continued to decrease. Even though Erlang is a general purpose programming language is does occupy a particular niche - telecommunications and specifically Ericssons. With the roll of of 5G and the expanding IoT Job Market it might experience future growth. Year on year, however, its Job Market ranking went from 5th to 4th, even though there are more jobs than developers to fill them. 

As a lightweight embeddable scripting language, Lua, whose name means moon in Portuguese, might also have a future in IoT.  Its Community Engagement improved between 2018 and 2019.Commenting on this Codementor notes:

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.

While Lua's growth was flat from 2013 to 2018 it began to decline in the past year but was much less than other languages and according to Codementor this show hope for Lua noting:

its application in data science and game development may be its salvation in terms of its longevity.

While Objective-C moved out of the Top 5 Worst Languages for beginners to learn in 2019, moving down to #8, Perl, which like Objective-C, is credible as a first language, moved up  from #7 in 2018 to join the group. A year ago the TIOBE index drew attention to Perl's decline in interest, see An Update on Language Popularity - Perl is in Trouble in which we noted that Objective-C had also experienced a notable slump. Objective-C's decline was attributed to competition from Swift, which Codementor's 2019 study placed as19th worst, and thus 2nd best position, just ahead of C#, indicates is a worthwhile candidate to consider as a first language to learn. Perl's decline in fortune was attributed to the uncertainty in its future due to the Perl 5/6 split. 

Commenting on Perl's Job Market Ranking of #6, Codementor notes:

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.

Balancing job prospects against accessibility to complete beginners, Java, JavaScript and Python, i.e. the ones ruled out of its study by Codementor, would be my top recommendations for a first language, with C as a strong contender for those interested in embedded systems and the IoT. 



More Information

Study of Programming Languages Not to Learn in 2019

Related Articles

Language Learning Insights From HackerRank 2019 Survey

Survey Reveals JavaScript Trends

Explore Your Favorite Topic With Stack Overflow's Interactive Trend Tool

An Update on Language Popularity - Perl is in Trouble

What Programming Languages Should Students Learn

Choosing The Best Beginner's Programming Language

Choosing A Computer Language

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, Facebook or Linkedin.



Speech2Face - Give Me The Voice And I Will Give You The Face

Neural networks are good at spotting patterns and correlations in data, but are they good enough to recreate the face that produced a particular voice?

Python Set To Be Top Language

The June TIOBE index is out and it's Python causing the stir. It looks set to knock C and Java from their top positions. Python  really does seem to be the language we all not only want to use, b [ ... ]

More News





or email your comment to:


Last Updated ( Wednesday, 24 April 2019 )