todsacerdoti
1d ago
386
339
jakey_bakey
Swift would be perfect if it wasn't dying a death by 1000 cuts thanks to the inherent conflict in its governance.

Swift is caught between two clans: the Swift Working Group™ open-source community, and the Apple corporate entity who pays most of their salaries. Both have their own incentives and their own imperfections, but you guess who has the majority influence.

Ridiculous, permanent, tech debt such as hardcoded compiler exceptions are permanently living in the compiler codebase. Even worse, half-baked concepts such as result builders are pushed through without any real discussion because Apple wants the SwiftUI syntax to look pretty.

It's an amazing language still, but I can't see it surviving as nicely in the next 10 years if Apple doesn't learn to let go.

strongpigeon
I'm still fairly new at Swift and like it "OK" so far. One thing that I find particularly annoying however is how you very often run into "Compiling failed: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions" when using SwiftUI...

It's just shocking to me that the compiler is asking me to help it out.

jph
Swift 6 is a major leap forward for cross-platform batteries-including development IMHO. Foundation is the big win here, because it provides so much out of the box.

Swift 6 is the first version with enough low-level improvements and cross-platform capabilities to make me curious if the Swift team is trying to aim for long-term replacing C, C++, Rust, Zig, etc.

dmart
With safe concurrency and typed throws, Swift is starting to look a lot like a friendlier Rust to me. Honestly pretty excited to take a look at it again, though I doubt it will become my daily driver due to the smaller package ecosystem. Hopefully cross-platform Foundation is a step towards improving that though.
keyle
I'm incredibly excited for this. I thought swift was basically going to be stuck on macOS.

Last time I converted the swift compiler from the Ubuntu package to work on Debian, stuff was looking really awry. Most things work but not simple things like sigterm signals.

Swift is a fantastic language. I think the most advanced and smart language today. And I say this having used over 20 professionally over 25 years.

Just look at how swiftUI is implemented. It's not even a DSL, it's Swift naturally! Compare it to flutter and you'll see how incredible it is. (I do like dart too though)

As for the language it's full of clever features and advanced ideas that don't suck to use and consider the developer real world use of the language.

Two things really suck in swift though; compiler error messages are straight out of the university of assholery and documentation was crafted in Mordor probably.

Of course most libraries probably won't work well on Linux yet but there is a future with the right balance between safety and speed and joy of developing.

neillyons
I recently started learning Swift and Swift UI and was surprised at how complicated the language is. Especially regarding reactive instance variables. eg. @observableObject. Didn't understand it. There are like five different ways to do it. Ended up playing whack a mole until it worked.
bli940505
Swift needs to figure out what it wants to do and stick to it. Too many syntactic sugar and too many half baked concepts pushed through the door.
w10-1
It's super nice that they support moving up incrementally.

Moving to Swift-6 mode with full data-race safety checks can be daunting. They wrote a separate post on that, and Holly telegraphed that they're still actively reducing noise, i.e., warnings where the compiler could use a bit more analysis to prove there's no race.

The really nice thing is you can use the new tooling, but stay with the 5.10 version of the language that works for your code, and feature-by-feature add Swift 6 checking. You can build the same package under both language modes, so libraries can move ahead in their versioning while still supporting clients who are not ready.

bogidan
The download sizes are quite large. 775 MB for swift-6.0-RELEASE-ubuntu22.04.tar.gz ~500MB for windows.

Is this shipping an entire copy of LLVM? What could possibly make this so large?

skrrtww
I wish they would stop introducing more magic syntaxes.
6gvONxR4sf7o
Every time I read about swift it seems like a nice language, but it's a shame its ecosystem is so limited. It's great to see it supporting more platforms now. Is the ecosystem in the package manager/index also heading the same direction?
Kelteseth
I recently tried SwiftGodot, because I found Swift for game Dev very interesting in comparison to csharps GC stalls. Sadly it does not yet support sharing pre build Windows development libraries[1]. Compilation does take quite some time, even on my beefy 16 core Ryzen. The changelog did mention multi threaded Swift package manager improvements on Windows though.

