Naming things is one of the two hard problems in computer science, and Swift 6 has a “naming things” problem at the moment.

We’ve been repeatedly told that Swift 6 will include some changes that break source compatibility with Swift 5.x. That makes perfect sense, of course. That’s what a major semantic version should be used for. So far so good. 👍

But what I said there doesn’t give the whole picture, and that’s where the naming problem comes in. There’s the Swift 6 compiler, and then there’s “Swift 6 language mode”, and you can adopt the Swift 6 compiler without adopting the language mode. All the strict concurrency checks and data race safety features are in the language mode, and that brings the breaking changes.

You can start using the Swift 6 compiler now (or more likely when it makes it to a beta/release version of Xcode) and then opt-in to the language mode when you feel like tackling the breaking changes. There’s no imminent deadline breathing down your neck.

None of this is new news. The language mode has been talked about for a long time, but the distinction is subtle and it passed me by until recently, and you may be in the same situation.

A much better person to talk about this would be Holly Borla, manager of the Swift Compiler Team, and it just so happens we recently had her as a guest on the Swift Package Indexing podcast. It was a pleasure to talk to Holly, and we covered this issue in depth as one of several Swift 6 topics.

If you don’t already subscribe to the podcast give this episode a listen and consider hitting that subscribe or follow button in your podcast player. We talk about Swift (including server-side), the development of the Swift Package Index project, and package ecosystem topics. We also highlight a selection of community-written packages in every episode. Give it a try!

Dave Verwer  






Framework Developer @ PSPDFKit – Design API that will affect hundreds of apps, and create UI used by millions of users. Collaborate globally in a small team working on the leading document SDK for iOS, macOS and visionOS. Make the most of a flexible schedule, and attend annual retreats at exciting places around the world. – Remote (Anywhere)


Don't forget to post any open positions you have available on iOS Dev Jobs!


And finally...

Is your desktop this shiny? ❤️