What programming language is the least hateable? Not in the sense of the best, but the one that is clearly at least good enough, even if it's not super great
Comments
Log in with your Bluesky account to leave a comment
ehhhhh, I don't know about well. It does its job adequately, but I'm not sure about well. Its certainly better than its ever been, though. Sure would love tbody being able to support overflow'd content
It's definitely not my favorite, not by a long shot, but python has shown itself to fit the bill. Like it's not anything to write home about, but it doesn't suck either, you know? Easy to learn, so every skill level uses it.
think I'd have to agree with C# - it's definitely accumulated its fair share of quirks now, but it works well and it's evolving comfortably into the future
I would also have to probably submit Go: it's not really my cup of tea, but I respect what they've gone for - especially now that they've gotten past the 1.x pains - and it's a pretty respectable language for Doing Things:tm: without too much fuss
i think the footguns in the go type system prevent me from considering it for least hateable if stacked against c# and ... maybe not java but at least kotlin. nobody hates kotlin, right?
Every time I’ve used Kotlin I’ve been disappointed. “Oh, that’s how it does switch statements? This is so much nicer in Swift.” But of course Swift has other issues.
It has to be something like elixir or kotlin right? I personally like typescript and rust a lot but I've seen so much hate about those languages that I hesitate to say they are the least hateable.
Although it helped me out yesterday because I was able to talk at length on a job application about my experience maintaining Python-based pubsub servers hahaha
I hate the significant whitespace, the object orientation, the untypedness, the fact that if you want to use if-then as an expression you have to turn it inside out...
But what I hate most of all is that it's so popular I can't avoid it.
i think the answer has to be ruby. simple, clear, easy to understand syntax; nice block calling conventions; idiomatic data manipulation and transformation built into the language without python's horrid comprehensions
I really feel like PHP fits here. It is so well documented and if you use modern PHP methods you will find it does most everything right out of the box -- no package manager needed.
Usable on more platforms the way languages like C/Python/etc are.
I think there’s some support on Linux but really it’s just a Mac/iOS language, to the point where the swift subreddit has some sort of rules about “this is not for general iOS development questions”.
Swift does have decent official support for Linux, windows, embedded, and even some AWS environments. But yeah, outside of Apple platforms and servers, it’s used pretty rarely 😬
I think Swiftly, like Rustup and other similar tools, will help make it easier to try Swift and hopefully grow the community a bit. I also think Windows being a historically neglected platform has hurt its popularity, but now there is a lot of effort in OSS projects working towards supporting it.
If you still have a problem with list comprehensions, you haven't spent much time with it.
They are actually one on the most useful tools out there. I love list comprehensions:
old_array = [1,2,3,4,5,0,6,7,0,9]
new_array = [item for item in old_array if item !=0]
It's reason for being wasn't good enough, but it took a popular language with many warts and tried to remove the warts. It's a pretty good language now, even if only relevant within Flutter.
It would have been hilarious, but not actually a bad technical choice, to port the TypeScript compiler to Dart. The WASM and JS stories might be a lot better even.
As a Linux user and a hobbyist dev: GAMBAS. It's probably *the* easiest and quickest way to build a native GUI app that isn't dependent on bloated runtimes (Electron/Java etc). The language is simple enough that even newbies can get into easily - it's even easier and nicer to work with than Python.
Go. Small enough, fast enough, good tooling. Good concurrency model. Package / module system is ok (now). Most importantly, other people's go code is more readable than other people's code in any other language I've come across.
Everyone saying 'Python' is underestimating the absolute hatred that most people seem to have for syntactically significant whitespace. I submit C# as my answer. Not a fan myself, but fits your criteria I think.
I think the main difference is how easy it is in ideomatic python to have code where changing indentation leads to syntactically valid code that simply does something else.
because haskell if/else and let/in take a single expression, this is much less likely to happen.
It's ok to have differing opinions, and to put different weights on different factors. I was trying to explain my own feelings about it. And they are feelings, not objective absolutes.
I think most people who go "significant whitespace? ewww" haven't looked into what Python's whitespace rules actually are, and are knee-jerk assuming it must be bad based on other, completely different, languages.
the GROUP clause should be implicitly inferred by default! in 99% of uses, there is no extra information conveyed by the GROUP clause that is not in the SELECT clause. drives me nuts
Most hated by people who actually use it: C++
Most hated by people who don’t use it: Rust
Least hated by people who actually use it: Rust
Least hated by people who don’t use it: C++
Same thing with Java although Java has decades of knee-jerk hate directed at it. There was a lot wrong in the early versions that has since been fixed.
- Not controlled by any one company, university, or individual: no single entity to get mad at
- Dynamically typed: no compiler errors to get mad at
- Minimal, readable syntax: less style to get mad at
- Preinstalled on basically every OS: ez start
Second and fourth points are actually negatives though? Compilation errors are way less infuriating than runtime errors, and it being pre-installed means you're liable to break your entire OS if you update it funny. And, you could use venv, but that is also a fairly infuriating process.
Dynamically typed is an automatic reason to hate that language. You end up putting layers of tools, libs, derived languages to make it more typed and emulate the compiler anyway.
I think Python is too mainstream to not get hate, whatever the reason (package management? 2 vs 3? etc). I'd go with Lua - afaik everyone kind agree it's perfect for its niche.
I feel like Lua has some prominent hated things, such as 1-indexing and a forked language (since everyone wants to go fast on luajit but the language moved on)
The 2 vs 3 thing is down to a few groups with large, intractable codebases running in arcane environments. But dependency management is still much more of a headache than in, say, JS (node) or Ruby.
(uv has fewer gotchas, but installation issues of its own: "why is my Python tool written in Rust"?)
Probably Go? It's pretty frictionless. Pretty inelegant, but you can drop someone who knows multiple languages (not including Go) into any project and they can probably figure out what's going on since it's pretty hard to do anything clever. The package management system is also super simple.
Comments
Out of the other languages I've used for work, Elixir was pleasant and didn't have any obvious annoyances.
Sad but true.
I hate the significant whitespace, the object orientation, the untypedness, the fact that if you want to use if-then as an expression you have to turn it inside out...
But what I hate most of all is that it's so popular I can't avoid it.
But... meaningful white space.
We hates it my precious, we hates it forever!
I could make a case for C, but I think most people using python and JS would hate C and they have the numbers advantage.
I've heard good things about Kotlin too.
I love protocols and the functionalist orientation it has with closures and immutability.
I think there’s some support on Linux but really it’s just a Mac/iOS language, to the point where the swift subreddit has some sort of rules about “this is not for general iOS development questions”.
Disclaimer: I have never admitted to knowing COBOL.
which is to say, I have to use 4 different JS package managers, 6 different Python package managers
but hey, nobody can hate C++ package managers when there aren't any!
(Python is a no for me: I can't get over its second-class debugging. And Basic is too limited for it not to be legitimately hated)
They are actually one on the most useful tools out there. I love list comprehensions:
old_array = [1,2,3,4,5,0,6,7,0,9]
new_array = [item for item in old_array if item !=0]
But it is nearly always the second best for any task.
🤷♂️
If you’re counting external baggage, then it’s still Java.
It's reason for being wasn't good enough, but it took a popular language with many warts and tried to remove the warts. It's a pretty good language now, even if only relevant within Flutter.
unfortunately, modern PHP
some dialects of careful Javascript / typescript?
there's also more niche problems like how it prescribes unix file permissions onto windows.
because haskell if/else and let/in take a single expression, this is much less likely to happen.
The reality is, even in languages where whitespace isn't strictly structural, it gets used that way as a meta layer of structure for humans.
Python enforcement leads to readability.
Calling a practice you yourself likely use w/o internalizing it "offensive" means you're due for a re-evaluation of your position.
Doing so publicly is inviting others to comment.
And Python only uses {} for dictionaries. They're RIGHT THERE.
(I use Python all the time...)
for thing in things: {
anotherThing = DoAThingWith(thing)
DoSomethingElseWith(anotherThing)
}
And all the rest into indented Python. I may get it out again...
I’d rather have more clarity by only listing them in the GROUP BY, not the SELECT, but that’s anecdotic.
var query =
from score in scores
where score > 80
orderby score descending
select score;
⎕ IO <- 1
Most hated by people who don’t use it: Rust
Least hated by people who actually use it: Rust
Least hated by people who don’t use it: C++
It's so versatile it's almost boring.
The limited amount of Java Ive worked with was fine, just like Microsoft Java 🤣
(I have much hate for it for the usual reasons: ecosystem, strange design decisions, poor typing experience, etc)
- Not controlled by any one company, university, or individual: no single entity to get mad at
- Dynamically typed: no compiler errors to get mad at
- Minimal, readable syntax: less style to get mad at
- Preinstalled on basically every OS: ez start
most python users just want to @app.get("/") and np.array and json.dumps
Why is rust """hated"""? Becuase borrow checker make me mad 😠😠😠
But you aren't wrong, lua does what it does well
(uv has fewer gotchas, but installation issues of its own: "why is my Python tool written in Rust"?)
I feel lost in it without TypeScript