What are the most unloved programming languages?

Original author: David Robinson
  • Transfer
At Stack Overflow Jobs, anyone can post their own Developer Story to share their achievements and career paths. When publishing, you can add tags to the article that correspond to the languages ​​and technologies that you would like to work with and which you would not want to:



This gives us the opportunity to study the opinions of hundreds of thousands of developers. There are many ways to measure the popularity of a language. For example, we often used statistics on visits to Stack Overflow or views of questions to study trends . But tag data is a unique opportunity to see what people don't like when they have the opportunity to say so in a resume.

(Some analysis ipublished on a personal blog two years ago , but this article is supplemented by more recent data and more illustrations).

Programming languages


As a measure, let's see how the proportion of Dislike tags compares across all resumes compared to Like tags for each particular language. That is, 50% means that the tag is not liked exactly as often as it is liked, while 1% means that for every 99 people who like, there was one with a negative rating. (To estimate the average values, we used the Bayesian empirical method, which I described in this article , and it calculates the confidence interval with a confidence level of 95% ).

First, let's look at a list of programming languages (unlike platforms like Android or libraries like jQuery), which have at least 2,000 references to Developer Stories.



Perl, Delphi and VBA are leading the list of the most unloved languages ​​by a wide margin. They are followed by PHP, Objective-C, Coffeescript and Ruby. Our developers were especially pleased to see that R is the most favorite programming language in terms of likes and dislikes.

If you read any of our articles on the rise and fall in popularity of specific languages, you might notice that the least number of dislikes usually accompanies languages whose popularity is growing rapidly , such as R, Python, Typescript, Go and Rust (we separately investigated Python and R ), and all of them are among the languages ​​with the most unanimous ratings. Likewise, many of the languages ​​with a large share of dislikes - Perl, Objective-C, and Ruby - were previously seen at the same time.among languages ​​in which the number of tags on the site is the fastest to decline.

This can be checked by comparing the size and height for each language with the percentage of those who give it a dislike. On the heatmap, the orange color corresponds to the languages ​​with the largest number of dislikes. To make our analysis compatible with the last few articles, we will limit the statistics only to high-income countries (such as the United States, Great Britain, Germany, and Canada), where the popularity of languages ​​differs slightly from low-income countries.



Usually there is a correlation between the growing popularity of a tag and the share of dislikes for it. Almost all languages, if they are not liked by more than 3% of users, at the same time demonstrate a decrease in Stack Overflow traffic (except for the highly controversial VBA, which is stable or slightly growing). And all languages ​​with the largest share of positive tags - R, Rust, Typescript and Kotlin - are at the same time one of the fastest growing tags (Typescript and Kotlin grow so fast that they do not fit on the diagram).

Functional language Clojure stands out from the general trend; almost no one dislikes him, but he is among the fastest falling in traffic (the drop in the number of visits to the site with questions began around the last year). Another exception is MATLAB, whose popularity is also declining, although no one puts dislikes on it. This may indicate a limitation of data for measuring moods: although any web developer may have an opinion about PHP, C # or Ruby, but people outside the scope of data analysis have no reason to express an opinion about MATLAB. (Probably, this may also be the reason why R so rarely gets dislikes).

We do not necessarily assume the presence of a causal relationship, when the dislike of some programmers for certain languages ​​leads to a decrease in the popularity of these languages. There is another possibility: it is more comfortable for people to put a dislike and show a reluctance to work with a language that is already losing popularity. Perhaps people who previously wrote in this language, but no longer want to, are so reluctant. That is, a natural process occurs when “replaced” technologies fall into the Dislike field in the resume.

Favorite and least favorite tags


The previous analysis concerned programming languages ​​only, but not operating systems, platforms, or libraries. What are the most unloved technologies in general? To concentrate only on large technologies for which we have enough data, we limited the sample to technologies that are mentioned at least 1000 times.



Among the leaders are several Microsoft technologies, in particular, Internet Explorer and Visual Basic, as well as the common tag “Microsoft” (“Apple” is also on the list, although it is not so catastrophically hated). We have good news for most of those who have been opposed to working with Flash. Older languages ​​like COBOL, Fortran, and Pascal are also on the list.

It is important to emphasize once again that there is no evaluation of the technologies themselves, their quality or popularity. This is just an assessment of which technologies cause strong negative feelings in some of the developers who do not mind expressing their attitude publicly.

You can also explore the most popular technologies that almost never get dislikes. (This time, since likes are much more common than dislikes, we’ll include the technologies mentioned at least 10,000 times in the sample).



Git can be a headache for many developers (as it definitely is for me!), But people rarely admit it in their resumes, and this is one of the most definitely like tags in our Developer Stories. R was on the list, but here it is not the only tag from the field of data science. Machine learning was approved by 23 thousand people and very rarely fell into the category of unapproved technologies. Tags like Python-3.X, CSS3, and HTML5 may indicate that developers rarely indicate their dislike for a particular version of a technology (even if they indicate). And of course, jQuery is popular as always on Stack Overflow .

Network with polar tags.


We can put these tags in one picture, combining them into a network. In a recent article, Julia Silge showed how to build a technology network that represents the entire software industry. If you colorize the level of dislike for each technology, you can determine which parts of the ecosystem cause more controversy than others.



Tagging ecosystem areas, this network shows which tag types are prone to conflict. There are clusters of such tags related to Microsoft (with kernels around C # and .NET), PHP (along with WordPress and Drupal) and mobile development (in particular, Objective-C). At the bottom of the cluster of operating systems (bottom right) you can see that systems like OS X, and especially Windows, have ill-wishers, while Linux, Ubuntu, and Unix do not.

Competitors


If someone likes a particular tag, are there other tags that they are more likely to dislike?

This can be measured using the phi coefficient between the occurrences of specific tags. (When calculating these correlations, we take into account only people who put at least one dislike).



This is where some of the rivals in the software ecosystem come to light: Linux and OS X versus Windows, Git versus SVN, vim versus emacs and (to my surprise) R versus SAS. To a large extent, these pairs are not “opposing” technologies, but different approaches to solving the same problems. Many of them indicate a transition from a technology popular in the past to a more modern one (Git replaces SVN, JSON replaces XML, C # replaces VB). It makes sense in the way people write resumes; it’s typical for developers to indicate that they don’t want to work with something that they consider obsolete.

Conclusion


I’m not interested in participating in some kind of “programming language wars” and I don’t judge users who indicate which technologies they don’t want to work with. The great polarization of opinions about Microsoft technologies often prompts me to share my personal experience. I’ve been working on Mac and UNIX all my life and almost all my programming experience at the university and graduate school was in Python and R. Despite this, I enjoyed joining the company with the .NET stack, and I’m glad that I did it because I liked and colleagues, and product, and data. I can’t say for others, but personally I’m glad that I decided what kind of work I am interested in doing, and not what I would like to avoid.

Also popular now: