From the horribly slow typecheck that gets exponentially worse every time anyone adds a protocol extension to <very common type>, the debatable choices made with concurrency/async/actors/swift6, the only-very-recently-stable ABI, the regular titanic undertakings needed for bumping any major version that are almost unheard of in most other languages, etc.
Swift is an alright language today. Good even. But for a 10 year old language ? It aged horribly, going through senseless breaking changes just to fit Apple's needs. It's fine if you're locked in on Apple's platforms, but any other language doing that would have been set on fire already. Look at how painful the python2/python3 split was: Swift did worse than that, _four_ times.
You mean 6 years ago? https://www.swift.org/blog/swift-5-released/
(And interop with Swift is still laughably bad)
I think you’re just going on vibes here but it’s kind of bullshit when you think about it for more than a moment.
It’s also only been relatively recently that Google has decided it’s ok to be opinionated and provide happy paths for devs to follow in their UI library with Compose. Android Framework was/is notorious for having 5 ways to accomplish any given task and none being “right” or the only one capable of doing what you need being deprecated.
And then there’s Kotlin, which is so close to being a great language but dies on weird hills ideologically (e.g. please just give me “if let” syntax, “.let {}” is ugly and automatic unwrapping fails just enough to not be useful).
Freedom of editor is nice but doesn’t make up for the rest, at least for me.
> it’s dragged down by the unmitigated messes that are Gradle and ProGuard
its crazy looking back though, when android studio first came out there was a big hope it would be better than ant but idk personally i also hate gradle with a passion... > “if let” syntax, “.let {}”
probably guard let would be even better since it avoids indenting on the happy path but jmo