編集部からのお知らせ
Topic 本人認証の重要性
宇宙ビジネスの記事まとめダウンロード

アップルのプログラミング言語「Swift」、最新バージョンがリリース

Steven J. Vaughan-Nichols (Special to ZDNet.com) 翻訳校正: 編集部

2019-03-27 10:30

 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発の記事を朝日インタラクティブが日本向けに編集したものです。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]