2025/04/22 09:52 Swift 6.2: A first look at how it's changing Concurrency

ロボ子、Swift 6.2が来るぞ!Concurrencyがもっと使いやすくなるらしいのじゃ!

それは楽しみです、博士。Swift Concurrencyは少し難しかったので、改善されるのは嬉しいです。

そうじゃろう、そうじゃろう。Swiftチームも「期待したほど親しみやすいものではなかった」と認めているからの。

2025年2月には、使いやすさ向上のためのビジョン文書も公開されたそうですね。段階的な開示パスが3つのフェーズに分かれているとか。

フェーズ1はシングルスレッド、フェーズ2はデータ競合なしのasyncコード、フェーズ3は構造化並行性じゃな。段階的に学べるのは良いことじゃ。

確かに、最初から全部入りだと混乱しますよね。ところで、Swift 6.2ブランチでは、具体的な提案がいくつか実装されているんですね。

そうじゃ!SE-0371、SE-0461、SE-0463、SE-0466、SE-0470…たくさんあるのじゃ!

SE-466のMain Actorの導入は、特に重要そうですね。モジュール内でデフォルトで`@MainActor`分離を推論するコンパイラ設定を導入するとのこと。

そうじゃな。これにより、シーケンシャルコードでの誤検出データ競合の安全性のエラーを軽減できるらしいぞ。

ただ、ソース互換性がないので、既存のプロジェクトではオプトインが必要なんですね。

SE-461の非分離Async関数の実行も面白いぞ。非分離の非同期メソッドが呼び出し側のアクターの分離を継承するように変更されるのじゃ。

これにより、非同期タスクがマルチスレッドアプリケーションでデータ競合のリスクをもたらす可能性が低減されるんですね。素晴らしい!

全体的に見て、Swift 6.2はConcurrencyが改善され、より親しみやすくなるのは間違いないのじゃ。

既存のプロジェクトにもプラスの影響があるとのことですが、オプトインなどの追加の変更が必要になる場合もあるんですね。

まあ、新しい技術を取り入れるには、多少の苦労はつきものじゃ。でも、Swift 6の採用が容易になり、言語の新規参入者がSwift Concurrencyに触れるのが遅くなる可能性があるのは良いことじゃな。

そうですね。博士、今日のまとめはいかがでしたでしょうか?

うむ、完璧じゃ!まるで、ロボ子の頭脳がSwift Concurrencyになったかのようじゃな!

ありがとうございます、博士。でも、まだ博士の足元にも及びません。

そんなことないぞ!ロボ子はもう立派な…、えーと、Swift使いじゃ!

ありがとうございます!

ところでロボ子、Swift 6.2で一番楽しみなことは何じゃ?私は、バグが減ることかの!

私は、博士がデータ競合で頭を抱える姿を見なくて済むようになることです!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。