Poll: What are your liked and disliked programming languages?
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.
[+] [-] simias|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++,...). 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
[+] [-] atwebb|12 years ago|reply
[+] [-] efa|12 years ago|reply
[+] [-] redman25|12 years ago|reply
[+] [-] UnfalseDesign|12 years ago|reply
[+] [-] zentiggr|12 years ago|reply
[+] [-] Patterner0|12 years ago|reply
[+] [-] reidrac|12 years ago|reply
[+] [-] Kurtz79|12 years ago|reply
[+] [-] tmikaeld|12 years ago|reply
[+] [-] wambotron|12 years ago|reply
[+] [-] beat|12 years ago|reply
[+] [-] Ovid|12 years ago|reply
[+] [-] barrkel|12 years ago|reply
[+] [-] Shivetya|12 years ago|reply
[+] [-] asdasf|12 years ago|reply
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
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
[+] [-] wting|12 years ago|reply
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
- 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
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
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
[+] [-] fdr_cs|12 years ago|reply
[+] [-] MartinCron|12 years ago|reply
[+] [-] mVChr|12 years ago|reply
[+] [-] mVChr|12 years ago|reply
[deleted]
[+] [-] leokun|12 years ago|reply
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
[+] [-] wikiburner|12 years ago|reply
https://news.ycombinator.com/item?id=5536734
:)
[+] [-] Jare|12 years ago|reply
[+] [-] slackito|12 years ago|reply
[+] [-] arethuza|12 years ago|reply
[+] [-] skizm|12 years ago|reply
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
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
[+] [-] thomseddon|12 years ago|reply
Python and C most liked, PHP and Java most disliked (currently)
(Source here for if/when it goes down: https://github.com/thomseddon/lang-rank)
[+] [-] nsxwolf|12 years ago|reply
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
[+] [-] DanielBMarkham|12 years ago|reply
[+] [-] Miyamoto|12 years ago|reply
[+] [-] qznc|12 years ago|reply
Reminds me of the ironic brag at Dconf: "We have people who program D against their will" (http://dconf.org/2013/talks/clugston.html)
[+] [-] vezzy-fnord|12 years ago|reply
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
VBA
VB.NET
VB6
VBScript
[+] [-] nostrademons|12 years ago|reply
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
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
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
[+] [-] vezzy-fnord|12 years ago|reply
Shells like rc have much more different syntax (and are arguably cleaner) than common ones like Bash.