米Appleが「Swift 4.0」を公開、以前のコードを修正無しに利用できる互換性モードを新たに導入

 米Appleは9月19日、プログラミング言語「Swift 4.0」を公開した。互換モードの導入など、多数の機能強化が加わっている。

 SwiftはAppleが開発するプログラミング言語。Objectibe-Cなどの言語に着想を受けており、コンパイル言語とスクリプト言語の長所を備えることを目指した。高速、クリーンでモダンな文法などを特徴とする。CやObjective-Cで実装されたコードやフレームワークをそのまま利用することもできる。2015年末にオープンソース化されており、Apache License 2.0の下で公開されている。

 Swift 4.0は2016年9月に公開されたSwift 3.0に続くアップデートとなる。言語では、文字列を扱うオブジェクトであるStringの実装を強化し、より高速かつ容易に文字列を扱えるようになった。複数行の文字列リテラルの導入や、キーバリューコードのKeyPathなども改善されている。

 また、カスタムデータ型のシリアライズ/デシリアライズができる「Cadable」プロトコルが加わった。シリアライズではプロパティリストやJSONを使用できる。

 新たな機能として、古いコードを修正無しにコンパイルできる「互換性モード」が導入された。「-swift-version」フラグで互換性に関する設定が行えるもので、Swift 4.0ではSwift 3.2およびSwift 4.0の2つのモードがサポートされる。3.2モードでは3系のコンパイラで構築したソースのほとんどをそのままコンパイルでき、以前から存在していたAPIをそのまま利用できるという。また、このモードでもSwift 4で導入された新しい言語機能のほとんどが使えるという。いっぽう4.0モードでは言語およびAPIに変更が加えられていることから、一部のソースは修正する必要がある可能性が多いとしている。

 パッケージマネージャ「Swift Package Manager」では、新しいワークフロー機能を導入し、APIも強化した。新しいPackage APIでは新しい設定機能を特定できるため、パッケージの作者はパッケージの構築やソースについてより細かな制御が可能という。macOSではパッケージのビルドはサンドボックスで行われるため、ファイルシステムの修正やネットワークアクセスなどを防ぐことができるとしている。

Swift
https://swift.org/