
What are some of the most disliked programming languages? - fao_
https://stackoverflow.blog/2017/10/31/disliked-programming-languages/?cb=1
======
ACow_Adonis
I dislike R. As in, design and performance wise. But an alternative often
doesn't exist. So i am kind of saddened to see it so "liked".

You can best be sure as hell I wouldn't be listing it as something I hate on
any of my applications/resume though :P Try getting away from it in my field.
Not least because of the err...positive over-zealousness...of the R community.
I used to joke that the main difference between R/Hadley (no offense Hadley)
and Jesus was that some of Jesus' followers admit he might have made some
mistakes.

Also git. Look, i like it. I use it almost every day, but I'll be damned if i
trust anything that says its universally loved/not loathed.

I feel there's another dimension to this data not being captured/expressed,
but I'm genuinely struggling to verbalise what it would be...

~~~
goatlover
> But an alternative often doesn't exist.

Python, Julia, Matlab, Java, Scala don't exist for doing what? Are there
specific R libraries and functions that aren't reproduced in other languages?

~~~
ACow_Adonis
Aside from the libraries issues...

Understand I'm talking about in the context of my workplaces and experiences,
which, also in my experience, are a significant number of employers hiring
data science-type jobs.

An alternative doesn't exist in the sense that we've been battling for years
to get things that are more open and aren't SAS/Matlab/SPSS.

Finally we're at the stage where something is finally getting semi-approved
and installed reliably and the doors are opening...and its...R.

Python is becoming more common. Admittedly. And kudos to anaconda for its non-
admin requiring install. But in some ways even installing that is a bit
"naughty".

But Julia, Java, Scala, C?

No no. Those are programming languages. Software companies get those. Maybe a
handful of guys in IT if they need it for some reason, but many are still
working in places where most IT/security staff can't tell the difference
between R and RStudio. Github is blocked by the firewall and security :P

So the idea of options...maybe in another 10 years :P Until then, we take what
we can get...

~~~
Chris2048
Julia seems similar to python, and even runs fine on Jupyter. I think
[https://data-sorcery.org/](https://data-sorcery.org/) (incanter) might be
good JVM environment.

------
sverhagen
I'm no statistician, but if languages are new and upcoming, thus still have a
standing chance at being fast-growing at all, on Stack Overflow, would they
also be languages that aren't yet so established in corporate culture (for
being new) that they aren't forced onto people, so that people gravitate more
voluntarily to them, so that they are more prone to liking them, so that
(finally) they're bound to be less disliked? I mean, I read it, and I went
like: "duh".

~~~
fusiongyro
This is probably why Stroustrup famously remarked "there are two kinds of
language: the kind people bitch about, and the kind nobody uses."

~~~
danieldk
It is easy to repeat platitudes, but the data doesn't really show it. Take the
ten most popular languages: Java - slightly negative, Javascript - positive,
Python - positive, C# - slightly negative, PHP - negative, C++ - neutral, C -
neutral, R - very positive, bash - positive, Swift - positive.

The interesting correlation here is that languages that are on their way out
seem to be more disliked (Perl, Delphi, etc.). There are multiple possible
explanations, e.g.: their usage is shrinking because they are disliked; or
people dislike them because they are not 'sexy' anymore.

~~~
jacquesm
You have to discount the age factor. Newer languages will always be growing
compared to older languages, and early adopters are advocates rather than
people criticizing their new chosen tool. To properly criticize something you
first need to become intimately familiar with it.

~~~
72deluxe
Oddly, this does not apply to C++ which has been steadily growing and growing
in features, yet gets criticized for being "too complicated".

Of course, you can get by knowing only the bits you need, and Stroustrup makes
the excellent points in his hopl-almost-final PDF that newer languages are
easier to "get into" because they haven't had years of having new features
bolted on, hence they appear "simpler". A few decades down the line and
they'll be in the same position.

