米Appleは6月2日(米国時間)、米カリフォルニア州サンフランシスコで開催されているWWDC 2014において新しいプログラム言語「Swift」を発表した。現行のObjective-Cをよりモダンな環境で置き換えて行くことを目標に、自動化されたメモリ管理やシンプルな文法、対話型のコード検証といったスクリプト言語の長所を取り入れた機構などが特徴となっている。同日発表されたiOS 8とOS X Yosemite以降を対象にしたSwiftアプリのApp Storeへの登録が可能になっており、秋以降同言語を利用したアプリが増加しそうだ。

Swiftを説明する米Appleソフトウェアエンジニアリング担当SVPのCraig Federighi氏

現在OS XやiOSで用いられているObjective-Cは、両OSの祖先となるNeXTでの採用がきっかけとなっており、NeXT時代も含めると実に30年選手となる。この間、多様化するプログラミング環境に対応するためにJavaやC#などの新しいアプローチが試みられたり、Webの世界ではスクリプト言語が全盛となるなど、トレンドも大きく変化している。

Objective-C自身もこうした環境の変化に対応するため、よりモダン化した仕様を取り入れたバージョン2.0が2006年のWWDCで発表されており、ガベージコレクタの導入やシンタックスの拡張、64ビット対応が図られた。さらに10年を経て、よりモダンな環境構築を目指して導入されたのがSwiftといえる。

Swiftの概要はAppleの開発者ページで紹介されているほか言語仕様がサンプルコードとともに文章で公開されているiBook Storeで言語仕様をまとめたリファレンスの電子書籍を参照することも可能。基本的にはObjective-Cの仕様を整理してシンプル化と高速化を目指したものとなっており、PythonやObjective-Cのネイティブコードと比較しても倍以上高速化が可能だとしている。

LLVMをベースとしており、Swiftのプログラムはネイティブの中間コードへと変換され、OS XからiOSまでプラットフォームをまたいだ高速実行を可能にする。CocoaとCocoa TouchのインターフェイスにSwiftを組み合わせることで、より高速なネイティブアプリを構築可能になる。

言語仕様的にはメモリ管理の自動化とポインタの使用禁止で、プログラミングの複雑化や脆弱性の抑制を目指しているほか、親の呼び出しに対して複数の引数を戻すことが可能など、使いやすさも考慮に入れた点も複数見られる。現在ベータ版が提供されているXcode 6と組み合わせることで、Read-Eval-Print-Loop (REPL)による実行コードの追跡が容易になっている。

また既存のObjective-Cベースのコードとの共存も可能で、コンパイラにSwiftとのリンクを明示させることで両言語のコードが混在したアプリを構築できる。既存資産を活かしつつ、少しずつSwiftへと開発者をシフトさせることが狙いの1つだと考えられる。前述のように、Swiftを用いてXcode 6で開発されたアプリは、iOS 8とOS X Yosemiteがリリースされた今秋時点でApp Storeへの登録が可能になっており、それまで用意されたドキュメントやツールを参照しつつ、新言語を研究する形になるだろう。