
What Are the Most Disliked Programming Languages? - var_explained
https://stackoverflow.blog/2017/10/31/disliked-programming-languages/
======
ballenf
> Git might be a source of frustration to many developers (it certainly is for
> me!), but it’s rare that people admit it on their resume ...

That statement doesn't make a lot of sense. The "dislike" tag is understood to
be the list of things you don't want to work with (as in, "don't contact me
about jobs if the job involves using xxxx tool/tech/language"). Resumes don't
generally have a section for "sometimes frustrating/tricky stuff that I don't
even question that I'll be using."

You just can't ignore the alternatives (or lack thereof) to any of the
"disliked" stuff in the article.

The running theme in the strong dislikes are languages and tech that were once
popular but have been surpassed by newer, easier to use or work with
alternatives. That may happen one day to git, but it would seem a long way
off.

There's also a running theme of the dislikes often representing working with
older legacy code. So the listed languages might just be the devs' proxy for
disliking working with legacy projects (vba strikes me as an example of this,
since it was hugely popular but no one is really using it in anything new).

------
chrisaycock
The article defines "like" vs "dislike" in terms of what developers list as
preferences on their jobs profile. For example, Perl is the most "disliked"
language; what that really means is that developers have actively listed it as
a job opportunity they don't want.

The analysis shows that there is a correlation between a language's "liked-
ness" and its growth as a tag on Stack Overflow. Correlation-is-not-causation
and all that, though it seems that what developers will take for a job is
similar to what they actively use. This, of course, is rather cyclic.

~~~
dozzie
> For example, Perl is the most "disliked" language; what that really means is
> that developers have actively listed it as a job opportunity they don't
> want.

In the specific case of Perl, this makes the analysis highly skewed. I liked
using Perl (I no longer write in it because my current team already knew
Python well and not even a bit of Perl), but almost all the job ads around me
that mention Perl come from big, old corporations. I wouldn't want to maintain
a corporate internal tool written in Perl, because Perl in such an environment
means a very old and overgrown script (virtually all newer are written in
Python) in a complex and complicated system that cannot be updated to modern
architectural standards, and Perl from '90s and early '00s has a history of
being used mainly by dilettantes who couldn't tell global and local variables
apart.

~~~
petre
We have rewritten a web app that used CGI.pm and ported it to Mojolicious. It
also uses JavaScript on the front end. I'll choose Perl any day over
JavaScript/ES/Node.js. There is still innovation going on in the Perl5
community, like Mojolicious, Promises, Moo, MOP, Moxie etc. Most tooling is
sane and you don't end up with competing package managers, a plethora of build
tools, transpilers, frameworks and an endless chain of dependencies.

------
throwaway2016a
Earlier in my career we moved to Ruby over PHP because Ruby was "cool" and PHP
was not. Now it is interesting to see them lumped in the same group.
Incidentally, PHP has improved greatly because of the rivalry with Ruby
because the competition inspired PHP and PHP Frameworks to step up their game
in the early 2000s / 2010s.

Python's continued popularity surprises me. While I like Python and it is good
for data science I don't understand why people use it for websites. The PHP
and Ruby ecosystems are far more mature if you consider ease of use and if you
are going for performance, Go and Java based frameworks are better. Even in
the data world, I kind of like R over Python.

I'm also glad to see Javascript highly ranked. I was under the impression that
Node.js in particular was going the way of PHP and Ruby. But personally I like
working with Node.

Edit: I wonder how much of this is due to popularity too. PHP is insanely
widely used. Which attracts more entry level coders than a language that is
broadly used for specialty / high performance / niche languages.

~~~
mamcx
> While I like Python and it is good for data science I don't understand why
> people use it for websites.

This is the reason, actually. Python is NOT ONLY GOOD FOR WEBSITES.

In fact, the only thing that have stopped python for total global domination
is to be poor for mobile apps.

Do not underestimate the power of make a "full stack development" with just
one language.

~~~
throwaway2016a
> Python is NOT ONLY GOOD FOR WEBSITES.

PHP, Ruby, Node.js all have excellent tooling for making command line
applications as well as websites. While none of them have focused much on
having a GUI, projects do exist.

Ruby in particular is very widely used as a system automation language.

~~~
mamcx
But not _as strong as with python_. And certainly PHP/Node is biased heavily
for web-apps. Python is a bit more broad.

------
PaulHoule
I remember writing a cross-platform library for web authentication that worked
with signed cookies. You would log in through a PHP form and then I wrote
modules to check the cookie and refresh it in just about every language used
in web development in the early 2000s. That included PHP, Perl, Java, C#, Cold
Fusion, and others.

Of all the authentication modules, the one in Perl was the shortest and
sweetest.

~~~
ReversedYodel
I think of it a bit like some huge regexs, you only arrive at the final point
by building up to it in small (succinct) steps, and if you need to revisit it
later, the old grey decompiler has to work harder.

Perl coders I knew prided themselves on illegible but powerful one liners in a
smug/elitist way ("Ha! You can't read that?? That'd be _three lines_ in C. Ha
idiot."). I prefer readable code.

------
chmike
There might be a bias in this analysis. The programming languages listed in
the no-no list are the one people dislike AND know. I can't say if I dislike a
language if I don't know it. This is visible with r language.

~~~
citrin_ru
Yet number of people who dislike Perl much large than number of people who can
write code in Perl.

~~~
EpicEng
Yeah, but a lot of people have passing familiarity with perl or have at least
been tainted by the sheer number of "I hate perl" sentiments around the web.

The list as presented is obviously biased. When I see that fewer people
dislike MATLAB than C#... I don't know what to say to that.

------
bhauer
The most fascinating section of this, in my opinion, is the "Rivalries" at the
bottom that show the relationship between liking X and disliking Y.

However, what isn't clear to me is whether this is one-directional or a
blended bi-directional rivalry. For example, the third item from the bottom is
iOS : Android. Is this the coefficient of liking iOS and disliking Android
_or_ is it a coefficient of liking either and disliking the other? Can anyone
clarify that?

~~~
var_explained
OP author here: the rivalries there are directional, "if you liked X, you
probably disliked Y", but not vice versa. (One thing I find interesting is
that most rivalries really are directional: you see git users disliking svn,
but not svn users disliking git).

Perhaps there's a way I could make that clearer in the post!

~~~
nobodyorother
The ":" implies bidirectionality (or at least, non-directionality), you could
clarify it in the graph by replacing ":" with "dislikes" or "->".

~~~
erikpukinskis
As a coder, : is pretty directional in my head.

A greater than sign would be explanatory tho.

------
christophilus
> One tag that stands out is the functional language Clojure; almost nobody
> expresses dislike for it, but it’s still among the most rapidly shrinking
> (based on question visits, it only started shrinking in the last year or so)

That's an interesting observation. Having learned Clojure this year without
asking a single StackOverflow question, I don't think this means Clojure is
shrinking. I suspect that Clojure's crazy good stability means no new
questions are really required for core things.

Also, Clojure tends to not be anyone's first language, if Clojure Conj is any
indication. Most Clojure developers I've ever met have been programming for >
10 years. Experienced programmers don't tend to ask as many "how do I do this
in language X" questions.

~~~
threatofrain
It's also shrinking on Github participation, which I don't think is good. Are
you saying that Clojure is growing, but it's growing with people who feel like
giving back less?

Meanwhile, Scala is skyrocketing. I would imagine that this is because Clojure
somehow missed the big data race.

~~~
christophilus
I'm not making a judgement call about whether Clojure is growing or shrinking.
Just saying that StackOverflow isn't a good gauge for the reasons I listed.

Github is a better gauge. I wasn't aware that it was trending downward. My
impression was more that it was slowly accreting instead of following a sharp
curve, which is just fine by me.

------
baldfat
R is the most liked! I have to say that over the past 5 years the language has
really just been getting better and better.

I know a lot of people have a bad taste with R but I blame the bad non-
programmers that used the language but Hadley Wickham and his tidyverse has
turned this DSL into one of the best languages to use for its purpose.

~~~
jhbadger
I probably have written more lines of R than any other language, but I
wouldn't say I like it. It is just so useful because of how much stuff is
implemented in it already. From time to time I get fed up with it and try to
use Python or Julia, but while I like both better as _languages_ , there is
always something I would have to spend a week implementing that there already
exists an R package for, so I return.

~~~
baldfat
I have talked with several people who were in your steps and then I mentioned
that "hidden" inside of R is a scheme influenced part of the language. I ended
up learning Racket, a fork from Scheme, and I have to say my enjoyment of R
has grown, especially using it within the tidyverse family.

------
Yizahi
I'm surprised by JavaScript results. I expected it to rival Perl for top
place.

~~~
CaptSpify
I really wonder how much this is tainted by being at SO?

There's a huge JS audience there vs other sites, IME.

Additionally, I'm kind of a JS hater, but I really only hate it because it is
just too often mis-used, not because it is actually bad itself.

~~~
sushid
Misused? How so? Are you referring to those that give advice with "just import
lodash and use ___" or "you can do this easily in jQuery like _____"?

I find that a lot of the JS answers are pretty good, and there are many 2-3+
year old answers that are edited with ES6 updates to the answer, which is
pretty amazing/nice.

~~~
CaptSpify
I'm not saying that the advice is misused, but that JS itself is misused by
most of the sites that implement it.

------
FollowSteph3
On a positive note for a language to be hated on that list it had to be
successful and big enough at some point to be useful ;)

~~~
dx034
And opened the field of programming to many. Delphi, PHP and VB/VBA were the
first languages of many of my friends back then who then went on to study
computer sciences. They were easy to understand and to create basic
functionalities, despite the shortcomings.