~~~
fusiongyro
I want to agree, but C is even older than C++ and is definitely not in the
same position. Ultimately, each language is different and the way they grow is
different. C++ has just never been all that conservative about admitting new
features. Their primary concern seems to have been the effect on the runtime
performance of the binary, not whether the feature makes sense or mixes well
with the existing features, or the effect on compilation time.

~~~
72deluxe
This is very true. As I sit here waiting for my compilation to finish, I am
reminded of the "speed" of compilation.

------
indubitable
It seems that the survey methodology here maps more to some mix of familiarity
and popularity, rather than liking or disliking. They're basing the results on
the technologies people indicate as being interested in working with (that's a
like) and those they're not interested in working with (that's a dislike).

People are going to "like" the technologies they know and are familiar with.
They're going to dislike popular languages that they may otherwise receive
numerous offers about. Relatively uncommon languages are going to receive only
popular votes since there's no incentive to dislike them. E.g. nobody's
getting spammed with recruiters seeking R expertise. This explains why
unpopular language also seem very well liked. When considered as a ratio,
there's almost nobody disliking them and a handful of people liking them.

I think javascript's position here is the most clear example of the problems
with methodology. I think it's safe to say that most consider javascript a
flawed and undesirable language (compare to a hypothetical alternative), but
at the same time there are a zillion javascript developers who are willing to
work with javascript. So the raw number of people willing to work with it for
a paycheck outweighs the dislike of the language itself.

Compare this to something like C#. My first thought (before considering the
above) is that its lack of popularity was a cultural issue. It's maintained by
Microsoft and is probably seen by many as a more corporate and established (in
a somehow negative way) language. But then scroll down to their "tag
rivalries" section and the real issue becomes clear. The people who most
"dislike" C# are visual basic developers!

~~~
camus2
They should have asked "what technologies are you familiar with that you
wouldn't want to work with?".

------
photon-torpedo
Note that the data for "(dis) liked language" comes from answers to "language
I would (not) like to work with" given by developers on the job market. I
think those answers don't reflect so much the developers' sentiment towards
the language, but their expectations about future job prospects in that
language.

~~~
andrioni
Not only that, but also languages you dislike enough to tell everyone who
reads your CV you won't work with them, like ACow_Adonis said. I know many
people who avoid R as much as they can, but would rather work with it than be
unemployed.

------
ivanhoe
So perl is the most disliked, and bash is one of the most liked languages?
Most of people have at least some experience with bash, so they don't mind it,
but perl looks scary to them. And they probably never really used any of the
two, otherwise they'd notice that almost all of ugly things in perl are taken
from bash.

IMHO these stats have little to do with the language itself, and say much more
about the current fashion and job niches.

------
pacoverdi
It's funny to see Perl on the top of that list. I was a Perl hater for so long
that I don't even remember how it started. It probably has to do with the
extensive use of symbols (=~, -s, -d, s/ ...) that makes code quite unreadable
and the fact that it sometimes feels more like a shell or a UNIX tool than a
proper language.

Recently I wrote a program in Perl after more than 20 years and I actually
found it quite enjoyable. It's so easy to write scripts with option parsing
that do file processing. You can even make them very readable as long as you
sprinkle it with some comments alongside the tersest statements :)

But I guess if I had to write or maintain bigger projects in Perl the
nightmare would begin.

~~~
ivanhoe
Not really, because "unreadable" is a very subjective metric. When you spend
some time with a syntax your brain learns to parse it quickly and
effortlessly. Perl's use of $%@ prefixes to mark the type of variable actually
makes it easier to understand, once you get used to the syntax.

~~~
pacoverdi
100% agree. Another factor is that Perl is highly correlated with heavy usage
of regular expressions. Those are easy to write but often pretty hard to read
whatever the enclosing language (and author) :)

------
tribby
I love perl, but probably only because I am already well versed in it. can do
a lot with it and it still is the best option for some things.

