- このリリースでは、Swift をより多くのプラットフォームとドメインへ拡張
- Swift はアプリ開発言語としてよく知られているが、ライブラリ、インターネット規模のサービス、性能が重要なコードなど、さまざまな用途にも優れている
- Swift 6 は、新しい低レベルプログラミング機能、Embedded Swift 言語サブセット、拡張された Linux および Windows サポート、新しいクロスプラットフォーム API などによってさらに拡張された
言語と標準ライブラリ
並行性
- Swift 6 は、新しい言語モードを通じて、並行コードにおけるデータ競合を防止する安全性を提供
-strict-concurrency=complete コンパイラフラグにより、データ競合安全性の警告を提供
- 新しい同期ライブラリに低レベル並行 API を含む
Typed throws
- 関数が投げるエラー型をシグネチャに明示できるようになった
- ジェネリックコードでエラー型を伝播したり、メモリ割り当てが制限された環境で有用
所有権
- Swift 5.9 で導入された非コピー型をジェネリックシステムと統合し、性能を向上
~Copyable 構文を使ってリソースをモデル化し、性能を最適化
C++ 相互運用性
- Swift 6 は C++ の move-only 型、仮想メソッド、デフォルト引数などをサポート
SWIFT_NONCOPYABLE アノテーションにより、C++ 型を非コピー型として公開可能
Embedded Swift
- 組み込みソフトウェア開発向けの言語サブセットとコンパイルモードを含む
- ARM および RISC-V のベアメタルターゲットをサポート
128ビット整数
- 符号付きおよび符号なし 128 ビット整数型を追加
生産性向上
count(where:) など、生産性向上のための複数の機能を導入
デバッグ
@DebugDescription によるカスタム LLDB サマリー
@DebugDescription マクロを使用して、LLDB でオブジェクトを表示する方法をカスタマイズ可能
明示的モジュールによる起動性能向上
- 明示的モジュールビルドを使用して、デバッガの起動性能を大幅に向上
ライブラリ
Foundation
- すべてのプラットフォームで Foundation の実装を統合
- macOS と iOS で使われていた Swift 実装を Linux と Windows に拡張
Swift Testing
- Swift Testing という新しいテストライブラリを導入
- マクロを使ってテストの記述と整理を支援
プラットフォームサポート
Linux 向け完全静的 SDK
- Linux 向けに完全静的リンク実行ファイルをビルド可能
新しい Linux ディストリビューション
- Debian、Fedora、Ubuntu 24.04 の公式サポートを追加
Windows ビルド性能
- arm64 アーキテクチャ向けの事前ビルド済みツールチェーンを提供
- Swift パッケージマネージャは Windows でデフォルトでビルドを並列化
次のステップ
Swift 6 をダウンロード
- Swift.org/install で公式 Swift 6 ツールチェーンをインストール可能
Swift を始める
- Swift プログラミング言語の書籍が、最新の Swift 6 構文と機能を反映するよう更新された
パッケージエコシステムを探る
- Swift.org/packages でさまざまなパッケージを探索できる
参加する
- Swift 6 に関するフィードバックと経験を共有することで、言語、ツール、パッケージエコシステム、コミュニティの今後の発展に貢献できる
GN⁺ のまとめ
- Swift 6 は、さまざまなプラットフォームとドメインへ拡張された主要リリース
- 並行性、C++ 相互運用性、Embedded Swift など、多くの新機能を含む
- Swift Testing のような新しいライブラリと生産性向上機能を導入
- Linux と Windows のサポートを拡張し、性能を向上
- Swift 6 は開発者により多くの可能性と効率性を提供する
2件のコメント
Hacker Newsの意見
Swiftはガバナンスに内在する対立のせいで、ゆっくりと死に向かっている
Swiftを新しく学んでいて、今のところは悪くないと思っている
安全な並行性と型付きthrowsのおかげで、Swiftはより親しみやすいRustのように見え始めている
Swift 6は、バッテリー同梱型のクロスプラットフォーム開発における大きな飛躍だ
最近SwiftとSwiftUIを学び始めたが、この言語が複雑なことに驚いている
SwiftはmacOS専用にとどまると思っていたが、とても興味深い
Swiftは何をしたいのかを決めて、それを貫くべきだ
SwiftGodotを試したが、ゲーム開発にSwiftを使うのはC#のGC遅延より興味深い
段階的に移行できるのはとても良い
Swift言語は怪物になってしまった
Swift という素晴らしい言語を始めるには、やや高価な Apple のエコシステムを導入せざるを得ないことが、開発者にとって決して小さくない壁になっているように思います。