top | item 6527104

Poll: What are your liked and disliked programming languages?

996 points| wting | 12 years ago | reply

This is a combination of these two polls:

    https://news.ycombinator.com/item?id=3746692
    https://news.ycombinator.com/item?id=3748961
That resulted in this chart:

    https://i.imgur.com/toGKy21.jpg
Since that poll is ~18 months old, I thought an update is in order.

This poll also adds a few new choices: F#, Go, R, and Rust.

Vote as many choices as you'd like.

Note: By voting for a language you are not up voting this poll. Please up vote this poll to keep it alive.

463 comments

order
[+] simias|12 years ago|reply
And the award of least significant poll of the week goes to...

Seriously, you won't get anything meaningful out of this, people will vote for the language they like and then bash the usual suspects (PHP, actionscript, C++,...). Also they will browse the first 20 entries or so and then get bored and skip to the end.

I'm sure the people who "dislike cobol" (7 people at the moment) have intimate knowledge of the language in production in order to cast such a vote.

It's just a popularity contest and a bad one at that.

Also: "Other - Dislike: 5 points". Enough said.

[+] adolfojp|12 years ago|reply
Polls like these are meant to be subjective and to encourage discussion. Dismissing them because they're not scientific kind of misses the point.
[+] atwebb|12 years ago|reply
There's going to be the common blabber and hating on the usual suspects but polls like this tend to be good ways to bring up a general topic and let everyone discuss. Maybe it would've been better in a AskHN but at least here we get a list to reference (and for people to get angry at what's missing, people love getting angry). Also, it gives a view of what this specific community in this specific thread feels and adds to the context when reading other threads.
[+] efa|12 years ago|reply
My thought exactly. Actually I was think - "geez, these people are such hipsters". Everyone loves the "cool" languages - Scala, Haskell, etc. But of course the lame languages suck (Java). Though I was pleasantly surprised to see the love for C#. It's a very nice language and you'd think being from MS it wouldn't be "cool".
[+] redman25|12 years ago|reply
Just curious, why are people bashing Actionscript? The language itself is based on Javascript and Javascript isn't getting so much hate. I know everyone hates Flash now... maybe I just still have a soft spot in my heart for programming Flash-based games back in the day.
[+] UnfalseDesign|12 years ago|reply
Also, in most cases, is it the actual programming language we hate or is it the code we've seen written by people who had no concept of the language that we hate?
[+] zentiggr|12 years ago|reply
Since like|dislike is orthogonal to bad|good (how do you really define any one of the four anyway?) this poll can capture a decent sampling of current opinions about languages, from a fairly relevant subset of <the world>, and present at least a little more info than just dry feature comparisons. My two cents.
[+] Patterner0|12 years ago|reply
I voted "COBOL - dislike" because I actually work with it (although it was missspellt "Cobol").
[+] reidrac|12 years ago|reply
Well, the like/dislike are totally subjective things. I can't tell if I like or dislike most of the languages of the list because I don't use them or, in some cases, I don't use them enough to have a strong opinion.
[+] Kurtz79|12 years ago|reply
For me it's a perfect answer to the question "Why there are so many programming languages ? ".
[+] tmikaeld|12 years ago|reply
It's quite silly asking such a subjective question, but aren't most polls just that, subjective?
[+] wambotron|12 years ago|reply
I can only speak for myself, but I marked languages I liked that I've used enough to say like/dislike. The only one I disliked was ruby, which is something I've done enough in to know one way or the other. Overall I ended up with a bunch of likes and only one dislike.
[+] beat|12 years ago|reply
All programming languages claim to be better than that "Other" language!
[+] Ovid|12 years ago|reply
You are absolutely correct. That being said, I "disliked" COBOL as I used to be a mainframe programmer. It's a foul, foul language, but ironically, owes much of its success to that (long story).
[+] barrkel|12 years ago|reply
The like:dislike ratio is a metric with some information, as well as the absolute numbers of votes (for mindshare).
[+] Shivetya|12 years ago|reply
oh I would just be as happy to label anything case sensitive as something I don't like. Easy as that.
[+] asdasf|12 years ago|reply
>Seriously, you won't get anything meaningful out of this, people will vote for the language they like and then bash the usual suspects (PHP, actionscript, C++,...)

Why do you insist that is not meaningful? Of course they will vote for the language they like, that is the purpose of the poll. Obviously people can vote from ignorance, but that goes both ways. Just as some people "dislike" cobol despite a lack of experience with it, so too do people "like" PHP despite a lack of experience with it.

[+] iliiilliilil|12 years ago|reply
>Also they will browse the first 20 entries or so and then get bored and skip to the end.

Why would I need to browse down the list? Nobody here has used every language in existence. You hit ctrl-F and cast your vote on your favorite and least favorite.

[+] smrtinsert|12 years ago|reply
Agreed. Unfortunately its posts like these that have become the norm here.
[+] wting|12 years ago|reply
There will be obvious winners and losers, but I'm interested in the long tail results.

The poll quantifies a community's thoughts as only the vocal minority comment while the majority lurks. It provides a snapshot for comparison with other communities or even to Hacker News 18 months ago.

Language threads will provide more insightful commentary, but a general poll is useful for macro trend discussion.

[+] wslh|12 years ago|reply
I like C# more than Java because:

- The .NET Framework is a straightforward way to solve a problem vs pattern oriented solutions. This is not about the programming language itself but how the people in that community think about a problem

- C# evolved more than Java and it was more pragmatic. There are no operators in Java.

- I really like the diversity and maturity of third party Java libs. That's why I use IKVM when I need to use a lib from Java in .NET and why I use Jython. Examples here: http://blog.databigbang.com/tag/ikvm/ and here: http://blog.databigbang.com/tag/jython

I don't like Javascript, I would like to replace it with a standard VM to run other programming languages like Python.

I like C++ for performance oriented applications and when good libraries are available. For example I like CryptoPP.

I like Objective-C and their additions like Grand Central Dispatch. I like XCode.

I love Python: it's straightforward to build stuff.

I don't like PHP but many times I prefer to build some web scripts using PHP.

I like Pascal for teaching algorithms. More than C, because is less ambiguous.

I don't like C anymore except for firmware.

[+] sjwright|12 years ago|reply
Saddened to see a high number of ColdFusion dislike votes. As a CFML developer who routinely bears the brunt of gleeful derision, allow me to point out what you're missing out on.

Yes, ColdFusion was a bit awful in its early days, but to be fair, it was pretty much the first of its breed, predating PHP, JSP, and ASP.

Modern CFML is a JVM-native language and framework that runs in a Java servlet engine. There are three first-class from-scratch implementations, two of which are fully open source. To cut a long story short, the best one is called Railo, and yes, it's one of the open source ones.

Modern CFML running on Railo is an awesome environment to work in: PHP-like hackability, native JVM performance, first-class java library integration, all on a 100% pure open source software stack. Think of it as JSP for genuinely rapid development.

I swear if Railo wasn't associated with the stigma of ColdFusion, it would be up there in the pantheon of fashionable web languages. It's Groovy with batteries included. It's Ruby On Rails for people who wish their code ran faster and realise that ORMs are inherently stupid. (Or there's Hibernate integration for those who haven't realised this yet.)

[+] nicholassmith|12 years ago|reply
I like C++. I dislike C++.

No seriously. For everything good about a language there's usually something that's not so good and is completely frustrating. That's why there's so many programming languages, they're all awful and excellent at the same time, asking a favourite is like saying 'do you prefer being hugged whilst on fire, or being hugged by someone on fire'.

[+] asgard1024|12 years ago|reply
Sounds like a Stockholm syndrome. :-) No worries, I have that with Haskell.
[+] fdr_cs|12 years ago|reply
I guess that liking or not, depends on how much you like the features, to forget/forgive/disregard it's drawbacks. For example, Python has drawbacks ... but, I do LOVE the language, is just such I joy to code in Python, that I just dont care that much about its problems. For me, is the same for C and Lua But, for C++, is the oposite. I do like some of its features, but, overall, I really hate the language. Too much headaches and pitfalls. And it's the same for javascript. But, hey, it's a personal opinion. I do really respect brendan eich as a developer, even lot liking javascript.
[+] MartinCron|12 years ago|reply
I was thinking the same thing about simultaneously liking and disliking JavaScript.
[+] mVChr|12 years ago|reply
I feel the exact same way about Javascript.
[+] leokun|12 years ago|reply
In my very uninformed, and novice opinion, which you should entirely disregard, it is my probably incorrect estimation that the Rust developers are in maybe over their heads. I don't like saying negative things about an interesting idea, good engineers who mean well, so I don't like this so please someone convince me why I'm wrong.