I wish perl 6 had a larger community, it actually looks very cool.

~~~
forinti
I do lots of data munging and loading with Perl. There's nothing that comes
close to the productivity that Perl enables me to have.

------
mavelikara
I was surprised to see Ruby attracting much dislike. I had the impression that
it was a language explicitly designed to be used by human programers to
express ideas, although with poor runtime performance. What could be the
reason?

~~~
shakna
Poor performance, and Ruby likes magic. Magic methods and macros scare off a
huge audience of programmers in the mainstream world. Rubyists tend to
wholeheartedly embrace them, however.

~~~
edoceo
Magic is exactly why I stayed away from Ruby. You have to learn some for every
environment but Ruby was too much for me. Perhaps because I first saw it with
RoR - which adds even more magic.

~~~
quetzthecoatl
Both above and above one's parent comment is about rails, not about ruby. It's
understandable that most people got familiarized with ruby because of the
popularity of rails, but confusing between the two?

~~~
shakna
I've written Ruby, not Rails. In fact, most of my Ruby work hasn't had
anything to do with the technologies associated with the web, they've been
desktop GUI applications and server applications (like dealing with
ActiveDirectory). I'm not confusing anything, I'm speaking from experience.

The Ruby community likes things that think for you, and insert methods
unexpectedly, change the meaning of semantics, and all sorts of other magic
designed to think for the programmer.

------
dragontamer
I'm (pleasantly) surprised that C++ isn't nearly as hated as I expected it to
be. I never considered C++ to be a bad language in my experience.

I'm surprised that C# and Java are higher than C++.

Perl being #1 isn't a terrible surprise. But I think its no small secret that
Perl is usually the ugliest, but most practical... language for a huge number
of jobs. No one likes using Perl, but damn is it useful in a lot of
situations.

Matlab would be that language I dislike (despite it being low on the list).

~~~
tehlike
I am surprised with c# vs java as well, but they are close.

I code c++, javascript and java these days, and i greatly miss my c# days.

Say what you will about microsoft, but i consider C# and the default
development environment in vs superior compared to what's available for other
languages. That with Resharper back in the day was the bomb.

~~~
smithkl42
Heck, still is. C# is a nice, pragmatic, practical language, and the
VS/Resharper combination can't be beat anywhere, period. I love how lazy it
lets me be.

~~~
tehlike
Funny enough, I developed libraries mostly, in both for server use
(nhibernate/castle), and for client side use (windows phone), and i can say
pretty confidently that development environment for windows phone 8 was far
superior to what android had, too. Android was a platform for years while wp8
was really new.

Microsoft knows how to create developer tools, and languages.

~~~
dep_b
It's an ugly secret that WP in many regards was the best platform out there.
If it was about 90's desktop operating systems it would be BeOS out of the
options Windows 98, MacOS 8 or BeOS.

But it was not only late to market but also Microsoft's PHB's managed it
pretty ugly.

------
flukus
What do people have against delphi? I thought it was a nice fast language with
a decent UI builder for native(ish) apps. I've never used delphi as it is but
I've got fond memories of pascal. I didn't realize it was even used enough
anymore to have people dislike it.

~~~
Double_a_92
I have to use it at work (for legacy reasons) and it's the worst IDE ever.

Prepare yourself for random crashes, Auto completion and code Navigation not
working, and if you debug 64bit values of local variables sometimes are not
accessible.

Also the bar with the open files doesnt Scroll and isnt resizeable. Tidious as
fuck if you have more than 3 files open.

And it doesn't even have proper syntax highlighting! You have to install some
shady chinese plugin if you want it. Ffs!

And don't get me started about the Pascal language it uses... There is
absolutely no actual help on the Internet. Forget StackOverflow, some old
German forums is all there is.

And it forces you to have some kind of Header section in the file were you
declare fields and Methods that you want to implement. If you want to quickly
rename or change some parameter you have to Scroll All the way up...

 _rant off_

