Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

@concurrent case in point...

Just read about the new @concurrent option coming to Swift 6.2 and lover it, but...

It just me, but I which these options would pick a case and stick with it...

@Sendable @unchecked @MainActor @concurrent @Observable @ObservationIgnored

Answered by DTS Engineer in 840518022
I [wish] these options would pick a case and stick with it

This isn’t random. Rather:

  • Compiler attributes start with a lower-case letter.

  • Things that start with an upper-case latter are actual types: protocols, property wrappers, global actors, macros, and probably more than I can think of right now.

I remember this convention being discussed on Swift Evolution at one point, but a quick search didn’t turn up the relevant link. Still, that’s an important point: If you want to get involved in how the Swift language develops, you can do that via the Swift Evolution process.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I [wish] these options would pick a case and stick with it

This isn’t random. Rather:

  • Compiler attributes start with a lower-case letter.

  • Things that start with an upper-case latter are actual types: protocols, property wrappers, global actors, macros, and probably more than I can think of right now.

I remember this convention being discussed on Swift Evolution at one point, but a quick search didn’t turn up the relevant link. Still, that’s an important point: If you want to get involved in how the Swift language develops, you can do that via the Swift Evolution process.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

One could argue about whether or not @Sendable or @ObservationIgnored act as compiler attributes (yes, I know ignored is a macro), but @Concurrent makes as much sense as @concurrent.

Actually, @Concurrent is more in line with @MainActor, and @GlobalExecutor would at least be congruent.

And what the hell is @globalActor ??? ;)

Like I said, they seem all over the place.

One could argue

One could, but such a discussion would be more productive over in Swift Evolution.

DevForums is focused on supported what is. If you what to have input on what should be, we generally recommend that you file an enhancement request. However, in this case there’s a public process for discussing the evolution of Swift, and I encourage you to get involved.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

@concurrent case in point...
 
 
Q