[1] https://github.com/migueldeicaza/SwiftGodot/issues/521

meindnoch
I'm gonna to say it: the Swift language had become a monstrosity.
sirwhinesalot
CTRL-F "no longer takes 37000 years to typecheck a simple expression".

"0 matches".

Maybe on the next one.

belfalas
I really love the Swift language. I think it is really nice to program in. When it is really good, it just is so satisfying. I can get that "ahh" feeling. I feel like it's this weird blend of Ruby, Haskell, Javascript, and some C# influence. And of course there is always Objective-C baggage lurking in the background.

I agree with most of the comments on this thread. The governance of the language really is a problem. You really can't run two models on the same project at once. The incentives just always get screwed up. Better to just be honest about what's going on, and then everybody can work together. But sometimes that means that people need to start getting paid, and companies love to not pay money if they can avoid it.

Also, Apple's tooling is just truly horrendous. It is just awful. I don't understand why they won't do anything about it. Xcode, there are some things that are nice about it, but compare it to really using a tool like IntelliJ IDEA well and Xcode just fails so hard.

And certain UX problems have literally persisted for a decade, and Apple has not done anything about it. It really is kind of unconscionable that Apple does this to their developers. I know on some level I am being ungrateful, because there are mountains being moved behind the scenes by Xcode, and I really do appreciate that. And from watching WWDC talks, I know that there are some really good engineers at Apple that are trying to do the right thing. And some of it is just corporate BS that is unavoidable. But they really do need to get better.

In any case, I hope that this update makes everybody's life better. When it is really nice, I think that Swift has some of the best developer ergonomics out there. That's just one person's opinion, of course.

alas44
Explained to a layman, how nice is this release? Is more platforms support gonna make Swift a first class langage?
dtech
I'm not familiar with Swift, anyone already know how typed throws hold up? Checked exceptions are pretty universally seen as a mistake in Java [1] while ADT à la Result are generally perceived better.

[1] See e.g. https://literatejava.com/exceptions/checked-exceptions-javas..., but also Java 8+ API's moving away from them.

jonathanyc
I only want one feature from Swift: faster type-checking. If you write a few lines of math, or a moderately complex SwiftUI expression, suddenly the typechecker starts timing out. Swift is the only language I've ever used with this problem.

https://hachyderm.io/@evanw/109859384302551859

https://www.cocoawithlove.com/blog/2016/07/12/type-checker-i...

https://danielchasehooper.com/posts/why-swift-is-slow/

This isn't mentioned at all in the announcement so I'm kind of disappointed.

moomin
I’m honestly not usually that interested in feature lists for languages I don’t use, but this really does look quite compelling. Ownership semantics and C++ integration? Sign me up.

I’d be interested to know how good this integration is in practice e.g. could it be used to integrate with Godot directly?

damnever
Swift still lacks some concurrency features, even with Swift 6, but it's nice to see that atomic operations have finally been added. Besides that, I often encounter an error without knowing why: 'Failed to produce diagnostic for expression; please submit a bug report.'
ChrisMarshallNY
I'm interested in seeing where Swift Testing goes.
seanw444
What platform has 128-bit integer support to where that was an important thing to add to the primitive types?
qaq
Swift is really cool but has really sharp edges for a primary lang for such a huge ecosystem
cutler
I find this bid for cross-platform recognition somewhat schizoid given that Swift isn't even backwards compatible on Mac OS. I has to upgrade to Ventura a while back just to get Swift regexen working.
RivieraKid
Swift is great but I wish it had namespaces / packages...
akoncius
did not find anything metioned about namespaces/packages support? quite disappointing :( this is the main disadvantage for my tastes
dur-randir
I've tried using it once and got compiler crash from the get go. Still no response on the bugtracker. Next try in 5 years.