~~~
vintagedave
I have to step in here to correct a few completely false statements.

> And don't get me started about the Pascal language it uses... There is
> absolutely no actual help on the Internet. Forget StackOverflow, some old
> German forums is all there is.

> And it forces you to have some kind of Header section in the file were you
> declare fields and Methods that you want to implement. If you want to
> quickly rename or change some parameter you have to Scroll All the way up...

There is /plenty/ of help online and SO. In fact, for some topics (eg raw
WinAPI programming) you will often find /more/ help, articles, or blogs using
Delphi than in other languages, including C++.

As for a header: yes, you define a class and its methods, and implement it,
separately. I'm guessing you're not used to languages where this is the norm?
That's quite ok, but don't knock it :) FWIW, just turn on "Sync Prototypes"
and when you modify a method, the declaration for it changes too, and vice
versa.

[http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Code_Edito...](http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Code_Editor#Synchronizing_Prototypes)

There are also other IDE features, such as a shortcut to autocreate methods
you declare (Ctrl+Shift+C, "class completion".) Type a new method in the
interface, press it, it exists. Use Ctrl+Shift+Up or Down to move between the
interface and implementation of the method(s), too. If you are scrolling, that
is a more efficient way to navigate ;) Or you could use the shortcuts in the
editor toolbar, listing methods/classes etc etc, if you prefer mouse
interaction.