------
jpfed
The next step is obviously to take the most-disliked technologies and combine
them into something so bad it's good, like "the most unwanted music"
([https://www.youtube.com/watch?v=-gPuH1yeZ08](https://www.youtube.com/watch?v=-gPuH1yeZ08)).

~~~
lmm
So a Perl webapp for Internet Explorer (with a SOAP API, and some pages using
Flash), hosted on IIS, developed with Subversion?

~~~
gozur88
Heh. We had something really close to that until about a year ago. And yeah,
nobody wanted to work on it.

------
luord
I love javascript, it's basically the language I like working in the most
after python, yet I expected it to be near the top of the disliked tags. Good,
I guess, even if it does appear anyway.

Loving that postgresql, docker and python are so uniformly liked.

The backend/frontend rivalries I found hilarious for some reason.

------
baby
I'm surprised!

This would definitely not be my top, I guess someone's top is mostly
influenced by their own path.

I would definitely not list Ruby as a language I wouldn't work with, it reads
nicely and is very close to Python for me. Perl and PHP are somehow similar
and reads nicely as well imo.

What I would have put up there are things like Lips and Scheme that are just a
succession of parenthesis.

Probably Java would be the #1 thing I would refuse to work with.

------
davehtaylor
Putting examples in the entry fields in the questionnaire seems like a leading
question to me. When it says, "Tech you prefer not to work with: e.g.,
javascript, c#, php", one is immediately going to thing, "Well of course
people hate javascript! So do I" as opposed to letting the respondent decide
for themselves which they least prefer.

------
Gargoyle
Delphi is the one the surprised me most. Primarily because I can't remember
the last time I even encountered it.

~~~
meredydd
I'm going to guess that's because using Delphi _today_ means "legacy Win32
project I deeply resent maintaining".

The general principle of a programmable RAD with a nice IDE and a visual
designer is still very popular. I'd wager Delphi would also appear on a list
of "most-missed" languages, because using Delphi _back then_ meant a pretty
nice developer experience.

~~~
vintagedave
Nowadays it can be used for cross-platform dev too: iOS, Linux, Android,
macOS.

Still a pleasant language to use, IMO :)

------
ralmidani
I have to admit I never learned Lisp or any of its descendants. Its prefix
operators seem nice because they can make your code more concise, but its
endless parentheses make the language literally looks like ())

------
myth_drannon
So a decline in language is causing people to avoid/dislike it or a dislike of
a language is causing the decline in popularity ?

~~~
meredydd
There's also an age effect. If you're maintaining a Delphi or VB or PHP
codebase now, you're probably working on an older system, which means you
spend a lot of time stepping on rakes that someone left in the code ten years
ago. If you're writing something in Elm, it _can 't_ be more than a couple of
years old, and you're probably still in the green-field honeymoon period.

This emotional response probably transfers onto the languages themselves,
which means any language in decline will naturally attract resentment.

------
jampekka
Sad to see coffeescript so disliked. It has some bad choices, like the time-
bomb-scoping, but it was a promising era for programming language syntax when
coffeescript was in fashion.

But I guess most programming is mindless IDE-bingo where the least-common-
denominator churns megabyte after megabyte of same repeating crap badly
solving the same repeating problems, so it doesn't really matter that the
syntax is in your face hiding the logic all the time.

------
jstewartmobile
2nd chart seems more driven by fashion/geek-cred than intrinsic language
qualities.

Never met a Delphi expert who didn't love it. Never met a C++ expert who
didn't have grave reservations about it. It's like, "Here's your bag of
infected needles. You can make really slick games with them, but _be
careful_!"

bash... WTF?

~~~
nerdponx
I suspect some people use the "like" list as a "here are the 5 things I know
how to do best" list.

------
singularity2001
interesting outliers: csharp and bash should swap places, otherwise reaonable.

------
Exuma
Why is ruby so disliked D:

~~~
eximius
We're moving away from a Ruby codebase now. Everytime I have to grep the
codebase to find where a method magically came from, I die a little on the
inside.

I won't say it is a bad language, but it allows and seems to encourage some
bad habits.

~~~
eropple
I pretty strongly disagree with the idea that _Ruby_ encourages those bad
habits. But _Rails_? Specifically, _ActiveSupport_? Yeah, totally. But,
effectively, Rails is building a context-specific DSL for web apps that
happens to be leaking methods into _your_ code. This is much, much more a
Rails problem than it is a Ruby one.

My standard web stack is grape, grape-swagger, grape-entity, and Sequel (with
some handy libraries like Ougai kicking around) and I don't run into any
problems like that.

~~~
nilved
ActiveSupport does that because Ruby encourages it.

~~~
eropple
Ruby _allows_ it. Ruby _allows_ a lot of things. So does C++. So does
JavaScript. So does _Java_.

Deciding to do it is a question of taste.

~~~
nilved
I think it goes further than that unless you don't consider the documentation
and standard library sufficiently encouraging.

------
gwbas1c
C++

------
jmnicolas
I could see myself using VBA more if the "IDE" was not a 20yo piece of crap
that pops a MessageBox every time you have an error (I seem to always forget
to add the "then" when writing an "if").

Just underline the error but let me continue to code dammit.

~~~
Gargoyle
I don't mind VBA in its native habitat, I just usually don't like its native
habitat.

There are several languages on this list like that. I wonder if C# for example
has that as a factor.

~~~
drblast
That has to be why C# is ranked below Java. I don't understand a world in
which people would prefer Java, the language, over C#, the language, all else
being equal.

Working with C# likely means working in an MS-centric environment which is
probably what this is measuring more.

