17 ms·
Poll: What are your liked and disliked programming languages?
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.
- nicholassmith 13y agoI 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 13y agoSounds like a Stockholm syndrome. :-) No worries, I have that with Haskell.
- prehkugler 13y agoJust yesterday, my colleagues were describing having Stockholm syndrome with Java. Went something like: "It's really easy to make fun of, but the more you use it, the more you start to feel bad for it."
- fdr_cs 13y agoI 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 13y agoI was thinking the same thing about simultaneously liking and disliking JavaScript.
- mVChr 13y agoI feel the exact same way about Javascript.
- mVChr 13y agoI feel the exact same way about Javascript.
- timdiggerm 13y agoI hope it's okay to vote Like and Dislike for javascript
- Jare 13y agoI had to do that for SQL
- atwebb 13y agoJust did the same thing, we're all in this together, though 7-8 yeas ago it would've been a straight dislike. It's power is growing, be wary.
- tmikaeld 13y agoSame here, it's quite unavoidable if you started out with javascript coding and matured with it.
- arethuza 13y agoI would have done that for XSLT if it had been on the list.
- jcd748 13y agoMe too. I use it daily, and am both amazed and confounded by it. Powerful and frustrating.
- happimess 13y agoForgive my ignorance, but I inherited a wad of xslt fairly recently, and it seems frustrating and verbose to me. What do you like about it? Can you point me to some examples of good code?
- arethuza 13y agoOne thing about XSLT is that when it is bad it is really really bad. It can be fairly elegant, especially if you know the difference between apply-templates and call-template and are happy with all of the feature of XPath. But I suspect that is fairly rare....
- DrinkWater 13y agouhh PHP dislikes are going up (what a surprise)
- tmikaeld 13y agoI don't really get why people hate it so much, sure it has it's flaws, but it also has it's strengths.
- tomelders 13y agoSome people also hate Obamacare, civil liberties and human rights. Who knows why?
- aaronem 13y agoIts strengths are few and equivocal; its flaws are unspeakable and legion.
- sschueller 13y agoI only get the PHP hate from the startup communities. I guess it is just not hip to be using PHP. There is also way to much love for Apple products. In the end the tools you use don't matter. I never heard an investor say: 'Did you write this in PHP on a PC? I'm sorry we are not interested.'
- Pitarou 13y agoPHP's only real strength is it's ubiquity.
- joeblau 13y agoWhat is it about CoffeeScript that people don't like?
- tmikaeld 13y agoI think some people still like wasting their time by writing "real" code from the start.
- rikkus 13y agoDebug story perhaps? I haven't tried it but that's what puts me off.
- rimantas 13y agoI guess some just dislike the idea of sugaring Javascript. Others my think that it hides something that can bite your ass, though imho the oppossite is the case. For me personaly after spending some time with CoffeeScript writing plain JS was a displeasure for sure.
- exDM69 13y agoCoffeeScript is only syntactic sugar. It brings very little new to the table, but perhaps worse of all, it doesn't really fix all of JavaScript's WTF-issues while adding a few of its own. While it's an improvement over JavaScript, its advantages are sometimes outweighed by the extra hassle to compile and deploy it. I don't really dislike it but I really do not see myself using it if I had a task where I needed JavaScript.
- slaxman 13y agoSuprisingly, I have never even thought about compiling on Coffeescript since my rails app does that for me. Personally, I love using Coffeescript because it's just so much easier to write compared to javascript without thinking about braces and semi-colons. On the whole, I guess what framework you use affects how you use a language. In rails projects, it's very efficient to use coffeescript over javascript.
- 13y ago
- simias 13y agoAnd 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.
- atwebb 13y agoThere'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.
- simias 13y agoI don't think it usually creates interesting discussion. Just a billion of comments with no replies along the line of "XXX is great!" "YYY sucks!". Everybody talks and nobody listens. It's just pointless popularity contest.
- debacle 13y agoYou have no idea what you're talking about. XXX is terrible. The new release of YYY has solved a lot of the problems that most people complain about.
- Erwin 13y agoNone of the ideas in YYY are new. It's a mundane and vulgar rehash of things we already had in the ZZZ in 80s but done badly. OK, so the world's largest sites run YYY -- that's pure luck, not science. Or the fault corporate HR drones that don't know better asking for YYY skills. Or a massive conspiracy. Or maybe programmers just are dumber now than 10 years ago. How can YYY even be taken seriously when not supporting homobubonic retroviral proto-smurfs? In fact, I've just written a nice tutorial on smurfs in ZZZ and how smurfs are just like smurfs -- once you are past that, writing a complex application like a "20 questions" game should not be a problem. Don't get me started on dynamic versus static smurfing!
- rfnslyr 13y agoI don't discriminate. All languages are equal in my eyes, each with their own quirks and adventures. Except PHP, PHP can fuck off.
- camus 13y agoLast week i had to create an Android App generator that takes a json manifest and generate Java Models,ContentProviders,activities,resources,unit tests for each Sqlite table in my app = 4/5 hours of work in PHP. days of work saved each time i need to bootstrap an app. This week I needed a command line script that optimizes image files for different form factors = 30 minutes of work in PHP I needed the first script to be available to my peers so they can generate basic android crud apps through a web app = 1 hours of work/deployement on an apache server and no need to ask the sys admin for another server. My point is you can hate PHP all you want it is a great tool that has its place in enterprise envirronement.
- asdasf 13y agoIf that is your point, than you really failed to support it. Obviously you can do stuff in PHP. You could have done all that stuff in any scripting language. The closest thing to a benefit you listed was "we already had PHP installed on a server". If that is your best sales pitch, you should stop trying to sell it and let others take on that role.
- wmeyer 13y agoShould have included F#.
- exDM69 13y agoDisliked Scheme by accident :( SICP really changed the way I think and write code. It also taught me the basics of compilers and interpreters.
- DanielBMarkham 13y agoWhat? No love for F#? Why do folks always leave F# out of these things?
- nercury 13y agoI liked F#. Even build a web request handler using it :) However I kind of don't trust Microsoft to keep supporting this side project... Remember FoxPro?
- DanielBMarkham 13y agoRight now one of my side projects involves F# on Mono. I write in Visual Studio, which I own, I deploy to Mono, which is free, and I have access to all the MS libraries over in linux, which are also free. What's there to support? Do I really need version 7.0 of F# with the neuro-cranial implants? Or do I need just to write solutions for people? F# is a great transition language from OOP/Imperative-land. You can write code the old way, the new way, purely functional, or in a hybrid fashion. I don't think we require much MS support for it to continue to fulfill that role. Now if you're deploying to windows, that could be another kettle of fish. But I don't do that anymore.
- kvb 13y agoThankfully the compiler is open source and there's a thriving community outside of Microsoft (see http://fsharp.org http://fsharp.org), so this shouldn't be a big worry. And Microsoft hasn't shown a lack of commitment thus far (in fact, with the Visual Studio 2013 release F# gets new features but C# doesn't, as I recall).
- jackfoxy 13y agoAs an F# MVP, I can tell you MS is committed to the primary functional language on the .NET stack, but more importantly MS has open-sourced F# https://github.com/fsharp/fsharp https://github.com/fsharp/fsharp. The membership of the FSharp Software Foundation http://fsharp.org/ http://fsharp.org/ is very active and growing under the informal leadership of Don Syme. F# works today across Linux, iOS, and Android with a community of OSS programmers improving x-platform interop almost on a daily basis.
- adolfojp 13y agoThis poll should be more specific with Visual Basic. There are a few different languages that share the name VB. VBA VB.NET VB6 VBScript
- wting 13y agoI can also break out Lisp into Arc, SBCL, Emacs, Chicken, Racket but I have to draw the line somewhere. Also historically VBasic has not garnered many responses thus the catch all.
- adolfojp 13y agoSome VB variants like VBA, VBScript, and VB6, are indeed similar enough to be grouped into a single item, I'll grant you that. VB.NET, however, is not. It's basically C# in VB's clothing. It kept the VB name and some of its syntax to bring VB6 developers into the world of .NET. So, IMHO, grouping VB.NET with VB6 would be like grouping C, C++, and C# together just because they have a C in their names.
- danielsamuels 13y agoWhat about Java and Javascript? :)
- Pxtl 13y agoVBA and VBScript (iirc) have only On Error Resume Next, while VB6 has On Error Goto. This is a tremendous difference in how you structure your program's error handling.
- XorNot 13y agoVBA in MS Access has On Error Goto.
- Pxtl 13y agoOh, I might be getting VBA confused with VBScript then. I know VBScript only allows you to crash or just continue on an error, whereas full VB6 lets you On Error Goto Errorhandler and you can provide an Errorhandler label for your error code.
- facorreia 13y agoLike or Dislike... for which use case? For instance, I don't plan on ever writing web applications in Lua, but I consider it a very good choice for game scripting. Does it mean I like it? Or dislike it?
- izietto 13y agoI want Julia http://julialang.org/ http://julialang.org/
- wcbeard10 13y agoJulia - Like
- gesman 13y agoWould be better to have some sort of commented vote, in other words: vote and explain why. For me - I dislike interpreted languages no matter how cute their syntax looks like. They usually offer quickest idea-to-deployment times for the price of shittiest overall performance.
- tsenkov 13y agoWish I made this as a prediction, at the start - most liked are JavaScript, Ruby, Python and C.
- spindritf 13y agoPython, C, and js while PHP and Java are getting lashed. Pretty much what you'd expect. Still, one of the better polls.
- Mikeb85 13y agoThese days a small language called Pure has my attention (purelang.bitbucket.org) - it has many of the features of Haskell I like, but is a dynamically typed language that makes use of an interesting functional paradigm (term rewriting calculus!), and is much easier to use than Haskell. It also has a great shell and C/C++ interface (and Emacs and Texmacs integration). And I always like seeing these kinds of polls because people's 'favourites' depend alot on what they do with the language - Java and C++ are great for writing large apps, systems, etc..., while dynamic languages have much different use cases.
- delinka 13y agoJulia! Poor thing is left off ...
- glanotte 13y ago"There are the two kinds of languages only, the kind that people complain about and the kind that nobody uses." -- someone on the internet that I am too lazy to google. A.K.A Bjarne Stroustrup I truly don't see the value of this, every language brings something to the table.
- ordinary 13y agoStroustrup.
- middus 13y agoI just upvoted "php - Like" and "php - Dislike", because I both love and hate working with php. I guess I'm not alone...
- jaimefjorge 13y agoI'm with Guy Steele on this one: I like all languages (http://www.infoq.com/presentations/Future-of-Programming-Languages http://www.infoq.com/presentations/Future-of-Programming-Lan... 01:45).
- sequoia 13y ago"Raise your hand if you hate PHP" many hands go up "Keep your hand up if you've actually built a project using PHP" most hands go down But my coool poooints!! I need to show the guys I hate PHP so they won't think I'm a newb!!
- homersapien 13y agoPHP haters are hysterical, I mean that in the clinical sense. It is powerful, flexible, blazing fast (relative, I know), and arguably the easiest (or at least most accessible) language to learn. Its flexibility is what generates most of the hate. It gives you the freedom to create some really bad/stupid code, which noobs inevitably do. But hating it because it will let you hurt yourself is like hating a table saw because it can cut your arm off.
- asdasf 13y agoThe obvious counter point is that most people who hate PHP quite like C. But C more closely fits your description of "freedom to create some really bad/stupid code" than PHP does. People hate it because it makes it more difficult to do things well, not because it makes it easy to do things poorly.
- erjiang 13y agoI'm not really sure it's fair to say that people hate PHP because of its flexibility. Many other languages are very "flexible", and much more so than PHP for some things (you're less likely to do dumb threading or malloc mistakes in PHP, for example). I think it's because PHP has a much larger surface area of questionable decisions to attack. When your core language is very, very small (e.g. Scheme), you have less to criticize, but when PHP has everything and the kitchen sink, plus a lack of an overarching philosophy or standard, plus a broken core developers community, it simply generates many more hatable things.
- falcolas 13y agoA table saw doesn't try to disguise its blade as the stop button... My favorite bug to date? Uninitialized variables being interpreted as strings. That's the one I get to debug for clients on a regular basis. "Why can't I make this DB connection?" "Because you forgot to initialize the variable containing the database name."
- rauar 13y agoABAP is missing.
- kiechu 13y agoLanger is missing in a poll: http://langner.io http://langner.io Scandal! ;-)
- wslh 13y agoI 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/ http://blog.databigbang.com/tag/ikvm/ and here: http://blog.databigbang.com/tag/jython 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.
- V-2 13y agoCollections in Java are awful. Guava helps a bit, but it's still poor man's substitute. No LINQ, no lambdas (and the upcoming Java streams API is ugly as well), no delegates, no events. Verbosity. C# is a very nice language, only WPF sucks big time.
- wslh 13y agoI forgot LINQ! I think nobody is using WPF for new project? I like that UI application feels native in C#/Windows.
- saw-lau 13y agoJust started using WPF for a home project here. :-)
- stinos 13y agoUsed WPF a couple of times, not that bad at all? What exactly do you think can be improved? Are there alternatives to it?
- netcraft 13y agoim curious what people dislike about groovy. I haven't tried it much but it seemed like a decent language and good alternative to java. I wasn't thrilled with the availability of frameworks for it, but that was about the only complaint I really had.
- edtechdev 13y agoI don't dislike groovy - I remember studying the compiler 8 years ago (I was helping work on the boo compiler at the time). But every programming language I've ever seen has flaws - that are both objective and subjective. If I were a Ruby developer wanting to create something on the JVM, I might think that groovy is inferior to JRuby, for example. If I were a straight up Java developer, I might think that groovy is slow or inconsistent or too unsafe (how some people perceive ruby's monkey patching). I'm not saying any of those perceptions are correct, but it is very easy to imagine all kinds of reasons and perspectives for disliking every single language up there. Heck, for about a third of them, it's harder for me to imagine reasons that people DO like them. But I know that's just my opinion, man, and who I am to stop people from using drugs, jumping off cliffs, or using Perl.
- kbd 13y agoI'm also surprised at the dislike for Groovy. When I looked at it, it seemed to be roughly on par with Python or Ruby, with some nice features unique to Groovy. Of course, there's the limitation that it only runs on the JVM. Maybe it suffers from the following thought process: many people who want a rapid development language and would be interested in Python or Ruby aren't interested in running on the JVM, and people who are already in the Java ecosystem are too biased in favor of static typing to give Groovy its fair shake?
- netcraft 13y agoperhaps. I was interested in it because the jvm is appealing to me (performance and the sheer volume of available, tested libraries), but I dont want to write java boilerplate and groovy seems to have some cool dynamic language features.
- colkassad 13y agoRegarding the language itself, what's there to dislike about C#?
- swalsh 13y agoIf C# wasn't made by Microsoft, but had a similar toolset and feature set, i would offer the opinion that it would be the top managed language.
- skrebbel 13y agoI don't understand that attitude. First, you can use C# really well without depending on any Microsoft tech. Second, Microsoft standardized the language and made a community promise not to enforce their C#-related patents (like e.g. Oracle did against Google for Java). So, it free, it has full FOSS tooling. What's the problem?
- jamon51 13y agoThe word "Microsoft" tends to evoke emotion, highly irrational in many cases, despite any actual facts present. With that said, I know a lot of devs who hate almost everything about MS that actually do like C#.
- GhotiFish 13y agoIt's not an irrational behaviour to say "I don't know where you're holding the knife this time, but it's not worth the effort to find out"
- niuzeta 13y agothe nuanced microsoft brand
- pjmlp 13y agoThe standard only covers up to C# 3.0, if I am not mistaken.
- 13y ago
- leokun 13y agoIn 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.
- rjbwork 13y ago> 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. >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 issue here is that people who try to roll their own cryptography solution fail at it and introduce insecurities on their own almost all of the time. Think about the amount of bugs in any reasonably complex solution that the layman comes up with. Now imagine what happens when you set the layman off to implement a solution to a problem already solved by experts that can totally destroy your business if not written perfectly. If we wrote our own cryptographic algorithms for HIPAA compliance where I'm at, I'm pretty sure we'd eventually have to shut down the company due to mass violations due to improperly implemented complex algorithms.
- skriticos2 13y agoWhat I like: Python (3), C, C++, Shell. What I dislike: Java, C#, PHP, Objective-C. Python (3): it just has ridiculously powerful data structures and sensible error messages C: it's simple(ish), fast and keeps yuppies away C++: has great libraries and frameworks like Qt, is fast Shell: quick and simple for small tasks Java: mainstream and boring, people expect me to use it and work with horribly broken code created by off-shored resources who have absolutely no clue what they were doing C#: Microsoft PHP: ugly, people expect me to use it Objective-C: just because it prompts HR to hire people with this skills instead of something more pleasant Really, I like powerful languages. I hate languages that are boring, ugly, have a horrible code debt and prospective majority employees expect me to use. In short, I dislike monopolies. Edit: forgot - VBA - dislike (just because locked down enterprise desktops)
- rkv 13y agoYou seem like a really annoying person. > Java: mainstream and boring > C#: Microsoft > PHP: ugly, people expect me to use it
- rjbwork 13y ago>C#: Microsoft Mono, XSP, Xamarin, etc. make your argument pretty much moot if you set up properly. C# is an ECMA standard, most of the C# source code is open source or is being open sourced, and there is a large and active open source C# community. This may have been true 5-10 years ago, but if you're really super anti-MS, you can still use C# today. It's a fantastic language with fantastic libraries. Disclaimer: I've only toyed around with mono for web programming, I've not used it in production, and the baked in authentication libraries (aka Forms Authentication) seem to have some problems still, but we ARE using Xamarin in production for our mobile apps and it's working fine.
- michaelt 13y agoSome colleagues of mine work on a C# windows app - I thought I couldn't help them out, as I use Linux. Maybe I can though, based on what you're saying. Can I take a C# project targeting Windows, develop compile and developer-test on Linux, then second test and deploy to Windows?
- barking 13y agoVisual basic, no love in 15 years and still kicking C#'s ass on the desktop
- captainmuon 13y agoDespite its flaws and the scores of bad software written in it, old-school VB was awesome! It was incredibly easy to click together a UI, and fill in the business logic. You had basically no boilerplate or glue code. And there was a huge market for components - report generators, glossy buttons, fancy list views, plotting controls, you name it. I believe the ease of use of VB and the availability of all those COM/ActiveX controls was a huge factor in MS's success in the late 90s.
- XorNot 13y agoI would go so far as to argue that we've never succeeded in composing anything better for the task either (since VB6 is hanging around). The Linux desktop desperately needs something that easy to use, but which works with SCC and gently encourages some structure. Glade with a built-in Python IDE which hides the boilerplate could probably do it (along with a bit more clarity to how you build up an interface in Glade).
- zequel 13y agoWhat is this desktop you speak of? ;) I disagree, I find most .net developers I meet use c#. I just don't know the breakdown of whether they're Winform/wpf or asp.net developers specifically.
- infinotize 13y agoI'm surprised at the current number of likes/dislikes for Lisp and Scheme. Most of my work, including at home, work and in the past at school, was in C, C++, Java, Perl, Python, SQL and some mixes of Shell and other minor dabbling in other languages. I had some exposure to Lisp in school way back when, and had to do some work in Scheme. I hated it. Strong dislike! So what was I missing? It seems these have a strong following compared with how widespread they are.
- betterunix 13y ago"I had some exposure to Lisp in school way back when, and had to do some work in Scheme. I hated it. Strong dislike! So what was I missing? It seems these have a strong following compared with how widespread they are." I can say that Lisp made my current project possible, given the timeframe we had and the requirements. Here are a few things that make Lisp fantastic: * Flexibility/expressiveness: you can compose things as needed, without being held back by syntax rules. Here is a simple example, which is a bit silly but which illustrates the point: (if (defun foo (x) (+ x 5)) 'yes 'no) That is an "if" statement that follows the "yes" branch if the function is compiled without errors, and follows the "no" branch if there is an error. A bit pedantic, but let's put it this way: good luck doing that in C, C++, Java, or even Python. * Error handling: What happens when you are writing to a file, but you run out of disk space? In Java and Python, you are out of luck: an exception is thrown, and now you have to pick up the pieces. In C or C++, your code needs to be littered with conditional statements that check if your I/O operations are successful. In Common Lisp, however, we have the restart construct, which allows the thrower of an exception to set up recovery routines that the handler can invoke. The top-level exception handler can present the user with recovery options, so for something like running out of disk space, the user might delete some files and invoke a restart that continues the I/O -- and the programmer need not clutter his code with routines for restarting the operation. * Serialization is free. Kind of a pedantic point when you have things like Pickle, but it is even easier in Lisp -- no libraries needed. The caveat, though, is that some data cannot be serialized so easily, like objects in CLOS, but the metaobject protocol in most CL implementations solves that problem (A MOP are strangely absent from the Lisp standard, but most implementations include one anyway). * Macros. When all else fails, macros are a lifesaver. Macros in Lisp have all the power of the Lisp programming language itself, at compile time -- so everything mentioned above is equally applicable. There is a strange recursive phenomenon to this argument: when all else fails in macro writing, you can create a deeper level of macros (it's macros all the way down). Macros are the reason for Lisp's unusual syntax, by the way: Lisp programs are written in a way that makes it easy for a macro to operate on a Lisp program. Now, there are certainly things I do not like about CL, like the lack of any portable support for static typing (even an optional static type system), the poor collection of standard data structures, and the lack of support for modern things like sockets, threads, etc. Fortunately there are a lot of freely available libraries for such things, but a new standard that included them would be nice.
- qznc 13y ago25 Dislikes for D? I didn't know it had so many users. :) Reminds me of the ironic brag at Dconf: "We have people who program D against their will" (http://dconf.org/2013/talks/clugston.html http://dconf.org/2013/talks/clugston.html)
- k_kelly 13y agoJavascript having a higher approval rating than coffeescript is actually pretty interesting.
- scrabble 13y agoWhy is that? I prefer JavaScript to CoffeeScript, and I imagine that more people have used JS than have even tried CS.
- dandare 13y agoTIL 140 people don't know the difference between Flash and ActionScript
- infinotize 13y agoIs it worth including HTML/CSS?
- camus 13y agoWhy people dislike ActionScript ? we are talking about the language , not the Flash Plateform. As a language ActionScript is what Javascript should have been ,strict enough for large scale programs , dynamic enough to be written fast. Flash is the plateform and the framework , actionscript is the language. I dont really get that hate for ActionScript.
- cryptos 13y agoActionScript is a terrible language with its pseudo static typing.
- rip747 13y agoseeing how there was quite a bit of CFML bashing going on yesterday, i doesn't surprise me that ColdFusion has that many dislike votes. BTW, its CFML, NOT ColdFusion. ColdFusion is a product, CFML is the language. it would be the same as having JRuby on the list instead of Ruby. if you're going to have a poll on programming languages, then at least label said languages correctly.
- sjwright 13y ago> its CFML, NOT ColdFusion And this isn't some academic or semantic point -- the best implementation of CFML isn't even ColdFusion.
- kybernetyk 13y agoDislike ActionScript - Like JavaScript. Interesting ...
- tinco 13y agoI think more people click dislike ActionScript because they dislike Flash rather than that they actually used ActionScript and did not like it. (For the unfamiliar: ActionScript and JavaScript are both implementations of the same language specification. Disclaimer: I have no idea in which ways both languages divert from the specification.)
- alayne 13y agoActionScript is a Java-ed up JavaScript. It's based on the failed ECMAScript 4 proposal which adds classes, public/private, imports, and other features. It's not hard to see why people wouldn't like it. I would say it's "okay", but I wouldn't actively want to use it for anything.
- MrMiracle 13y agoI know this is 100% subjective, as is the nature with most polls, but I must say I don't understand why python is such a darling . What's the deal? I just want to understand... I feel like I'm missing out on something (like seeing the boat in the magic eye pictures)
- 0b1100110 13y agoD - Like
- dudus 13y agoI like and dislike Javascript at the same time. That was not a mistake, this is actually how I feel.
- Grue3 13y agoI was wondering why ColdFusion is doing so poorly, but then I looked up examples on Wikipedia. Good God.
- rbanffy 13y agoWhen I used it, in 1998, it was so ridiculously unstable we had to write a service to restart it when connections started to pile up on IIS. Under heavy loads, the server had to restart every minute or so.
- sjwright 13y agoIt wasn't great, but it's not like there were many good alternatives in 1998...
- rbanffy 13y agoPHP was decent at the time, as was ASP on Windows. Both were much more stable and allowed a lot of flexibility in programming logic than Cold Fusion. In 1998, I've used all three (along with a couple others that didn't afford me the same level of productivity (Oracle Web Server, I'm looking at you).
- sjwright 13y ago> then I looked up examples on Wikipedia. Good God. The examples on Wikipedia don't do it justice. Modern CFML is written largely in C-style script form, much like JavaScript in feel. The examples you see on Wikipedia is programming within the old language form now (mostly) reserved for templating.
- babuskov 13y agoWhat'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 13y agoI like Fish. I dislike Bourne Shell. There's no way to express this.
- vezzy-fnord 13y agoSeconded. Shells like rc have much more different syntax (and are arguably cleaner) than common ones like Bash.
- afsina 13y agoOther like - Dart.
- OhHeyItsE 13y agoYikes. what terrible UX for a poll.
- preynal 13y agoWhere is Dart?
- saurabh 13y agoFactor is missing from the list http://factorcode.org http://factorcode.org
- RivieraKid 13y agoCeylon is missing :) I've recently had a closer look at it and I believe that it's the best-designed general purpose statically typed language out there. I'm genuienly impressed by it. It's far from being production ready though.
- deleted 13y ago[deleted]
- zura 13y agoProlog, thus a whole paradigm is missing in the poll.
- sjwright 13y agoSaddened 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.)
- bfish510 13y agoAs someone who has only associated cold fusion with people laughing, thanks. I'll be sure to look into as an option before I start my next side project.
- sjwright 13y agoTo be fair, I'd only actively recommend CFML if it fits your requirements -- if you want something hackable like PHP, perhaps the flexibility of being able to load and use any old Java library, and don't want your language to be opinionated on client side frameworks. Otherwise I tend not to recommend, mostly because there's a lot of old bad CFML code out there, and it's frankly embarrassing.
- mindcrime 13y agorealise that ORMs are inherently stupid. That's quite the claim... Care to expand on why you think ORMs are "inherently stupid"?
- agentultra 13y ago"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.
- ddoolin 13y agoI like and dislike them all pretty equally. They all have their ups and downs, some more than others, but I've never completed liked one or not with no strings attached.
- nsxwolf 13y agoI 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.
- sequoia 13y agoAre you suggesting people are voting on things from completely uninformed positions??? ...would people really do that? ;) It's at something like 340 dislike votes now- I believe your point is more prescient now than ever. :)
- seabrookmx 13y agoHonestly, I'm pretty sure its the same with C++. C++ faults are blown out of proportion by sensationalists, most of whom have never touched C++ code in their lives. Out of C++, Java, Javascript, and PHP, easily four of the most used languages in the poll, only a single one has positive votes. And it has just as many faults as the other three.
- bane 13y agoCurious about all the Go dislikes. From the kind of things that get posted here I'd have assumed it to be almost universally liked. Anybody can provide reasons?
- LeafStorm 13y agoFor me, it just feels like instead of taking efforts to carefully design the language, they just picked the first thing that worked and froze it. And while I really like some features of the type system (such as interfaces, lambda/function types, multiple return values, and the "type switch"), the lack of overloading and generics does have some pretty serious effects on readability (especially when you have compiler-supported functions that do overloading and generics, but don't allow it in userland). It also seems like the way they resolved a lot of issues in the surrounding tooling was to not decide. For example: how many spaces should we use? Screw it, we'll use hard tabs! How should we handle dependency loading and package management? Screw it, we'll hard-code the URL to our dependencies in the source code! How to handle dependency versions? Screw it, we won't! It's not a horrible language (like shellscript), but I think they wasted a lot of opportunity to make something better.
- jff 13y agoA lot of the things you're claiming the Go designers chose off-hand one afternoon are really things they've liked and been doing for decades. Take a look at the Limbo programming language and you'll see a more primitive version of Go; it was written by a lot of the same people. Before Limbo, there was Plan 9's C dialect and its associated libraries, which have some similar elements. Before Plan 9, of course, these guys were creating Unix. Many elements of Go are the evolved preferences/decisions from people with decades of Unix development, such as: > For example: how many spaces should we use? Screw it, we'll use hard tabs! The only sane choice, and one that, again, goes back decades for these guys. You use one indent character per level of indentation. Boom. If you don't like seeing 8-wide tabs, fix your fucking editor. If you're worried about lining up all your code in perfect multi-line arrangements, maybe rethink your life. > How should we handle dependency loading and package management? Screw it, we'll hard-code the URL to our dependencies in the source code! How to handle dependency versions? Screw it, we won't! They should have never done the URL thing; it was a cute demo, but people took it as some sort of commandment to write code that way. If you want a real, stable set of dependencies with control over which version gets used, you should do what C and C++ programmers have done for decades and include the appropriate dependency source code in your distribution. Brad Fitzpatrick (core Go author) does that for Camlistore: https://github.com/bradfitz/camlistore/tree/master/third_party https://github.com/bradfitz/camlistore/tree/master/third_par... and I do it for my own projects, if they're more than a quick test.
- captainmuon 13y agoFunny, 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).
- tel 13y agoI've heard a few interesting arguments (mostly by Gilad Bracha) against type-dependent semantics, though I don't think these arguments usually apply in this situation where you're just talking about polymorphism in (+). The argument is that if your language doesn't have type-dependent semantics then you can plug and play type systems as completely independent static analysis tools. I don't know that I buy that those tradeoffs are best, but there is something really interesting there.
- bcoates 13y agoThat's because having + perform a non-commutative operation like string concatenation is an abomination.
- peter-fogg 13y agoBut in a situation like that, you could just annotate the type. In Haskell: add :: Int -> Int -> Int add a b = a + b
- novaleaf 13y agowhy no typescript?
- vichu 13y agoTo make this poll more indicative of what each "like" and "dislike" means, there should honestly be an additional field that says the level of proficiency one has in each programming language. As in for each "like", it should be divided into "like: well-versed", "like: proficient", "like: passing knowledge", "like: have not used" and the same for each "dislike". Of course, that does lend a large amount of bloat to the poll, but at least that information is more useful and useful data is what we should care about. This is not to say that this information is not useful, but I more interpret this data in a vague sense of what languages are used the most commonly and the pathos surrounding each language. As an aside, I'd also like to point out that once one gets to know a language sufficiently well, they usually end up finding things that they dislike about the language and things that they like, further making this poll slightly more noisy. Ah well, I guess that's why new programming languages are born. [edit: fixed a typo]
- anuragramdasan 13y agoWhile I find this poll rather insignificant and pointless, I can't help being amused by the amount of downvotes Common Lisp and Clojure have received. Can someone(probably someone who downvoted) please explain me what is wrong with those languages? Not being a snark, just curious.
- edtechdev 13y agoI didn't down vote those or other languages I haven't really used. But you honestly can't think of any feature of those languages that might turn people off? ((((((((((((((((((((((((((((((((((((? any)))))))))))))))))))))))))))))))
- anuragramdasan 13y agoTo be really honest, a Lisp programmer doesn't really see that many parens in his code. And clojure doesn't even have those many parens. Maybe its just me, but I have only seen those who haven't used Lisp complain about too many parenthesis.
- edtechdev 13y agoAs I mentioned, but you still downvoted me, I didn't downvote lisp. I have used lisp - required to use it in a course. And I do recall seeing that many parentheses in lisp programs. I recall seeing that many parentheses (and curly braces) in C, C#, Java, Javascript, Perl, Scala, groovy, PHP, and other programs, too. Let's not pretend they don't exist though.
- anuragramdasan 13y agoI do not downvote people people for expressing their opinions. Also I doubt if I have enough karma to do that. Someone else did. :) What I meant was, Lisp programmers usually learn to ignore the parens. When I look at a Lisp code, I just see indentation and code. Your eyes train themselves to do that. Also I have never found excessive parens to be an issue at all. But like I said, maybe thats just me.
- judah 13y agoTypeScript should be added to this list.
- texrat 13y agoAh, the usual VB hate... likely from people who've never even used it.
- max0563 13y agoWhy is Karel not on there?
- swah 13y agoAre we voting language or implementation? Go: love the implementation. Scala: nice language.
- jamesbritt 13y agoI'll be spending the day coding in Processing, sadly missing from the list. I guess it's a vote for Other.
- nextstep 13y agoMaybe it's time for another temporary ban on polls.
- kjackson2012 13y agoI absolutely despise Perl with every ounce of my body. I'm not saying that it's a bad programming language. I'm also not saying it can't be used to create extremely useful software, or that you're not a great programmer if you only use Perl. I respect great Perl programmers just like every other great programmer. I worked at Yahoo, and from the code that I saw, there were only a few great programmers there. The rest wrote a piles of steaming code/shit that was almost impossible to understand. However, the nuances about the language really rub me the wrong way and offend my own personal beliefs on how programming languages should be. I hate the array vs. scalar concept, the different ways to access them with various brackets and @/$, etc, and I especially hate that they have separate namespaces. I also hate things like "or" and "||" have different precedences. I did my best to learn perl, and wrote scripts at home to help me gain better knowledge, but once I discovered python, I ditched it and will never go back.
- meepmorp 13y agoWhat? No matlab/octave?
- jordigh 13y agoThose are two separate languages, you know. :-) Some of the biggest annoyances about the Matlab language are not duplicated in Octave: http://wiki.octave.org/FAQ#What_features_are_unique_to_Octave.3F http://wiki.octave.org/FAQ#What_features_are_unique_to_Octav...
- meepmorp 13y agoI'd say they're two dialects of a single language, or (in natural language terms) separate languages with a high degree of mutual intelligibility. They share syntax, a lot of vocabulary, and have similar idioms.
- mindcrime 13y agoI'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?
- vorg 13y ago> I made the decision to switch all of our development to Groovy (and Grails) a couple of years ago Look at Groovy's history before 2 yrs ago and you'll see what's not to like. Groovy recently (29 Aug) turned 10 yrs old but no one was celebrating.
- mindcrime 13y agoI've been using and following Groovy for varying degrees almost since the first release... I'm not sure what you're getting at. As far as I can tell, the only real, persistent, commonly-cited flaw with Groovy has been performance. And that is a fair criticism, but - at least for what I'm working on - not a "deal breaker". And I'm still optimistic that the Groovy team will eventually be able to follow in the footsteps of the JRuby guys and do some big things to take advantage of method handles and invokedynamic to speed things up. But even if they don't, Groovy is fast enough, even if it's not exactly setting the world on fire. If there are any other serious complaints about Groovy, I haven't heard them, and/or haven't encountered them myself.
- GnarfGnarf 13y agoYou're missing the most dreadful language in existence: Report Program Generator (RPG).
- wglb 13y agoI second that. It did the unthinkable to me--it made me happy to program in COBOL.
- hbbio 13y agoAs of now, Python wins both: - in absolute likes (1167) - in like/dislike ratio (1167/161=7,25)
- Egregore 13y agoWhere is haxe language? :)
- pertinhower 13y agoPolls like these are amusing but they're not particularly helpful. They broadcast subjective feelings about the "coolness" of languages at the expense of objective evaluation of languages. How many of you upvoted "Go" even though you've never really tried Go, just because you feel like it has got zeitgeist and pizzazz and you're attracted to trying Go? Did you downvote Visual Basic? Have you ever used it? If not, you probably downvoted it because hating Visual Basic is a mark of an Enlightened Programmer; wearing a Visual Basic t-shirt to work would either be a joke or a mark of death. But these are social, subjective, impressionistic evaluations we're talking about. Do the languages actually deserve these judgments? So, if the goal is to propagate and entrench the existing impressions that people tend to muddle around with (because, after all, how many of us really have the chance to deeply learn---deeply enough to form a sound opinion---more than one or two new languages a year?), then mission accomplished. But if the goal is to shed light on the respective value of languages, darkness has fallen.
- enneff 13y agoYou're just propagating your own baseless impressions of how things are. Personally, I voted only on languages that I've used. And yes I voted Go up and VB down. But I'm just an outlier right? The poll is what it is.
- howeman 13y agoSince this is a thread about biases, I'll phrase it like this: Yes, I have used Go, and yes, it does deserve the laurels.
- postfuturist 13y agoI like Prolog Also, I have a love/hate relationship with a lot of these langs, so votes go in both categories, I suppose.
- RBerenguel 13y agoSame here. I like many languages, the only two I dislike (although not in the hate category) are PHP and Java
- epsylon 13y ago?- like(prolog) yes
- JasonFruit 13y agoI am confused by the presence of Delphi and Pascal; Delphi is a Pascal, just like Turbo Pascal is a Pascal and FreePascal is a Pascal. If I like Delphi and dislike Turbo Pascal, should I really like Delphi and both like and dislike Pascal?
- clark-kent 13y agoYou know it's a popularity contest when Javascript (970 likes) is the most liked language. Personally I like and dislike Javascript.
- skizm 13y agoDamn 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.
- rjzzleep 13y agoBecause the language comes with a culture. Same with C#. C# is a great language. Horribly misused and taught in the weird manner, leading to incredible amounts of indirection that people confuse with abstraction.
- elboru 13y agoI don't dislike Java as a language I learned OOP with it, actually, Java made programming exciting for me when I was learning. But what I really dislike are some tools around Java, maybe this is totally subjective, but I don't like its most common IDEs (NetBeans, Eclipse, JDeveloper), I dislike the look and feel of its default desktop GUI libraries (Swing, AWT) (I know I know, who the hell still develops desktop apps these days?), but what I really dislike(almost hate) are the web frameworks from Oracle. I'm sure there must be several great tools out there that replace those that I don't like, but I haven't had the time to explore.
- geoka9 13y ago> It usually has something to do with design patterns (FactorySingltonParentFactory.helper.blahblahblah) That sums it up for me, basically. I could add that this is a manifestation of the tendency to make things more complex than they need to be which is pervasive in the whole Java ecosystem. IMO, even Scala couldn't escape the curse and suffers from it (although it's a lot more pleasant to use than Java).
- zschoche 13y agoC++ - Like
- zschoche 13y agoGo - Like
- alexvr 13y agoLet's just write our web apps in C or Haskell since everyone likes those.
- pka 13y agoWhat exactly is the problem in writing a web app in Haskell?
- Kiro 13y agoLike: PHP, JavaScript Dislike: Go, Clojure, Haskell, Python
- Sammi 13y agoSurely you ment to write the opposite?
- ah- 13y agoI hate MATLAB with a passion. It is the PHP of engineering, computer vision and robotics.
- andreif 13y agoYeah, I really wish I met Python/Sage earlier.
- otikik 13y agoIs it ok if I press both "Javascript - Like" and "Javascript Dislike"? :)
- Sammi 13y agoThat's what I did :)
- eonil 13y agoI have to admit I have strong preference to available editor/IDE or REPL rather than language itself. I can adapt on any language if the language has enough feature set, but lack of fine toolset support is unacceptable. For instance, these features are highly expected 1. Syntax and scope based accurate auto-completion. 2. REPL debugger with accurate break-point and stepping. These features are optional but make it awesome if exists. 3. Fully featured REPL. 4. A lot of proven libraries. 5. Exceptional linguistic features. 6. Fast build - compiled or interpreted for fast iteration. 7. ... Of course, the language itself needs to be designed to support those toolset features.
- regularfry 13y agoAre there any languages which fit all these criteria? I'm guessing commercial CL implementations might, but I've not tried them.
- jamesjguthrie 13y agoI try not to be a trend-following coder. I stick with what I know, what works and what seems to have the most documentation available. Java, PHP, Python, C, Obj-C and C# are my likes.
- hardwaresofton 13y agoA great follow up poll would be to find which languages people actually prefer to use the most. I like haskell alot, but I can never think of what to do with it
- geekbri 13y agoI voted 'like' for erlang, but what I really meant was that I really like elixir :) Thanks for creating such a fun language Jose!
- tommorris 13y agoVoted up: Scala, F#, Ruby, Python. Voted down: PHP, JavaScript. I do not like weak typing or silent errors. I do like functional programming.
- thomseddon 13y agoI've written a simple ranker for the above scores: http://ancient-garden-9751.herokuapp.com/ http://ancient-garden-9751.herokuapp.com/ 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 https://github.com/thomseddon/lang-rank)
- solarexplorer 13y agoNice. It would be cool to add a third column ordered by the ratio of likes/dislikes.
- ChikkaChiChi 13y agoThanks! Definitely helped me figure out which languages people voted on overall, as well. Love the language or hate the language, there seem to be some languages that are much more on people's minds.
- bshanks 13y agoAdded: like+dislike like/dislike (like/dislike)*log(like) (like/(like+dislike))*log(like) (likeDirichlet/(likeDirichlet+dislikeDirichlet)) (likeDirichlet/(likeDirichlet+dislikeDirichlet))*log(likeDirichlet) lower bound of confidence interval at 95% level http://arcane-waters-4617.herokuapp.com/ http://arcane-waters-4617.herokuapp.com/ source: https://github.com/bshanks/lang-rank https://github.com/bshanks/lang-rank
- bshanks 13y agoThe resulting lists are quite similar but not identical, so i've analyzed them to find sets of languages that always or almost always appear at the top. I also made the corresponding 'most disliked' lists to find the most disliked languages. On every 'most liked' list out of the above with some sort of control for wellknown-ness[1], the two most liked languages are C and Python. On every corresponding 'most disliked' list, the most disliked five languages are coldfusion, cobol, visual basic, actionscript, php. Looking at various lists, the next most after C and Python liked usually tend to be lisp, scheme, lua, haskell. Then clojure, rust, erlang, go. Then sql. Then assembly, C#. Then ocaml, F#. And after {coldfusion, cobol, visual basic, actionscript, php}, the next most disliked usually tend to be groovy or java. In other words, the partial ordering seems to be approximately[2]: {c, python} > {lisp, scheme, lua, haskell} >~ {clojure} >~ {rust, erlang, go} >~ {sql} >~ {assembly, C#} >~ {ocaml, F#} > ... >~ {groovy, java} > {coldfusion, cobol, visual basic, actionscript, php} It's interesting to contrast this 'most liked (controlling for wellknown)' ordering with the most (like+dislike)d counts, whose top 9 items are javascript, python, java, php, c, ruby, c++, sql, c#: * Python is both extremely liked and extremely well-known * Javascript is extremely well-known and is both liked and disliked. * Java is extremely well-known and very disliked, and PHP is extremely well-known and extremely disliked. * C is very well-known and extremely liked. * Ruby and C++ are very well-known and both liked and disliked. SQL and C# are very well-known and more liked than disliked. Haskell and Go are moderately well-known and very liked. * Lisp, Scheme, and Lua are not well-known but are very liked, and, to a lesser extent, Clojure, Rust, and Erlang. [1] by which i mean, the six lists (like/dislike), ( (likeDirichlet/(likeDirichlet+dislikeDirichlet)), lower bound of confidence interval at 95% level ), (like/dislike)log(like) ), ( (like/(like+dislike))log(like) ), and ( (likeDirichlet/(likeDirichlet+dislikeDirichlet))*log(likeDirichlet). [2] where >~ means a relation that holds for many of the lists under consideration, and > means a relation that holds for all of them.
- walshemj 13y agoWhy no love for Pl/1 - probably the best designed language I have ever worked in
- optymizer 13y agoSince these are all preferences, let's discuss those in the context of Actionscript. Why the hate for Actionscript? I get that the AS VM is crap by JVM standards, but, having coded several large projects in actionscript, I think the _language_ is actually nice, when compared to its ECMAScript cousin, Javascript. AS has classes, inheritance, getters, setters. It's event-driven, with sockets. You can access XML as el.child1.@property. Working with the Flash stage is easy: addChild(), removeChild(). You can embed resources and movies in SWF files. You can load shared libraries. What am I missing? Is it just about the AS VM? Is it the hatred for Flash?
- Miyamoto 13y agoYou 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.
- TillE 13y agoYeah, I find the popularity of C on nerd forums in the past few years completely baffling. Writing all your data structures from scratch is a nice educational exercise and all, but it's incredibly tedious when you're doing actual work.
- kamaal 13y ago>>but there's no way there are that many people programming in C Do you have any idea how many embedded systems and performance related software is written every year?
- cipherzero 13y agoWhere's the typescript option? Is that not popular enough?
- Patrick_Devine 13y ago1..2..3..4.. I DECLARE A LANGUAGE WAR! I love how we boil things down to be black and white. You either love a language, or you hate it. Unfortunately, nothing is ever that easy; just (try to) use the right tool for the job.
- deleted 13y ago[deleted]
- mythz 13y agoWhere's Dart? it's my most liked language at the moment.
- izolate 13y agoCan somebody who disliked Python please tell me their reasons for doing so?
- berntb 13y ago>>Can somebody who disliked Python please tell me their reasons for doing so? Well, for one thing -- the programming language culture seems to have something rotten [as in cult like] in it, if people really find it surprising that anyone can dislike the language... 1/2 :-) A question like that from your 12-karma account as its 9th comment is a typical example of the start of a baiting session from a troll. I'm frankly not surprised to see that re Python anymore. :-(
- izolate 13y agoThat's a very dismissive attitude to take. If you wanted to know if I was a troll, you could've read any of those 9 comments and found out yourself. Just curious for the reasons for not liking Python.
- prehkugler 13y agoNot included in the poll is MUMPS. I had a job right out of college that required me to write all of my code in it. It was pretty much the worst thing ever.
- surge 13y agoThe only thing I feel strongly about is hating COBOL. Seriously, kill it with fire.
- nchuhoai 13y agoWhy does Ruby get so much hate? I know it's not the most performant, but the delight I get from Ruby code is still unparalleled IMO
- xtracto 13y agoAgreed, I would think that Python would have more haters, given its syntax such as spaces and need of self on each object function. IMO Ruby has all the advantages of Python without the ugly bits.
- chrismorgan 13y agoMy take on the two is this: Python code looks like Python code. Its structure is rigid enough to let you take on new Python code and (unless it's been too heavily inspired by Ruby code or similarly makes injudicious use of certain powerful Python features) you'll just "get it". Python's strict structure and syntax enhance this. Ruby? Ruby is a language, but it's sort of more like a meta-language, with the popularity of the concept of using DSLs. Its studied lack of syntax makes it look to me like you often need to know the codebase to know what to do with the code. (I speak this as one extensively familiar with Python but who has only a passing acquaintance with Ruby at present.)
- ChikkaChiChi 13y agoWhat's most interesting to me is the amount of people that have mindshare about each language. Python clearly has the advantage over ruby in overall exposure to those who answered.
- kriro 13y agoProlog: like (to see on the list at least :P)
- weinzierl 13y agoFor reasons why people dislike certain programming languages see "What is the worst programming language you ever worked with?" http://stackoverflow.com/questions/961942/what-is-the-worst-programming-language-you-ever-worked-with http://stackoverflow.com/questions/961942/what-is-the-worst-... I asked this on SO because I'm interested in flaws in language design. I found lots of weird language quirks in the the answers. I'm not sure if the vote count is useful information, but PHP got most up-votes and Lisp received the most down-votes.
- eksith 13y agoI can surmise out of this (probably wrongly) that when the likes and dislikes of a language are similar, they may be due to syntax issues more than a failure of the language's capabilities. E.G. Ada, R, D etc...
- nostrademons 13y agoThis 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.
- spartango 13y agoI would throw this question back at the OP (and the everyone else) as "for what?" It's quite clear that languages are suited to certain tasks over others, which makes it nigh impossible to blanket characterize a language as 'good'.
- eranation 13y agoInterim result (likes / (likes + dislikes)): Language % Likes out of of lang voters C 88% Python 87% Scheme 84% Lua 83% Lisp 81% Haskell 80% Rust 79% Clojure 78% Erlang 76% Go 75% OCaml 73% SQL 72% F# 72% Assembly 72% C# 70% Forth 69% Smalltalk 69% Ruby 61% Scala 61% JavaScript 61% D 60% Other 60% Shell 56% R 55% Ada 51% Pascal 51% CoffeeScript 44% C++ 42% Objective-C 42% Perl 38% Delphi 38% Tcl 36% Fortran 34% Java 33% Groovy 29% Rexx 26% PHP 24% Actionscript 17% Visual Basic 11% Cobol 6% ColdFusion 6%
- V-2 13y agoWhy makes Python so wildly popular?
- alexkehayias 13y agoInteresting seeing the high likes and dislikes for coffeescript. Recently there have been a few articles about xyz moving to JavaScript from coffee and how it writes non performant code. I still find JavaScript hard to write without libraries and remembering specific gotchas that coffeescript takes care of without me thinking about.
- tlrobinson 13y agoI don't buy the "non performant code" argument. For the majority of applications it's not going to make a difference, and even stuff like an audio codec can be written in CoffeeScript: https://news.ycombinator.com/item?id=3371171 https://news.ycombinator.com/item?id=3371171
- deleted 13y ago[deleted]
- TJSomething 13y agoSo, I wanted a good ranking of these, so I wrote a quick script in Python to download and rank them. https://gist.github.com/TJSomething/6924624 https://gist.github.com/TJSomething/6924624
- gravedave 13y agoSome of my thoughts: I'm surprised by the dislike of Actionscript (guess it's memories of AS2 mostly). AS3 is quite nice in my opinion, and the display list is a charm to work with, while FlashDevelop is one of the nicer IDEs that I've had experience with. Sure, it runs on Flash and the timeline concept is weird when not making animations, but that should have no bearing on the language itself (and it seems there are efforts towards alternative runtimes anyway, who knows where this may go in the future). I'm surprised by how many people like Go, because, while nice, seems not very relevant and a bit directionless imo. Also surprised by the overwhelming popularity of Python compared to Ruby, which I think is better than Python in every way (except performance, but both are the wrong tool for such a job in my opinion). I don't see why there is a "Lisp" here, as it seems to have both Scheme and Clojure, but (weirdly) not Common Lisp. Rust shouldn't be here either, as it's a WIP. Judging a language that's still in alpha seems... wrong.
- vezzy-fnord 13y agoI 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.
- eugeneross 13y agoAs someone who wants to expand my backend-engineering experience, should I focus on one programming language at a time? Data on the poll shows that Python has a high like to dislike ratio than some of the other languages listed. What makes it good? What makes it better than similarly-acheivable languages like PHP and Ruby? Should I maybe dabble in PHP/Ruby to have an understanding of it? Really, my main question is - Which language will benefit me more? I know it can depend on what field I'm working in, and what my use of the language will be, but from a general standpoint, which would be the smarter choice?
- Nick_C 13y agoI really like ML. It is simple at face value, but with pattern matching and lambdas becomes very powerful. I haven't done any big projects with it though, so ymmv. I did a course early this year that used it to introduce functional programming.
- dj_segfault 13y agoJava - Like
- dj_segfault 13y agoPerl - Dislike
- 59nadir 13y agoThere should be a poll option for Racket.
- pjmlp 13y agoAnd the winner is.... ...the language that allows for security exploits by design!
- WyattEpp 13y agoWhoops, marked a dislike for Perl by accident.
- michaf 13y agoI made a plot of the results: http://i.imgur.com/CVlQSek.png http://i.imgur.com/CVlQSek.png
- ravestar 13y agoRebol script that shows this poll in a graphical way. https://github.com/rav3star/REBOL-HN-poll-reader https://github.com/rav3star/REBOL-HN-poll-reader
- fit2rule 13y agoI'm totally in love with Lua and Rust. I wanna do it always.
- rfong 13y agoHypotheses mostly based on my own internal biases regarding some of the languages I have experience with: haskell upvotes = theoretical mathematicians javascript upvotes = web developers ruby - javascript = functional programmers who aren't also theoretical mathematicians python upvotes = everyone who doesn't fall into the previous category
- rfong 13y agoPersonally I'm surprised by the extremely high disapproval/approval ratio for C++. It does what you want it to, it's performant, the syntax doesn't make you jump through unnecessary hoops, and it isn't full of warty language design problems like Javascript. I may be too biased to see the issues because it was my first language. A C++ hater's perspective would be appreciated.
- larrybolt 13y agoYou know, it would be interesting to do some statistics on which languages people vote down based on which languages they vote up. For instance, people that vote ruby up, most likely will dislike PHP, but not always the other way around. But anyhow, my opinion is that all languages are tools that help you to built something or reach a certain goal. While some languages are easier or more fun to program with, if what you are trying to build already exists in a different language it's not always wise to recreate it just because language x sucks.
- ternaryoperator 13y agoWith most of the mid-to-high level legacy languages (COBOL, C++, Fortran) getting more down votes than up, I'm pleasantly surprised to see Ada stay in positive territory.
- Gotyar1996 13y agoG :D
- nickwoodhams 13y agoBased on data Wednesday at 1AM Mountain Time Actionscript 21.22% Ada 109.92% Assembly 247.81% C 700.00% C++ 69.75% C# 241.94% Clojure 363.72% Cobol 6.38% CoffeeScript 81.26% ColdFusion 6.09% D 162.59% Delphi 64.06% Erlang 332.28% Forth 219.63% Fortran 48.24% Go 308.56% Groovy 45.58% Haskell 391.49% Java 46.51% JavaScript 159.88% Lisp 435.29% Lua 526.32% Objective-C 71.76% OCaml 268.64% PHP 30.28% Pascal 106.33% Perl 66.31% Python 636.01% R 122.91% Rexx 43.48% Ruby 162.21% Rust 376.99% Scala 161.52% Scheme 525.41% Shell 126.68% Smalltalk 239.60% SQL 254.29% Tcl 56.31% Visual Basic 12.26% Other 155.56% F# 270.00%
- cryptos 13y agoSee this poll in a table sorted by like/dislike quotient. http://translate.google.com/translate?sl=de&tl=en&js=n&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fhelmbold.de%2Fartikel%2Fprogrammiersprachen-beliebtheit&act=url http://translate.google.com/translate?sl=de&tl=en&js=n&prev=... German original: http://helmbold.de/artikel/programmiersprachen-beliebtheit http://helmbold.de/artikel/programmiersprachen-beliebtheit