That statement doesn't make a lot of sense. The "dislike" tag is understood to be the list of things you don't want to work with (as in, "don't contact me about jobs if the job involves using xxxx tool/tech/language"). Resumes don't generally have a section for "sometimes frustrating/tricky stuff that I don't even question that I'll be using."
You just can't ignore the alternatives (or lack thereof) to any of the "disliked" stuff in the article.
The running theme in the strong dislikes are languages and tech that were once popular but have been surpassed by newer, easier to use or work with alternatives. That may happen one day to git, but it would seem a long way off.
There's also a running theme of the dislikes often representing working with older legacy code. So the listed languages might just be the devs' proxy for disliking working with legacy projects (vba strikes me as an example of this, since it was hugely popular but no one is really using it in anything new).
The analysis shows that there is a correlation between a language's "liked-ness" and its growth as a tag on Stack Overflow. Correlation-is-not-causation and all that, though it seems that what developers will take for a job is similar to what they actively use. This, of course, is rather cyclic.
In the specific case of Perl, this makes the analysis highly skewed. I liked using Perl (I no longer write in it because my current team already knew Python well and not even a bit of Perl), but almost all the job ads around me that mention Perl come from big, old corporations. I wouldn't want to maintain a corporate internal tool written in Perl, because Perl in such an environment means a very old and overgrown script (virtually all newer are written in Python) in a complex and complicated system that cannot be updated to modern architectural standards, and Perl from '90s and early '00s has a history of being used mainly by dilettantes who couldn't tell global and local variables apart.
Twenty years ago I practically got a job offer merely by asking a question on Usenet about a particular piece of test equipment.
IIRC it was some HP 'bed-of-nails' beast for programmatically testing circuit boards. You would setting pins as inputs/outputs, analog or digital, give pulse or waveform patterns, etc.
It sounds really cool, but this thing was horrendous to use, you had to run it on a specialized HP-UX box with a Motif interface, and it was not very pleasant.
But I was surprised that by asking one random question on some HP or Motif usenet forum (which I don't believe I could get anybody to answer), some tech company was practically offering me a job to use this system for their own test workflow.
I refused, but it did give me some confidence knowing I had some obscure job skills I could fall back on if needed.
Python's continued popularity surprises me. While I like Python and it is good for data science I don't understand why people use it for websites. The PHP and Ruby ecosystems are far more mature if you consider ease of use and if you are going for performance, Go and Java based frameworks are better. Even in the data world, I kind of like R over Python.
I'm also glad to see Javascript highly ranked. I was under the impression that Node.js in particular was going the way of PHP and Ruby. But personally I like working with Node.
Edit: I wonder how much of this is due to popularity too. PHP is insanely widely used. Which attracts more entry level coders than a language that is broadly used for specialty / high performance / niche languages.
My guess is a big part of it is Python’s “one right, preferably obvious way to do it” principle.
Rails does this “convention over configuration” thing which really means “anything could come from anywhere”. View not rendering? Literally anything could be going wrong anywhere in your stack. Some convention somewhere is tripping you up.
The “one right way” principle in Python mitigates this chaos. You can at least reason about what’s “pythony” when you’re thinking about it. It helps that the ecosystem is smaller too.
The Ruby community, and JavaScript to an even greater degree, are more focused on individual preferences, which vary greatly. So you have to wonder... is this a “modern”, transpiling, framework-thinking JavaScript developer, or a functional, small is beautiful, package-oriented one? Or something else entirely?
Python wins because they value consistency over the bleeding edge of architecture innovation. This is consequently also why they lose.
That is an awesome quote about Python. I might borrow it. Thank you for that.
This is the reason, actually. Python is NOT ONLY GOOD FOR WEBSITES.
In fact, the only thing that have stopped python for total global domination is to be poor for mobile apps.
Do not underestimate the power of make a "full stack development" with just one language.
unfortunately we already have that language and to use it you need to transpile... It will always be Ryby/js, py/js, php/js until web assembly becomes a thing I guess.
PHP, Ruby, Node.js all have excellent tooling for making command line applications as well as websites. While none of them have focused much on having a GUI, projects do exist.
Ruby in particular is very widely used as a system automation language.
Python is very easy to use and often targeted towards non-programmers. You'll find a lot of tutorials online that don't require any previous knowledge of programming, different to other languages. At the same time, Python is popular with many full-time programmers which gives you the feeling that you learn a professional language very easily.
I personally think it's nice for scripts that only run once or need to be adapted continuously, which is often the case in data analysis. I switched from R to Python, I found function naming in R so confusing that I constantly had to Google basics even after years of using it.
Maybe that is my problem is I am coming at it as someone who knew 10 programming languages before even looking at Python. But my wife is trying to learn Python right now and she's not a code (she's an biomedical engineer) and I can't say her experience learning it has gone any smoother than it would have with some of the other languages.
> I switched from R to Python
R suffers from the same problem as PHP. The standard library is too large, does too much, and grew organically. So you have things like inconsistant naming. I do agree that is horribly frustrating about R.
I've only worked on one Django project and I inherited it from another team so it could be because the coders on it originally were no good but my experience with Django was the opposite. You're milage may vary, maybe I'll give it another shot someday.
I see python good for quick dev though, so if I do re-visit I'll probably use something lighter like Flask.
Of all the authentication modules, the one in Perl was the shortest and sweetest.
Perl coders I knew prided themselves on illegible but powerful one liners in a smug/elitist way ("Ha! You can't read that?? That'd be three lines in C. Ha idiot."). I prefer readable code.
The list as presented is obviously biased. When I see that fewer people dislike MATLAB than C#... I don't know what to say to that.
Though I'll concede that with languages like Perl there is probably some degree of hipster-tendencies to actively disliking Perl in that Perl in many circles are seen as a prototypical example of "crufty old language".
However, what isn't clear to me is whether this is one-directional or a blended bi-directional rivalry. For example, the third item from the bottom is iOS : Android. Is this the coefficient of liking iOS and disliking Android or is it a coefficient of liking either and disliking the other? Can anyone clarify that?
Perhaps there's a way I could make that clearer in the post!
Awesome, thank you! I agree that the direction of the rivalry is an interesting part of it.
I just noticed that "backend : frontend" and "frontend : backend" both appear on the chart, which implicitly answered my question.
Perhaps another sentence or two that highlights this would help readers understand the directional nature of the chart. For example: These rivalries are directional, which demonstrates how rivalries are often asymmetrical. For example, as seen in the results chart, those who like backend have more distaste for frontend than vice-versa.
I like how illustrative it is in the general context of rivalries: I observed that people are most negative towards their neighbors, as opposed to those who are very different.
Perhaps it's because similar agents need to compete for similar resources?
That's an interesting observation. Having learned Clojure this year without asking a single StackOverflow question, I don't think this means Clojure is shrinking. I suspect that Clojure's crazy good stability means no new questions are really required for core things.
Also, Clojure tends to not be anyone's first language, if Clojure Conj is any indication. Most Clojure developers I've ever met have been programming for > 10 years. Experienced programmers don't tend to ask as many "how do I do this in language X" questions.
That seems like wishful thinking. If new people are picking up the language there should be noob questions on StackOverflow no matter how stable the language is.
Meanwhile, Scala is skyrocketing. I would imagine that this is because Clojure somehow missed the big data race.
Github is a better gauge. I wasn't aware that it was trending downward. My impression was more that it was slowly accreting instead of following a sharp curve, which is just fine by me.
Some of the languages with really low negatives are probably only there because they are rarely used commercially so no one is being forced into using them.
JavaScript's standing is pretty amazing considering how widely used it is commercially and that everyone is forced to use it.
I know a lot of people have a bad taste with R but I blame the bad non-programmers that used the language but Hadley Wickham and his tidyverse has turned this DSL into one of the best languages to use for its purpose.
The disliked languages are weighted towards older ones where people have inherited codebases over the years and been asked to maintain them. That hit Perl especially hard I think.
1. The badness of the language is palpable and well-understood.
2. It is easy to imagine that a different language could have been chosen for the task at hand.
For instance, Groovy and Go are about equally disliked. I'm not a huge Go fan, but I would expect it to be preferred as a language over Groovy. However, since it's a new language being used mostly for new systems, it's a language of choice rather than necessity. A programmer working around an annoying wart of Go can find himself thinking that his life would have been easier if only someone had been smart enough to choose language X instead. People using Groovy are working on legacy systems involving Grails, where the language choice was in the far past and may have been a good one at the time, or Gradle, where people may feel that at least Groovy is better than XML.The same reasoning explains why Bash and Perl are on opposite extreme ends of the chart. Bash is unavoidable; Perl is as avoidable as cargo pants.
There's a huge JS audience there vs other sites, IME.
Additionally, I'm kind of a JS hater, but I really only hate it because it is just too often mis-used, not because it is actually bad itself.
I find that a lot of the JS answers are pretty good, and there are many 2-3+ year old answers that are edited with ES6 updates to the answer, which is pretty amazing/nice.
Loving that postgresql, docker and python are so uniformly liked.
The backend/frontend rivalries I found hilarious for some reason.
This would definitely not be my top, I guess someone's top is mostly influenced by their own path.
I would definitely not list Ruby as a language I wouldn't work with, it reads nicely and is very close to Python for me. Perl and PHP are somehow similar and reads nicely as well imo.
What I would have put up there are things like Lips and Scheme that are just a succession of parenthesis.
Probably Java would be the #1 thing I would refuse to work with.
The general principle of a programmable RAD with a nice IDE and a visual designer is still very popular. I'd wager Delphi would also appear on a list of "most-missed" languages, because using Delphi back then meant a pretty nice developer experience.
Still a pleasant language to use, IMO :)
This emotional response probably transfers onto the languages themselves, which means any language in decline will naturally attract resentment.
At least that's the case for me. I can say that I dislike PHP because I used it in the past. I couldn't say the same about rust.
But I guess most programming is mindless IDE-bingo where the least-common-denominator churns megabyte after megabyte of same repeating crap badly solving the same repeating problems, so it doesn't really matter that the syntax is in your face hiding the logic all the time.
Never met a Delphi expert who didn't love it. Never met a C++ expert who didn't have grave reservations about it. It's like, "Here's your bag of infected needles. You can make really slick games with them, but be careful!"
bash... WTF?
I won't say it is a bad language, but it allows and seems to encourage some bad habits.
My standard web stack is grape, grape-swagger, grape-entity, and Sequel (with some handy libraries like Ougai kicking around) and I don't run into any problems like that.
A Sinatra project written with some discipline and taste isn't too bad, though, and Ruby's still my preferred language for throw-away one-off tiny scripts, mostly because it's very concise, has lots of available libraries, and isn't Javascript.
I left Ruby behind last year to program Go full time. It's much easier for me to not have to do the mental gymnastics of figuring out where a Ruby method came from.
Are you using Rails? My experience is a lot of the "magic" comes from the use of Rails not the language itself. Though since Rails inspired so many other Ruby frameworks and libraries, the magic has spread a little bit.
Overall I like Ruby for writing DSLs since it has tools in the language that make doing so really easy. But for a website I would... and this is going to be really unpopular... actually probably choose PHP over it. Easier to find coders, equally bad coding practices, but less magic.[1]
[1] IRL I tend to choose Node.js or Go but I have used PHP extensively in my career because it is everywhere. And Ruby because for the longest time Ruby was cool and PHP was frowned upon. Now they are both frowned on.
All languages are like that to a certain extent but Perl more than others.
Edit: fixed "read only" to "write only"
Just underline the error but let me continue to code dammit.
There are several languages on this list like that. I wonder if C# for example has that as a factor.
Working with C# likely means working in an MS-centric environment which is probably what this is measuring more.