If you're a keyboard user vs mouse, mainly, check out some of the keyboard
shortcuts:
[http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Default_Ke...](http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Default_Keyboard_Shortcuts#Code_Editor_Keyboard_Shortcuts)

I have no idea what you mean re "proper" syntax highlighting. It does indeed
highlight. The main thing I know of that GExperts modifies here is changing
the colour of block keywords as it indents, and Delphi does that through a
block indicator line in the editor, instead.

~~~
Double_a_92
The problem is that the shortcuts don't work (as expected) half of the time
for some reasons... So I stopped relying on them.

As "proper" syntax highligtting I mean things such as highlighting every
occurrance of a clicked variable, and maybe some color. The default prints
"begin" and "end" blue and adds some lines to control structures... wow. ._.
I'm using CNPack for that now.

------
spinningarrow
> 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

~~~
michaelmrose
Is it fair to correlate a single qa site usage even a massively popular one
with popularity.

By that definition if error messages improve it will be deemed to "shrink".

------
luhn
I'm really surprised to see Ruby so high on the list. I have limited
experience with it myself, but I had the impression it was a generally well-
liked language.

~~~
bjz_
I'm one of the new generation of devs to have come into the startup world in
Melbourne after Ruby stole its heart, and damn is it a mess and a maintenance
nightmare. So many production bugs due to nil pointers, missing methods, etc,
and a woeful time to be had if you want to start doing large scale refactors
and clean up tech debt. Makes me sad that when faced with Java the generation
before me escaped towards Smalltalk and Perl rather than towards ML and
Haskell.

Thankfully we seem to slowly be turning it around though. If only on the front
end, that is - with Typescript, Elm, Flow, Reason, etc. In Melbourne the
Rubyists seem to be running towards Elixir hoping it will save them, but
having worked on a number of Elixir code bases it seems that while solving
some problems it leaves many still standing. :(

~~~
swat535
None of the points you made are specific to ruby. Any language can have
technical debt, dangling pointers and so on. I think you might have had the
misfortune of running into mismanaged code bases.

~~~
bjz_
> Any language can have technical debt, dangling pointers and so on

Any language can have tech debt, but I want access to tools in order to help
me refactor my way out of that. Working with Ruby feels like building on a
foundation of sand with mashed potatoes. It requires a huge amount of
discipline to maintain a good enough test suite to combat code rot, and even
then, a sufficiently paranoid test suite becomes a hindrance to change (not
arguing against tests, just how much extra testing a dynamic lang requires of
you if you want to have confidence). You have to refactor incredibly slowly,
one small change at a time.

Dangling pointers are not an issue in languages like Haskell, and ML. We've
had these around for decades. Thankfully most newer languages are banishing
them.

------
tekkk
R is a great tool but terrible programming language. There is some basic
fundamentals how programming language should work which R just disregards for
the sake of being different.

Okey indexes start at 1, I can get past that.

Variables are initialized with "a <\- 1" okey well for each to their own.

Return requires you to wrap values with "()" so "return x" doesn't work but
"return(x)" does. Umm.

You should never iterate over a dataframe except when you have to and then
there's a plethora of different ways to do it. Some are better, some are
worse. But isn't it nice that everyone can invent their own way of doing it?
Right?

Those are what I can come up with from the top of my head. But overall the
feeling I get when I code R is that it's this mystic arcane magic that
requires completely new way of thinking compared to other programming
languages. And it's very frustrating.

Python is better but I have my issues with it too. Mainly the fact that
debugging in Python is such a pain the ass and typelessness makes reading of
other people's code a nightmare at times. Also libraries like numpy, pandas
and matplotlib are very convoluted with kinda bad documentation. Maybe a good
IDE would solve it with Intellisense and RStudio like capabilities (again
where R shines). I've tried Spyder/Rodeo/Pycharm but none of them were as
simple and user-friendly as RStudio when doing data-stuff.

EDIT: Anecdote: I did some programming with a statistician who is a R-guru and
he wrote terrible code in Python. Would he coded better if he had learned a
different language than R? Maybe. In my opinion probably yes.

~~~
hadley
Sounds you like have a very OO background. I'd strongly encourage you to learn
more about functional programming (FP). I personally believe it's a very good
fit for the types of programming you commonly encounter in data science, and
it leads to elegant and readable code.

I've written a bit of an intro at [http://r4ds.had.co.nz/iteration.html#for-
loops-vs.functional...](http://r4ds.had.co.nz/iteration.html#for-loops-
vs.functionals)

------
lainon
This has already been discussed yesterday:

[https://news.ycombinator.com/item?id=15592960](https://news.ycombinator.com/item?id=15592960)

------
kluck
I begin to find the constant bashing of Perl amusing. Such a great language,
people just use it and it gets stuff done. I have no explanation as to why
people hate it, other than because most people just don't understand Perl.

~~~
zimpenfish
I've used Perl since 1991. I've spent more than 80% of my career writing and
maintaining Perl. I get paid large amounts of money to come in and help people
sort out their Perl projects.

... it's not a great language; it's a clusterfuck of "cleverness" which lets
"clever" people implement horrifying glass cathedrals that shatter as soon as
you open the door.

(And there is some selection bias here, I'll admit - the people who control
their Perl programmers and enforce simple, readable code don't need
contractors to rescue things. It's generally only the hideous fractals of
fuckery I get to see.)

~~~
kluck
> ... it's not a great language;

Yes it is.

> it's a clusterfuck of "cleverness" which lets "clever" people implement
> horrifying glass cathedrals that shatter as soon as you open the door.

It is clever, so are most other languages. It lets do people do horrible
stuff, as well as wonderful stuff, same as in most other languages.

The Perl code from other programmers that I usually come across is mostly
using established popular CPAN modules and/or frameworks that encapsulate the
"clever" parts. I think you are right in that you mostly get to see Perl code
that does need help, rather than the better maintained Perl code that does
exist as well.

~~~
tmaly
I agree it is a great language, but you need to have discipline and a coding
standard to avoid the pitfalls of TIMTOWTDI

------
nhebb
I assume the higher than (I) expected dislike for C# is because of the
Microsoft ecosystem, not the language itself. It will be interesting to see
whether that remains so over the next few years as .NET Core and VS Code
mature.

~~~
InclinedPlane
Indeed. I've used a lot of languages and C# is one of the best to work with.
It's easy mode for practically any task you can imagine. Maybe it has to do
with the employers who want to use C#, I can imagine more of a predominance of
enterprisey hell holes making dumb line of business apps.

------
asicsp
please don't hate Perl, it is great for one-liners from command line ;)

though I do wish the move towards Python in VLSI industry had occurred lot
earlier

------
rbobby
No MUMPS? No RPG?

------
janci
I clicked on this just to see if perl is on top :D

------
jondubois
I'm surprised that JavaScript not disliked by more people given that it's
probably the #1 language that developers are essentially forced to learn
(often against their will). I guess it's a testament to how good it is/has
become.

------
arximboldi
Interestingly, but somewhat unsurprising, most disliked languages are
"medieval" languages according to:
[https://www.youtube.com/watch?v=y2___qaG_9Q](https://www.youtube.com/watch?v=y2___qaG_9Q)

;-)

------
eecc
I like the network plot. In it I recognize how some stacks are growing and
shrinking in popularity: ML/AI, JavaScript are growing. PHP Is losing to Node.
MS and Oracle JEE down, Java Spring moving on... I definitely need to polish
my Kotlin

------
palad1n
Lisp? Did I miss a mention of it?

~~~
dragontamer
Its right there under "Javascript". Lol.

Since Javascript is one of the few languages that first properly implemented
clotures, and are functional to boot. A big joke in LISP circles was that
Javascript is more similar to Scheme (one LISP dialect) than it is to Java.

~~~
gnulinux
Wow so many wrong in one comment. Javascript is not the first language
implemented closures. Javascript is close to scheme ... compared to C, Eiffel,
Algol, Haskell? Semantically null statement. Javascript is not named
Javascript because it is supposed to be close to Java; no one thinks
Javascript is close to Java, so comparison is misguided.

~~~
dragontamer
[http://www.crockford.com/javascript/javascript.html](http://www.crockford.com/javascript/javascript.html)

Don't blame me. Blame Douglas Crockford. And I think Mr. Crockford knows more
about early Javascript history than you do.

[http://www.crockford.com/javascript/little.html](http://www.crockford.com/javascript/little.html)

~~~
gnulinux
The link you gave explains my 3rd point. It doesn't mention Javascript being
the first closure implementation. And it says Javascript is closer to Scheme
compared to C and Java; which is _exactly_ what I suggested above (which
didn't support your original argument).

~~~
dragontamer
Dude, its an offhanded joke comment. I'll accept the downvotes if you don't
find the humor funny. But please, don't bring forth this aggressive discussion
style to YCombinator.

This ain't Reddit. YCombinator is supposed to be a way more mature
environment.

\-----------

I'll play "serious business discussions" on issues that actually matter or are
of technical importance. But there's no need to be this aggressive on this
humorous issue.

~~~
gnulinux
Never intended to be aggressive. But I want to emphasize that your joke
comment included misinformation, and I cannot find any reason not to point out
misinformation. You're not downvoted for the joke, you're downvoted for
writing misinformation without explicitly stating it is so.

------
josteink
Microsoft despite all their efforts clearly takes the lead on disliked
technologies. Poor guys.

Given the typical “developers use Macs” mantra you see echoed everywhere, it’s
interesting to see OSX so clearly disliked too though.

~~~
bdcravens
I think the issue with OSX is the perceived decrease in quality over the past
few years.

------
dsfyu404ed
Whichever one the legacy code is written in.

I'm surprised nobody said that yet.

------
krupan
Chip (ASIC, SoC, FPGA) designers kind of all hate verilog and VHDL, but the
alternatives, sadly, aren't gaining much traction yet.

------
Animats
Short version: Perl, Delphi, and VBA are the most disliked languages.

~~~
edoceo
Perl is like Crack. Feels so good to use it and it solves the narrow problem
so fast. But when you have to go back to it you feel so dirty.

------
fb03
HolyC ?