A few things:

The multiple ways to manage memory seem completely messy to me, the various ways to box values and what not and what the implications are. It's not pretty, it's not elegant, but then sometimes things aren't. I'm complaining about prettiness over usefulness somewhere else in this thread. But the box memory model thing left me feeling like it was a convoluted solution that could end up in confusion.

No SSL stuff. Not much encryption stuff. And worse of all in their mozilla IRC channel those guys said writing such things should be left to experts, that people should always use the C libraries with rust. Being able to make HTTPS requests would be a pretty important feature for a browser like Servo I'd think. It's true security features should be vetted, and cryptography requires expertise, but on the other hand look at Go. They wrote a lot of their own cryptography code in go, and it seems to work pretty damn well.

The pace of development. Given the state of the network io library, the many packages required to get to a useful state, it seems like it's going to be about a decade or so before Rust is even usable. Which is fine, it's not a race. But overall I just get the feeling that I'm not sure Rust is what it aspires to be.

Anyway. I hope Rust does do well. I like the idea, I like the people working on it. Maybe I shouldn't have committed to forming any kind of opinion still so early in its development.

[+] timdiggerm|12 years ago|reply
I hope it's okay to vote Like and Dislike for javascript
[+] Jare|12 years ago|reply
I had to do that for SQL
[+] slackito|12 years ago|reply
I did the same for C++. I hate many aspects of the language, and it feels really ugly compared to newer languages like C#, or even D, but it's still my language of choice for some projects (mostly because the tools are mature and almost everywhere).
[+] arethuza|12 years ago|reply
I would have done that for XSLT if it had been on the list.
[+] skizm|12 years ago|reply
Damn Java has a 1:2 like to dislike ratio. Why do people hate on Java? I'm totally biased because it is the first language I learned and I use it daily but seriously, why the dislike? It is powerful, portable, stable, hard to shoot yourself in the foot with, and tons of standard libraries. Also the libraries (standard or 3rd party) rarely violate the rule of least surprise. I can nearly always guess the right way to do something if I don't know about an object in a library.

