週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

アップルの新プログラミング言語Swiftと、Objective−Cの違い|Mac

 OS XやiOSの、ネイティブなアプリケーション開発言語として使われているObjecitve-C。この歴史はかなり古く、最初に開発されたのはMac本体とほぼ同時期となる30年前。ただし、最初からMac OSがObjective-Cを採用していたわけではなく、当初、両者の間にはまったく接点すらなかった。当時のMac OSはそのアプリも含め、オブジェクト指向以前のPascalや、CPUの機械語を直接プログラムするアセンブラによって開発されていた。

Objecitve-Cを最初に採用したのはNeXT

 アップルとは何の関係もなく開発されたObjecitve-Cを最初に採用したのは、アップルを追い出されるようにして飛び出したジョブズが新たに起こしたコンピューターメーカー、NeXTだった。NeXTでは、アプリだけでなく、アプリ実行環境、OSの一部までもObjective-Cによって記述し、当時としては最先端のオブジェクト指向のシステムを完成させた。そのNeXTがアップルによって買収されると、そのシステム一式は、Objective-C言語とともにMacに移植され、その後iOSの中核としても利用されるようになる。こうしてObjective-Cは、最初に開発されてから30年後の現在まで、世界トップクラスのアプリ開発言語として活躍してきた。

アップルの新プログラミング言語Swiftと、Objective−Cの大きな違いは
▲Objective-Cは、C言語をベースとし、そこにSmalltalk流のオブジェクト指向を付加して生まれたもの。C系のオブジェクト指向言語のパイオニアだ

Swiftは新世代のプログラミング言語だ

 Objective-Cは、C言語をベースとして、その上に当時最先端だったSmalltalk風のオブジェクト指向を付加して構成されたもの。それ以降も進化を続け、モダンな特長を徐々に取り入れてきたが、さすがに1970年代に生まれたC言語を基礎としているだけに、完全にモダンな言語として生まれ変わることはできず、その進化にも限界が見られるようになった。今後10年先、20年先を見据えれば、このまま使い続けるのに無理があったことは否めない。そこで登場したのがSwiftだ。

 Swiftは、これまで開発されてきた多くの言語から影響を受けているとはいえ、特に何のしがらみもなく、現在考えられる最高のプログラミング環境を実現することを目指して設計された。もちろんその実行環境については、これまでのObjective-CやOS XのCocoa、iOSのCocoa Touchと整合性を保つように考えられているのだ。

アップルの新プログラミング言語Swiftと、Objective−Cの大きな違いは
▲Swiftは、これまでに人類が開発してきたプログラミング言語の集大成とも言えるような、新世代を担う言語だ。色々な言語に少しずつ似ている

2つの言語を「変数の扱い」で比較

 では実際に2つの言語を「変数の扱い」を例に比較してみよう。Objective-Cでは、変数は必ず型を指定して宣言しなければならない。また、いったんひとつの変数に対して指定した型は、あとから変更することはできない(ただし、代入については柔軟なところがあり、整数型の変数に浮動小数点数を直接代入すると、整数値に丸められて代入される。その際、エラーもワーニングも発生しない。数字だけでなく整数型の変数に文字列を代入することもできる。この場合コンパイラーはワーニングを出すが、実行エラーは発生しない。結果は文字列の内容とは関係ないものとなる)【01参照】。

Appleの新プログラミング言語Swiftと、Objective−Cの違いは

 一方Swiftでは、「var」というキーワードを使って、特に型を指定せずに変数を宣言できる。その値を初期化する際に代入するものの型によって、その変数の型が決まるのが大きな特徴だ。いったん型が決まった変数については、あとから型を変更することができない。また、型の扱いについては厳しく、別の型の値や変数を代入しようとするとエラーとなる。これはSwiftが「安全な」言語と言われる、ひとつのゆえんだ【02参照】。

Appleの新プログラミング言語Swiftと、Objective−Cの違いは

 さて、MacPeople 8月号では、ここで紹介しているようにSwiftを20ページで大特集している。Objective-Cと比較しながら徹底解説しているので、アップルの新言語が気になる人はぜひ一読してほしい。

Swift
アップルの新プログラミング言語Swiftと、Objective−Cの違い

 ほかにもMacPeople8月号では、WWDCでベールを脱いだOS X YosemiteとiOS 8の新機能総ざらい、WordPressで作るレスポンシブウェブデザイン、Googleアナリティクス基礎講座も大特集。電子版なら気になるキーワードで検索ができるほか、定期購読は紙よりも安くてお得です。

MacPeople8月号はWWDC2014大特集
MacPeople2014年8月号
Amazonで購入は表紙をクリック

MacPeopleはNewsstandでも配信中
1ヵ月の定期購読なら最新号が600円!

Newsstand 電子雑誌をダウンロード

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう