|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.
Here's the outcome:
This is the second time Codementor.io 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:
...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.
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".
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.
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.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 24 April 2019 )|