Sure it has warts like all other languages -- memory hog, weird design patterns, bulky code -- but a lot of those can be easily avoided or worked with.

Sorry for the rant. I've just never had someone give me a straight answer as to why Java is so disliked. It usually has something to do with design patterns (FactorySingltonParentFactory.helper.blahblahblah) but that's just preference and is hardly the common case with Java code.

[+] agentultra|12 years ago|reply
"Assembly"? For what platform? I could care less about AT&T, I've learned to live with Intel, and I'm interested in ARM. It's rosy to think that I like 6502 but it's not the best. What does it even mean to, "like," one of these, "languages?"

I've only learned various assemblers by way of necessity writing compiler backends (usually in my spare time for fun... I don't even know these platforms well enough to write a serious production-grade backend with optimizations). Some I find easier to work with than others... but how can you, "like," one over another? I find assembly to be rather devoid of any characteristic that I find interesting or emotionally endearing.

It's easier to attach an emotional context to a programming language these days by proxy; I think most programmers simply associate with the culture that develops around a language. But there was an era when a programming language was just a manual and all you had was a compiler. There wasn't anything particularly interesting about using one over another beyond perhaps what they were capable of from a technical perspective.

So what does it mean to, "like," a language? Do you find it technically superior relative to all others? Is there some socially accepted criterion I am unaware of by which we measure how we feel about a language?

People are strange.

[+] colkassad|12 years ago|reply
Regarding the language itself, what's there to dislike about C#?
[+] nsxwolf|12 years ago|reply
I was actually expecting the HN crowd to hate Java more than PHP. But it was close!

143 dislikes for COBOL? Call me cynical but I'll bet most of those votes came from people who have never been near a green screen.

[+] mindcrime|12 years ago|reply
I'm surprised at the lack of love for Groovy. Groovy rocks... I made the decision to switch all of our development to Groovy (and Grails) a couple of years ago, and I haven't regretted the move at all... it's gone astonishingly well. Much faster development than in raw Java, but without a huge learning curve, and yet still with seamless integration with existing Java libraries, plus more than a few very cool native Groovy libraries. What's not to like?
[+] DanielBMarkham|12 years ago|reply
What? No love for F#? Why do folks always leave F# out of these things?
[+] Miyamoto|12 years ago|reply
You can tell this is a bullshit poll by how many people like C. Don't get me wrong, it's a great language, but there's no way there are that many people programming in C. It has as many likes as JavaScript. Rather, people just voted C because it's a favorite language and it usually has positive press around Hacker News. So people vote what's popular and hip, despite probably having never stepped out of their web development languages (PHP, Ruby, Python, JavaScript, etc.) bubble.
[+] vezzy-fnord|12 years ago|reply
I can see that there's visible hate for Perl.

