12 ms·
What are some of the most disliked programming languages?
- dragontamer 9y agoI'm (pleasantly) surprised that C++ isn't nearly as hated as I expected it to be. I never considered C++ to be a bad language in my experience. I'm surprised that C# and Java are higher than C++. Perl being #1 isn't a terrible surprise. But I think its no small secret that Perl is usually the ugliest, but most practical... language for a huge number of jobs. No one likes using Perl, but damn is it useful in a lot of situations. Matlab would be that language I dislike (despite it being low on the list).
- tehlike 9y agoI am surprised with c# vs java as well, but they are close. I code c++, javascript and java these days, and i greatly miss my c# days. Say what you will about microsoft, but i consider C# and the default development environment in vs superior compared to what's available for other languages. That with Resharper back in the day was the bomb.
- smithkl42 9y agoHeck, still is. C# is a nice, pragmatic, practical language, and the VS/Resharper combination can't be beat anywhere, period. I love how lazy it lets me be.
- tehlike 9y agoFunny enough, I developed libraries mostly, in both for server use (nhibernate/castle), and for client side use (windows phone), and i can say pretty confidently that development environment for windows phone 8 was far superior to what android had, too. Android was a platform for years while wp8 was really new. Microsoft knows how to create developer tools, and languages.
- dep_b 9y agoIt's an ugly secret that WP in many regards was the best platform out there. If it was about 90's desktop operating systems it would be BeOS out of the options Windows 98, MacOS 8 or BeOS. But it was not only late to market but also Microsoft's PHB's managed it pretty ugly.
- osullivj 9y agoMS's devenv is excellent, and IMHO doesn't get the recognition it deserves. Folk often talk of Windows and Office as the twin pillars of MS, but I'd say Visual Studio is the third pillar. MS has always done a great job of dev relations with MSDN, cheap or free tools, sample code and excellent blogs like Raymond Chen's Old New Thing. JetBrain's IntelliJ and PyCharm, as well as Firebug and the Chrome debugger have improved things for devs outside the MS ecosystem, but MS are still ahead. Mixed language debugging in Visual Studio still amazes me. As a Python C++ dev I'd love to have a Python IDE that would enable me to debug C++ .pyds.
- Santosh83 9y agoI'm also similarly surprised by the neutral response to C, given that it's been trendy to hate it for numerous buffer overruns and CVEs!
- palad1n 9y agoLisp? Did I miss a mention of it?
- ACow_Adonis 9y agoUnforunately, us lispers are probably too obscure for most professional programmers to even have an opinion on :(
- dragontamer 9y agoIts right there under "Javascript". Lol. Since Javascript is one of the few languages that first properly implemented clotures, and are functional to boot. A big joke in LISP circles was that Javascript is more similar to Scheme (one LISP dialect) than it is to Java.
- jfoutz 9y agoNot really a joke is it? Only got the syntax because of the sun deal, I thought.
- gnulinux 9y agoWow so many wrong in one comment. Javascript is not the first language implemented closures. Javascript is close to scheme ... compared to C, Eiffel, Algol, Haskell? Semantically null statement. Javascript is not named Javascript because it is supposed to be close to Java; no one thinks Javascript is close to Java, so comparison is misguided.
- dragontamer 9y agohttp://www.crockford.com/javascript/javascript.html http://www.crockford.com/javascript/javascript.html Don't blame me. Blame Douglas Crockford. And I think Mr. Crockford knows more about early Javascript history than you do. http://www.crockford.com/javascript/little.html http://www.crockford.com/javascript/little.html
- gnulinux 9y ago
- spinningarrow 9y ago> One tag that stands out is the functional language Clojure; almost nobody expresses dislike for it, but it’s still among the most rapidly shrinking
- michaelmrose 9y agoIs it fair to correlate a single qa site usage even a massively popular one with popularity. By that definition if error messages improve it will be deemed to "shrink".
- vesak 9y agoWell, yes. My dislike of PHP took a steep dive right around the time I didn't have to use it anymore. It's obviously way easier to dislike something you use, and even more easy if it's something you have to use.
- sverhagen 9y agoI'm no statistician, but if languages are new and upcoming, thus still have a standing chance at being fast-growing at all, on Stack Overflow, would they also be languages that aren't yet so established in corporate culture (for being new) that they aren't forced onto people, so that people gravitate more voluntarily to them, so that they are more prone to liking them, so that (finally) they're bound to be less disliked? I mean, I read it, and I went like: "duh".
- fusiongyro 9y agoThis is probably why Stroustrup famously remarked "there are two kinds of language: the kind people bitch about, and the kind nobody uses."
- danieldk 9y agoIt is easy to repeat platitudes, but the data doesn't really show it. Take the ten most popular languages: Java - slightly negative, Javascript - positive, Python - positive, C# - slightly negative, PHP - negative, C++ - neutral, C - neutral, R - very positive, bash - positive, Swift - positive. The interesting correlation here is that languages that are on their way out seem to be more disliked (Perl, Delphi, etc.). There are multiple possible explanations, e.g.: their usage is shrinking because they are disliked; or people dislike them because they are not 'sexy' anymore.
- jacquesm 9y agoYou have to discount the age factor. Newer languages will always be growing compared to older languages, and early adopters are advocates rather than people criticizing their new chosen tool. To properly criticize something you first need to become intimately familiar with it.
- 72deluxe 9y agoOddly, this does not apply to C++ which has been steadily growing and growing in features, yet gets criticized for being "too complicated". Of course, you can get by knowing only the bits you need, and Stroustrup makes the excellent points in his hopl-almost-final PDF that newer languages are easier to "get into" because they haven't had years of having new features bolted on, hence they appear "simpler". A few decades down the line and they'll be in the same position.
- rbobby 9y agoNo MUMPS? No RPG?
- ACow_Adonis 9y agoI dislike R. As in, design and performance wise. But an alternative often doesn't exist. So i am kind of saddened to see it so "liked". You can best be sure as hell I wouldn't be listing it as something I hate on any of my applications/resume though :P Try getting away from it in my field. Not least because of the err...positive over-zealousness...of the R community. I used to joke that the main difference between R/Hadley (no offense Hadley) and Jesus was that some of Jesus' followers admit he might have made some mistakes. Also git. Look, i like it. I use it almost every day, but I'll be damned if i trust anything that says its universally loved/not loathed. I feel there's another dimension to this data not being captured/expressed, but I'm genuinely struggling to verbalise what it would be...
- Joeri 9y agoGit is probably a technology people don’t feel comfortable criticizing because they think whatever problems they have with it are due to them not properly understanding it. I suspect that they feel like disliking it is akin to admitting ignorance. I have this intuitive feeling that git’s design suffers from unnecessary complexity. At some point someone will come along and make an easier to use dvcs, and git will fall out of popularity like cvs did when subversion showed up.
- joshuamorton 9y agoHaving now used a number of other VCS tools (Perforce/Piper and Mercurial), I still think git intuitively gets the "model" right, better than the others, but goodness the API naming makes almost no sense.
- InclinedPlane 9y agoGit is a very sophisticated and substantially well built tool, with several key weaknesses that border on fatal flaws. Unfortunately, too many of the people in control of git's fundamentals and ux don't recognize those flaws as such and refuse to fix them. This has a bizarre consequence of causing many who also see git as one of the best VCSes out there to fail to see those flaws clearly as well due to groupthink. Unfortunately it will likely be years and years before they're seriously addressed.
- Animats 9y agoShort version: Perl, Delphi, and VBA are the most disliked languages.
- edoceo 9y agoPerl is like Crack. Feels so good to use it and it solves the narrow problem so fast. But when you have to go back to it you feel so dirty.
- mavelikara 9y agoI was surprised to see Ruby attracting much dislike. I had the impression that it was a language explicitly designed to be used by human programers to express ideas, although with poor runtime performance. What could be the reason?
- shakna 9y agoPoor performance, and Ruby likes magic. Magic methods and macros scare off a huge audience of programmers in the mainstream world. Rubyists tend to wholeheartedly embrace them, however.
- edoceo 9y agoMagic is exactly why I stayed away from Ruby. You have to learn some for every environment but Ruby was too much for me. Perhaps because I first saw it with RoR - which adds even more magic.
- quetzthecoatl 9y agoBoth above and above one's parent comment is about rails, not about ruby. It's understandable that most people got familiarized with ruby because of the popularity of rails, but confusing between the two?
- shakna 9y agoI've written Ruby, not Rails. In fact, most of my Ruby work hasn't had anything to do with the technologies associated with the web, they've been desktop GUI applications and server applications (like dealing with ActiveDirectory). I'm not confusing anything, I'm speaking from experience. The Ruby community likes things that think for you, and insert methods unexpectedly, change the meaning of semantics, and all sorts of other magic designed to think for the programmer.
- pmontra 9y agoRuby doesn't have macros and all the magic in its ecosystem is confined to Rails and the gems related to it. But most Rubyists are such because of Rails so that's understandable. Examples of the magic like features of Rails are ActiveRecord's auto discovery of db schema and auto creation of queries, or callbacks on the changes of status of db records. It's where programming in Rails becomes somewhat declarative. But macros? A language with macros I'm working with is Elixir. Even the seldom used if then else is a macro there. Do people dislike Elixir because macros change the code at compile time? I don't think so.
- primeblue 9y agoIt’s like the fashion industry, nothing new
- indubitable 9y agoIt seems that the survey methodology here maps more to some mix of familiarity and popularity, rather than liking or disliking. They're basing the results on the technologies people indicate as being interested in working with (that's a like) and those they're not interested in working with (that's a dislike). People are going to "like" the technologies they know and are familiar with. They're going to dislike popular languages that they may otherwise receive numerous offers about. Relatively uncommon languages are going to receive only popular votes since there's no incentive to dislike them. E.g. nobody's getting spammed with recruiters seeking R expertise. This explains why unpopular language also seem very well liked. When considered as a ratio, there's almost nobody disliking them and a handful of people liking them. I think javascript's position here is the most clear example of the problems with methodology. I think it's safe to say that most consider javascript a flawed and undesirable language (compare to a hypothetical alternative), but at the same time there are a zillion javascript developers who are willing to work with javascript. So the raw number of people willing to work with it for a paycheck outweighs the dislike of the language itself. Compare this to something like C#. My first thought (before considering the above) is that its lack of popularity was a cultural issue. It's maintained by Microsoft and is probably seen by many as a more corporate and established (in a somehow negative way) language. But then scroll down to their "tag rivalries" section and the real issue becomes clear. The people who most "dislike" C# are visual basic developers!
- camus2 9y agoThey should have asked "what technologies are you familiar with that you wouldn't want to work with?".
- deleted 9y ago[deleted]
- photon-torpedo 9y agoNote that the data for "(dis) liked language" comes from answers to "language I would (not) like to work with" given by developers on the job market. I think those answers don't reflect so much the developers' sentiment towards the language, but their expectations about future job prospects in that language.
- andrioni 9y agoNot only that, but also languages you dislike enough to tell everyone who reads your CV you won't work with them, like ACow_Adonis said. I know many people who avoid R as much as they can, but would rather work with it than be unemployed.
- deleted 9y ago[deleted]
- tribby 9y agoI love perl, but probably only because I am already well versed in it. can do a lot with it and it still is the best option for some things. I wish perl 6 had a larger community, it actually looks very cool.
- forinti 9y agoI do lots of data munging and loading with Perl. There's nothing that comes close to the productivity that Perl enables me to have.
- luhn 9y agoI'm really surprised to see Ruby so high on the list. I have limited experience with it myself, but I had the impression it was a generally well-liked language.
- goatlover 9y agoMe too, but I have a feeling a lot of that is Rails backlash. I dislike that Ruby is so strongly associated with Rails, because it's a full programming language like Python or Perl in it's own right.
- gaius 9y agoAlso Chef backlash
- bdcravens 9y agoI think there's a pushback from developers who see Ruby as more hipster and alot of "Ruby" developers as merely Rails developers gluing together gems.
- dummyfunnytoo 9y agoI learned Ruby before learning anything about Rails. I've used it off and on professionally for 7 or 8 years for production services, testing, and random glue/batch code. It felt super powerful and refreshing when I was doing C++ daily. And after Perl it seemed like a nice improvement in syntax and readability to me. But... Time has not been kind to my views on Ruby. All that promise turned to ashes in my day to day. All that flexibility and expressiveness led to subjective code reviews and inconsistent styles across files, let alone projects, being worked on by the same team. All that metaprogramming goodness lead to very robust, extendable classes and modules.. that were never extended. They were copy-pasta'd to a new codebase instead because testing the metaprogramming to support both variants was too risky for the project. And once there were two deployed forks no one ever approved time to consolidate them so then the third one was forked... Working with Rails for some internal sites a couple years ago was like my whole Ruby experience in miniature. Started happy and very productive (ahh, generators! I'll just get my boilerplate started.. Rails guides! Actual documentation...) Then it was a little bumpy.. (Ok sure, convention over configuration. But where are the conventions listed? What options are there?).. And then magically working for almost everything. Then I spent three times as much work fixing the last 5% of my issues because they were poorly supported/unusual features, impossible to configure within the default Rails knobs, or basically just growing pains in moving from development to deployment environments. I don't consider Ruby as a hipster language and I formed my opinions of it based on the core language not Rails. Not saying there aren't people who match your description, just offering a different view. I'd summarize it more as Ruby-fatigue. Ruby "in the large" is pretty tedious and working with larger teams has lead to friction (even with good teams trying to be proactive with linting, style guides, code reviews, automation). So I still use it, but it's a "better Perl" for me now. If it's a one file script it's in bash/Perl/Ruby/whatever, if it's a couple files for a utility it's probably in Ruby, but if it's something new and I expect it to be more than that I'll pick something else.
- janci 9y agoI clicked on this just to see if perl is on top :D
- flukus 9y agoWhat do people have against delphi? I thought it was a nice fast language with a decent UI builder for native(ish) apps. I've never used delphi as it is but I've got fond memories of pascal. I didn't realize it was even used enough anymore to have people dislike it.
- 0xbear 9y agoWhy “ish”? The apps are fully native.
- flukus 9y agoNative UI. It's compiled native, but AFAIK it uses it's own UI toolkit, admittedly I have no idea how well it matches the LnF is on various platforms.
- vintagedave 9y agoNative UI on Windows and iOS. Android and macOS are on the roadmap. FMX is a good UI/graphics toolkit too - runs on the GPU etc.
- maaark 9y agoI recently had to debug an open source delphi application, it was awful. The IDE is dated, the errors arcane, and I had someone from "greymatter" leave me a voicemail after I started a free trial of the IDE. Also, curly braces as block comments actually offend me.
- vintagedave 9y agoCurly braces offend? There are other language families than C-descended, you know :D Delphi goes for /reading/ code. My experience - and anecdotally, reading comments others say - is that it is a literate, readable, clear language. One of the biggest problems with long-term coding and big projects is "write-only code", and the language can help.
- Double_a_92 9y ago
- asicsp 9y agoplease don't hate Perl, it is great for one-liners from command line ;) though I do wish the move towards Python in VLSI industry had occurred lot earlier
- lainon 9y agoThis has already been discussed yesterday: https://news.ycombinator.com/item?id=15592960 https://news.ycombinator.com/item?id=15592960
- josteink 9y agoMicrosoft despite all their efforts clearly takes the lead on disliked technologies. Poor guys. Given the typical “developers use Macs” mantra you see echoed everywhere, it’s interesting to see OSX so clearly disliked too though.
- bdcravens 9y agoI think the issue with OSX is the perceived decrease in quality over the past few years.
- Double_a_92 9y agoIf by developpers you mean bootcamp graduates...
- nhebb 9y agoI assume the higher than (I) expected dislike for C# is because of the Microsoft ecosystem, not the language itself. It will be interesting to see whether that remains so over the next few years as .NET Core and VS Code mature.
- InclinedPlane 9y agoIndeed. I've used a lot of languages and C# is one of the best to work with. It's easy mode for practically any task you can imagine. Maybe it has to do with the employers who want to use C#, I can imagine more of a predominance of enterprisey hell holes making dumb line of business apps.
- koyote 9y agoI think it's due to how the question was formulated. The answer is not really if the person 'likes' a language but more about if the person is looking for a job writing that language. That would also explain why JS is so low in dislikes when it should really be one of the most disliked (there's a whole ecosystem of languages and transpilers that have cropped up just so you _don't_ have to write in it).
- eecc 9y agoI like the network plot. In it I recognize how some stacks are growing and shrinking in popularity: ML/AI, JavaScript are growing. PHP Is losing to Node. MS and Oracle JEE down, Java Spring moving on... I definitely need to polish my Kotlin
- pacoverdi 9y agoIt's funny to see Perl on the top of that list. I was a Perl hater for so long that I don't even remember how it started. It probably has to do with the extensive use of symbols (=~, -s, -d, s/ ...) that makes code quite unreadable and the fact that it sometimes feels more like a shell or a UNIX tool than a proper language. Recently I wrote a program in Perl after more than 20 years and I actually found it quite enjoyable. It's so easy to write scripts with option parsing that do file processing. You can even make them very readable as long as you sprinkle it with some comments alongside the tersest statements :) But I guess if I had to write or maintain bigger projects in Perl the nightmare would begin.
- gnulinux 9y agoPerl was meant to be used as "better bourne-shell". Why would you make "big projects" in perl?
- rwmj 9y agoOh sweet summer child. You have clearly never worked on a 100,000 line web service written entirely in Perl in 1999.
- gnulinux 9y agoDoesn't matter you cannot hate perl for doing something it's not meant to do. You cannot write Python code for a super performance critical task in a 500KHz microchip and decide that Python is a horrible language. Python is not meant to be used that way. You should use assembly or C. My point is, if you abuse the intent of languages, they all may end up horrible. It's like writing purely functional OOP code in C.
- ivanhoe 9y agoNot really, because "unreadable" is a very subjective metric. When you spend some time with a syntax your brain learns to parse it quickly and effortlessly. Perl's use of $%@ prefixes to mark the type of variable actually makes it easier to understand, once you get used to the syntax.
- dsfyu404ed 9y agoWhichever one the legacy code is written in. I'm surprised nobody said that yet.
- kluck 9y agoI begin to find the constant bashing of Perl amusing. Such a great language, people just use it and it gets stuff done. I have no explanation as to why people hate it, other than because most people just don't understand Perl.
- zimpenfish 9y agoI've used Perl since 1991. I've spent more than 80% of my career writing and maintaining Perl. I get paid large amounts of money to come in and help people sort out their Perl projects. ... it's not a great language; it's a clusterfuck of "cleverness" which lets "clever" people implement horrifying glass cathedrals that shatter as soon as you open the door. (And there is some selection bias here, I'll admit - the people who control their Perl programmers and enforce simple, readable code don't need contractors to rescue things. It's generally only the hideous fractals of fuckery I get to see.)
- disgusting_guy 9y agoAgreed -- there are far too many pitfalls that you only really learn through debugging strange behaviour. Autovivication is a perfect example of this: perl -wE 'my @test; say $test[5]{yes}[0]{ok}++; say scalar @test; say ref $test[5]; say $test[5]{yes}[0]{ok}' outputs: 0 6 HASH 1 with not a single warning
- DougWebb 9y agoWhy would there be a warning? Your example does exactly what autovivification is supposed to do. Obviously you don't normally use it as obscurely as you've done here. I hate C#'s way of assigning a value to a dictionary, without autovivification: if (dict.ContainsKey("yes")) { dict["yes"] = val; } else { dict.Add("yes", val); } You also have to use ContainsKey before you try to use [] to retrieve a value, because [] throws an exception if the key doesn't exist in the dictionary. Perl's autovivification, which assumes you know what you're doing and expect the key to be there when you ask for the value rather than explicity check for the key, makes much more sense and is a lot easier to work with.
- tekkk 9y agoR is a great tool but terrible programming language. There is some basic fundamentals how programming language should work which R just disregards for the sake of being different. Okey indexes start at 1, I can get past that. Variables are initialized with "a <- 1" okey well for each to their own. Return requires you to wrap values with "()" so "return x" doesn't work but "return(x)" does. Umm. You should never iterate over a dataframe except when you have to and then there's a plethora of different ways to do it. Some are better, some are worse. But isn't it nice that everyone can invent their own way of doing it? Right? Those are what I can come up with from the top of my head. But overall the feeling I get when I code R is that it's this mystic arcane magic that requires completely new way of thinking compared to other programming languages. And it's very frustrating. Python is better but I have my issues with it too. Mainly the fact that debugging in Python is such a pain the ass and typelessness makes reading of other people's code a nightmare at times. Also libraries like numpy, pandas and matplotlib are very convoluted with kinda bad documentation. Maybe a good IDE would solve it with Intellisense and RStudio like capabilities (again where R shines). I've tried Spyder/Rodeo/Pycharm but none of them were as simple and user-friendly as RStudio when doing data-stuff. EDIT: Anecdote: I did some programming with a statistician who is a R-guru and he wrote terrible code in Python. Would he coded better if he had learned a different language than R? Maybe. In my opinion probably yes.
- carljv 9y ago> There is some basic fundamentals how programming language should work which R just disregards for the sake of being different. So, you can complain that R feels different from languages you're used to, but it's incorrect to assert that R does things for "the sake of being different." R is simply influenced by a different lineage of languages than, e.g., Python. > Okey indexes start at 1 Languages have had 1-based indexing since Fortran. If your languages is doing numerical computing, you're going to take a lot of cues from Fortran. > Variables are initialized with "a <- 1" okey well for each to their own. This is how APL does assignment. Like APL, R is an array-based language (all types are vectors/arrays; all functions operate over arrays). > Return requires you to wrap values with "()" so "return x" doesn't work but "return(x)" does. Umm. R is highly functional. Arithmetic, assignment, and indexing operators are all functions. There are very few "statements" in the language. It's actually highly consistent with that to have return be a function, not a statement. It's actually uncommon to use return in R, since every block automatically returns its last expression. > You should never iterate over a dataframe except when you have to and then there's a plethora of different ways to do it. Some are better, some are worse. But isn't it nice that everyone can invent their own way of doing it? Right? A data frame implements both list and matrix semantics. This makes sense since, like a list, it is an array of differently-type arrays. But like a matrix it has a notion of rows and columns. Over time, folks have tended to move away from using matrix semantics. > Those are what I can come up with from the top of my head. But overall the feeling I get when I code R is that it's this mystic arcane magic that requires completely new way of thinking compared to other programming languages. And it's very frustrating. I mean, this is a fair complaint, but it's not a problem with the language. You have to learn it. At its core, R is actually a fairly simple, elegant language that has a few key principles, and some interesting and powerful design features (like delayed argument evaluation). In "Javascript: The Good Parts", Doug Crockford says this: "JavaScript is most despised because it isn’t SOME OTHER LANGUAGE. If you are good in SOME OTHER LANGUAGE and you have to program in an environment that only supports JavaScript, then you are forced to use JavaScript, and that is annoying. Most people in that situation don’t even bother to learn JavaScript first, and then they are surprised when JavaScript turns out to have significant differences from the SOME OTHER LANGUAGE they would rather be using, and that those differences matter." Which reminds me of most people's attitude towards R.
- arximboldi 9y agoInterestingly, but somewhat unsurprising, most disliked languages are "medieval" languages according to: https://www.youtube.com/watch?v=y2___qaG_9Q https://www.youtube.com/watch?v=y2___qaG_9Q ;-)
- ivanhoe 9y agoSo perl is the most disliked, and bash is one of the most liked languages? Most of people have at least some experience with bash, so they don't mind it, but perl looks scary to them. And they probably never really used any of the two, otherwise they'd notice that almost all of ugly things in perl are taken from bash. IMHO these stats have little to do with the language itself, and say much more about the current fashion and job niches.
- jondubois 9y agoI'm surprised that JavaScript not disliked by more people given that it's probably the #1 language that developers are essentially forced to learn (often against their will). I guess it's a testament to how good it is/has become.
- krupan 9y agoChip (ASIC, SoC, FPGA) designers kind of all hate verilog and VHDL, but the alternatives, sadly, aren't gaining much traction yet.
- fb03 9y agoHolyC ?