Log in

「WWDC15」で1番盛り上がった「Swift 2」のオープンソース化とは? - ユーザーへのメリットを探る【apps】

米Appleが開催したWWDC15の基調講演で、もっとも会場を沸かせたのは開発言語「Swift 2」がオープンソース化されるという発表があった瞬間だった。開発者向けのイベントとはいえ、一体なぜそこまで開発者隊はSwiftがオープンソース化されることを喜んだのだろうか。また、一般ユーザーへの恩恵はあるのだろうか?

Swiftのオープンソース化ってどういうこと?

昨今よく耳にする「オープンソース化」だが、早い話が「ソースコードを公開し、みんなでバグを取ったり、改良できるようにしましょう」という動きだ。オープンソースになっても、ソースコードの著作権は元の開発者が保持するものから、完全に自由に開発できるようにしようというフリーソフトウェア運動までさまざまな段階があるが、いずれにしてもソースコードがオープンになることで「脆弱性の確認がしやすい」「改善が早くなる」といった利点がある(必ず受けられるわけではないが)。

例えば有名なWebサーバー「Apache」はオープンソースで開発されているし、OSのLinuxもそうだ。OS Xだって、ベースとなるDarwinはオープンソースだ。これに対して企業(開発者)がソースコードを保持し、開示せずに開発されるものを「プロプライエタリ」(所有、独占)と呼ぶ。商用ソフトのAdobe Photoshopなどは、わかりやすいプロプライエタリソフトの代表格と言えるだろう。

Swift 2のオープンソース化については「今年後半」となっているだけで、まだ正確な時期やオープンソース化される範囲までははっきりしていない。

Swiftオープンソース化で目指す方向性

とはいえ、Swift開発者のblogを見る限り、以下のような方針となっているようだ。

  • Swift 2のソースコードは「OSI-approved permissive license」で公開される

「OSI-approved」とは、OSI(Opensource Software Initiative)によりオープンソースの条件を満たしているという承認を得ているということ、「permissive」は「コピーレフトではない」(著作権を放棄していない)ことを表す。つまり、ソースコードは公開されるし、改変や再配布も可能だが、その成果物からプロプライエタリな商用製品を開発することも許可するものだ。

おそらくライセンス自体は、すでにDarwinなどで使われてきた「Apple Public Source License 2.0」(APSL-2.0)か、APSLに批判が集まったあとのApple製オープンソースプロジェクトでよく使われてきた「Apache License 2.0」になるのではないだろうか。

  • コミュニティからの改良に関する貢献は許可(推奨)されている

Swiftコミュニティは積極的に開発やバグフィクスに関与できるということ。

  • 配信段階ではOS X、iOS、Linux用のポートが用意される

これは基調講演で発表された通り。

  • ソースコードにはSwiftコンパイラと標準ライブラリが含まれる

基本的な関数などは提供され、実行可能なアプリを組んでみることは可能だということ。

  • Swiftがさまざまなプラットフォームに移植されることが期待されている

WindowsやAndroidアプリを開発できるSwiftが登場する可能性もある。

開発者blogでもまだはっきりした情報は公開されておらず、公開に向けてまだ紆余曲折あることが想像される

気がかりなのは、Swiftで開発する上で必要なCocoa Touchフレームワークの公開がはっきりしていない点だ。Swiftは実行時にObjective-CのランタイムやCocoaフレームワークなどの実行環境が必要になる。Linuxにも移植されるということは最低限の実行環境もLinuxに提供されるということだろうが、Cocoaフレームワークを構成するFoundationフレームワークが公開されるのか、Dawrinの一部であるCore Foundationを移植するのか、GNUstepのような別のフレームワークを必要とするのか、どうも定かではない。アプリの移植性を左右する部分だけにはっきりしてほしいところだ。

オープンソースになると何がいい?

オープンソース化のメリットとしては、前述のように「開発速度が早くなる」、「大勢のテスターが参加することでバグが潰しやすくなる」、「ユーザーからの提案による改善が反映されやすくなる」、といったことがある。

Swiftは登場以来1年でかなり仕様がコロコロと変わっており、開発者にとってはその都度対応するのが大変だった。オープンソース化されても仕様変更はあるだろうが、少なくともいつ何がどうなる、といった議論などは外から確認できるようになるため、対処する準備がしやすくなるだろう。

ただし、Appleはオープンソース版のSwiftに、Apple自身が独自の改良を加えて公開する権利を持っている(そういうライセンスだ)。場合によってはApple製Swiftと、オープンソースSwiftで一部非互換性が出る、ということも起きうる。そのようなことは起きないと信じたいが……。

Appleはオープンソース化について、マイクロソフトよりは積極的だが、オープンソースを「踏み台にする」という批判もしばしば受けている

一般ユーザーへの影響は?

一般ユーザーにしてみれば、SwiftだろうがObjective-Cだろうが、完成したアプリしか見ることはないため、オープンソース化されることの是非などは気にする必要がない。とはいえ、Swiftの完成度が高まり、開発効率が高まれば結果として優秀なアプリが多数世の中に登場する、というのが理想的なシナリオだ。

Linuxへの移植も決まっており、今後はWindowsなどへの移植も行われるようになるかもしれない。対応プラットフォームが増えれば言語としての価値も高まり、開発者が増えれば優秀なアプリが登場する機会も増える。そういった積み重ねはiOSのプラットフォームとしての価値も高めるし、ひいてはユーザーにとって価値のあるプラットフォームへと育つ、というのが、Appleの狙うSwift公開のひとつの目的ではないだろうか。

 

記事提供:マイナビニュース