As a disclaimer, I'm not much of a Perl programmer, though I intend on sharpening my skills with it after I'm done with a few other projects.

It appears that it's been trendy to hate Perl for a while now, with the often repeated argument that it looks like line noise.

Yet I've seen plenty of people praise APL for its obscure design, even though it is the definitive unreadable language. To the uninitiated at least, but that's the point. I haven't used it, but I don't hate it, and I think it deserves praise for being a non-Von Neumann language.

The thing is, Perl is pretty much the hacker's language. TMTOWTDI, although allowing for inconsistency, also makes it a highly flexible tool and allows for people to hack together code, be it prototyping or for real use, fairly quickly and to their own preferences. With first-class regexes it's also invaluable for text processing and sysadmin tasks for which a shell script becomes tedious.

The CPAN is also exhaustive and has solutions for so many tasks, making Perl a very tempting language for scripting and general problem solving.

Ultimately, Perl is a tool and it serves a very good purpose. It has the potential for abuse and its philosophy is based on individuality and being able to take several approaches, but that's what makes it beautiful.

Letting go of the line noise mentality and getting to know the language better helps.

[+] adolfojp|12 years ago|reply
This poll should be more specific with Visual Basic. There are a few different languages that share the name VB.

VBA

VB.NET

VB6

VBScript

[+] nostrademons|12 years ago|reply
This poll seems to give considerable credence to Stroustrop's Law: "There are two kinds of programming languages: The ones nobody likes, and the ones nobody uses." Popular industrial languages like C++, Java, ColdFusion, PHP, and Cobol rank horribly, while niche languages like Lisp, Ocaml, Haskell, and Erlang or emerging stars like Go, Clojure, and Scala rank highly. Even Objective C, which was a cult favorite before Apple made it popular, now has more dislikes than likes.

My pet theory on why this is is that when a language becomes popular, people have to use it against their will. Everybody who uses Haskell likes it, because there is basically no reason to use it if you don't like it. Not everybody who uses C++ or Objective C likes it, because there are many reasons to use them (eg. getting paid) that don't involve liking them.

There are a couple of exceptions: Python and C consistently rate highly despite being widely used, and Rexx and Groovy consistently rate low despite being virtually unknown. The latter might just be bad languages and the former really good languages; actually, this poll seems to be pretty good evidence that the old combination of Python + C for apps is a pretty solid choice.

[+] captainmuon|12 years ago|reply
Funny, I'd say I like functional programming... and yet I disliked all the functional and/or lisp-like languages that are the bees knees these days... Scala, Scheme, Clojure, Haskell, F#, ... All of them have neat sides, but I'm not really productive in any of them.

There are things like too-clever type systems that get into your way, instead of catching errors. Constness can be silly in C++ if you are not careful, but that's nothing against the situation in e.g. Haskell.

Then there is type inference, which really scares me. When I write (in pseudocode):

fun add(a, b) { return a + b; }

the meaning can change depending on how this is called at a different place in my code (e.g. with strings or ints as arguments). On the one hand, this confuses me - if there is a conflict, it can be incredibly hard to debug. On the other hand, the compiler can get confused. If I call add(get_number(x), get_number(y)), I know that a and b are going to be ints, but the compiler might be unable to infer this, depending on how complex get_number is. Type inference is magic, and IMHO often not worth the saved keystrokes. I'd rather have my language use a Variant type when no type is specified (and sure, when it can infer the type, use it as an optimization).

[+] babuskov|12 years ago|reply
What's Shell?

If you mean Unix/Linux shells, you should have picked a couple, or just used Bash, because many people would upvote one shell and downvote another. Csh, Bash, Zsh are completely different when it comes down to what you like or dislike.

[+] frewsxcv|12 years ago|reply
I like Fish. I dislike Bourne Shell. There's no way to express this.
[+] vezzy-fnord|12 years ago|reply
Seconded.

Shells like rc have much more different syntax (and are arguably cleaner) than common ones like Bash.