Appleは米国時間3月25日、「It's show time.」イベントで「Apple TV」チャンネルと「Apple TV+」「Apple Arcade」「Apple Card」「Apple News+」といったサービスを発表して注目を集めたが、実は同日、同社の主力言語である「Swift」の最新バージョン「Swift 5」のリリースも発表している。
SwiftはAppleが開発し、オープンソース化している汎用プログラミング言語だ。この言語はCベースの言語(CやC++、Objective-C)を置き換えるものとなっている。Swiftを用いることで「iOS」や「macOS」「watchOS」「tvOS」「Linux」「z/OS」プラットフォーム向けのプログラムを開発できる。またAppleの「Cocoa」フレームワークや「Cocoa Touch」フレームワークのほか、既存のObjective-Cコードの多くとも連携する。
最新バージョンであるSwift 5は、旧バージョンの「Swift 4.x」系列とソースレベルでの互換性を有している。macOS向けの統合開発環境(IDE)「Xcode 10.2」には、ソースコードの移行を支援するツールが含まれている。macOSにおけるツール環境はさておき、「Ubuntu Linux」上でもSwiftを用いた開発が可能になっている。
Swift 5における最も重要なアップデートは、そのアプリケーションバイナリインターフェース(ABI)が標準化され、macOSやiOS、watchOS、tvOSをまたがる確固とした基盤になった点だ。あるバージョンのSwiftコンパイラでビルドされたアプリは、それ以降のバージョンでビルドされたライブラリとも連携できるということだ。従ってアプリケーションは、Swiftの標準ライブラリとともに、その差を吸収するための「オーバーレイライブラリ」を埋め込まなくても済むようになる。つまりアプリケーションは、OSの提供するSwiftランタイムと標準ライブラリを使用するようになるわけだ。このことは、ダウンロードファイルが小さくなるということも意味している。
Swift 5の標準ライブラリでは、以下のような機能向上も図られている。
- UTF-8エンコーディングによるString(文字列)の再実装により、実行速度の向上が期待できる。
- 文字列リテラル内におけるraw(そのままの)テキストのサポートが強化された。
- Result型と、SIMD(Single Instruction, Multiple Data)ベクタ型が追加された。
- 文字列補間機能の拡張により、データからテキストを生成する際の柔軟性が向上した。
- DictionaryとSetの性能が強化された。
この最新バージョンでは、Swiftをよりセキュアにするために、「Exclusive Access to Memory」(メモリに対する排他的アクセス)に対する実行時のチェックがデフォルトで有効化されている。その結果、「変更可能な状態と、距離の離れた操作が関連する、プログラム上の危険なやり取りを除去」できるようになる。
詳細については、Swift.orgの「Migrating to Swift 5」(Swift 5への移行マニュアル)と、「About Swift」(Swiftについて)からアクセスできるアップデートされた言語マニュアルを参照してほしい。なお、ライターでありプログラマーである、そしてHacking with Swiftというサイトの責任者であるPaul Hudson氏は、Swift 5で追加された新機能を試してみるための「Xcode Playground」をGitHub上で公開している。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。