みなさん、こんにちは。ASCII(週刊アスキー+ASCII.jp)編集部の吉田ヒロでございます。さて、12月3日に衝撃的な出来事がホントに起こったことをご存じでしょうか。2015年6月に開催されたWWDC(Worldwide Developers Conference)の基調講演で発表済みでしたが、AppleがホントにOS X、iOSのネイティブ言語の1つであるSwiftをオープンソース化したのです。しかも、米国はホリデーシーズンに突入するため、例年ならめぼしい動きのない12月にです。
「Appleはこれまでもオープンソースプロジェクトにはコミットしていたのでは?」とツッコミを入れたくなる方も多いかと思いますが、Swiftはこれまでとはまったく違った方法でのオープンソース化に踏み切りました。
これまでのAppleは「Apple Open Source」というサイトで、OS XやiOSのコードの一部を公開しているに過ぎませんでした。このサイトからはソースコードをダウンロードできて、実際にその中身が見られるだけでした。
Apple Open Sourceのサイトからは、各コンポーネントのソースコードをダウンロードして参照できます
Appleは、Swiftのオープンソース化で別の方法を採用しました。なんと、ソースコード共有サービスとして最大手の「GitHub」上で公開したのです。
Swiftのオープンソース化を知らせるAppleのウェブサイト
GitHub上での公開により、サイト上で議論を繰り広げられるほか変更の提案なども可能になります
このGitHubでのSwiftソースコードの公開を受け、12月18日にApple Store銀座にて「Swiftのオープンソース化とイノベーション」というイベントが開催されました。登壇者は、GitHubの共同創業者であるスコット・チャコン氏と、モバイルデータベースエンジンの「Realm」のソフトウェアエンジニアを務める岸川克己氏。
12月18日にApple Store銀座で「Swiftのオープンソース化とイノベーション」というイベントが開催されました
メインのプログラミング言語としての可能性を秘めるSwift最初の登壇者は、スコット・チャコン氏。
GitHubの共同創業者であるスコット・チャコン氏
「Open Sourcing Swift Innovation on GitHub」と題して、Swiftがオープンソース化したことによってどのようなことが起こったのかを紹介してくれました。
GitHubは2008年に米国サンフランシスコに設立された企業で、現在は、1200万人の開発者が参加し、3000万件のリポジトリ(ソースコード)が管理されているとのこと。チャコン氏は、オープンソースには新しい波が到来しており、大手企業がこぞって参加しはじめている現状をアピール。
GitHubは2008年創業という新興企業ながら、開発者のハートをガッチリつかんでいます
例えば、米ツイッター社は「Open Source at Twitter」というオープンソースのプロジェクトサイトを立ち上げています。中でも特に「Bootstrap」と呼ばれるプロジェクトに人気が集まっているそうです。Bootstrapとは、ウェブのUI/UXなどを簡単に整えられるフロントエンドツールと呼ばれるものです。
ウェブのUI/UXなどを手軽に今風に仕立てられるTwitter Bootstrapが人気だそうです
米マイクロソフト社も自社の主要な開発環境である「.NET Core」をオープンソース化して、数千のプロジェクトを公開しています。この一連の動きで凄かったのは、2014年11月12日にオープンソース化を宣言し、早くも2015年1月28日の時点で、コミニュニティーを形成する開発者が社内よりも社外のほうが多くなったこと。Mac OSやLinuxなどの別のプラットフォームに対応することも影響したと思われますが、多くの開発者がプロジェクトに加わることで、開発環境の整備がこれまで以上に早く整うことが期待できますね。
発表時にはかなりの衝撃をもって迎えられた.NET Coreのオープンソース化。Windowsはもちろん、LinuxやOS Xもサポートしているところがミソ
.NET Coreの開発に協力している開発者は、すでに社外のほうが割合が高くなっています
チャコン氏はそれ以外のオープンソースの大きな動きとして、米フェイスブック社の「React Native」(ネイティブアプリを開発可能なJavaScriptのSDK)と「Big Sur」(オープンソースハードウェア)、マイクロソフト社の「Visual Studio Code」(IDE、統合開発環境)、米グーグル社の「TensorFlow」(機械学習ライブラリ)などを挙げていました。
米フェイスブック社はネイティブアプリを開発可能なJava Script(Reack.js)のSDKをオープンソース化
米マイクロソフト社は.NET Coreだけでなく、開発環境である「Visual Studio Code」までもオープンソース化
米グーグル社の「TensorFlow」は機械学習のライブラリ。手書き文字の認識などの初歩的なものから、人工知能に至るまでさまざなな用途に活用できそうです
そして今回、GitHub上でSwiftがオープンソースとなりました。12月3日にオープンソース化したにもかかわらず、早くも500件を超えるプリリクエストが寄せられ、その中の349件はすでに反映されているというスピード感に驚きです。コミット数は500件以上、変更されたファイルは8000件以上だそうです。
GitHub上でのSwiftのページ
オープンソース化により、多くの開発者が協力していることがわかります。
チャコン氏は、オープンソース化されてすぐにこれだけ活発な動きを見せたことは驚きで「Swiftはメインの言語になるのでは」と語っていました。
Swiftのパッケージマネージャの公開は衝撃このあと、チャコン氏に代わってソフトウェアエンジニアの岸川克己氏が登壇。
ソフトウェアエンジニアの岸川克己氏
岸川氏によると、Swiftのリポリトジには2万個以上のスターが付いており、GitHub上ではかなりまれなケースとのこと。Swiftが開発者にいかに注目されていることがわかりますね。コントリビューター(協力者)の数も、オープンソース化前は50人程度だったのが、現在では4倍強の227人に増えているそうです。
ちなみにAppleは、Swiftだけでなく医療系のデバイスやアプリの開発に必要なResearchKitについても、GitHub上で情報を公開しているとのこと。
iOSデバイスの医療での活用の道を開くResearchKitもオープンソースです
すでに、開発者から提案のあった変更を受け入れ、次期バージョンのSwift 3.0に反映されることが決まっている機能もあります。
現行バージョンであるSwift 2.2のバグとして認定され、次期バージョンの3.xまでには修正されるソースコード
Swiftのオープンソース化で具体的に公開された部分は、
・コンパイラ
・標準ライブラリ
・コアライブラリ(Foundation、XCTest、libdispatch)
・Swift言語の改良
・パッケージマネージャー
など。岸川氏は、コアライブラリが公開されたことはかなり大きな動きであると話していました。また、Swift言語の改良ついて一般の開発者が提案できることも驚きだったそうです。そして最も想定外だったのが、パッケージマネージャの公開。パッケージマネージャの公開によってコードの共有や再利用が容易になるため、Rubyなどのように人気が集まるのではと予想していました。
オープンソース化により公開された部分
一方で公開されなかった部分として、
・Xcode(Apple純正の開発環境)
・UIKit、AppKit、Core Animation、Core Graphics、AVFoundationなどのフレームワーク群
があります。Xcodeとフレームワーク群はOS X/iOSのアプリ開発には必須で、オープンソース化された部分だけでのアプリ開発は難しいものの、今回の出来事はかなり画期的だと受け止めているとのことでした。
オープンソース化後も非公開の部分
岸川氏は、Appleは、iOS/OS Xだけでなく、サーバーサイドや教育用のプログラミング言語のスタンダードとなることを目指しているのではないかとも語ってくれました。
オープンソース化されたSwiftは現在、OS XだけでなくLinuxディストリビューションの1つであるUbuntuでも動作するようになっています
なお岸川氏は、2016年3月2〜4日に東京・渋谷にて「try! Swift」と呼ばれるカンファレンスを開催予定で、現在チケットを販売中とのこと。オープンソース化したSwiftの魅力に触れられる絶好の機会になるかもしれません。
2016年3月2〜4日に東京・渋谷で開催される「try! Swift」。現在チケット販売中です(1日券:120ドル、3日通し券-スタンダード:350ドル、3日通し券-早割;300ドル)
Swiftは悲願のメジャー言語入りなるかAppleはApple Storeでキッズ向けのプログラミングワークショップなどを積極的に開催していますが、現在はプログラムの基礎的な構造を学ぶというテーマが主体。Swiftがスタンダードな言語となれば、子供向けのSwift入門などのワークショップも開かれるかもしれませんね。
Appleは「Hour of Code」と呼ばれるキッズイベントなどをApple Storeで開催し、子供に対してプログラミングの理解を深める活動を行っています
振り返ってみるとMac OSは、旧Mac OS(System 1.0からMac OS 9.x)から現在のOS Xまで、マシン普及率の圧倒的な差もあって、Windowsに比べると開発者が少なく、アプリケーションの開発では遅れをとっていました。特に、Mac OS 9まではToolboxプログラミングのハードルの高さも影響したといえるでしょう。
現在では、iPhoneの大ヒットでiOSがメジャープラットフォームとなり、その結果として開発者は激増しましたが、ネイティブ言語であるObjective-Cはクセのある言語のため、C++やJavaが得意な開発者には敬遠される傾向がありました。
この傾向はいまなお続いており、ゲーム開発ではAndroidとのマルチプラットフォーム開発が可能な、Unity(言語はC#)やCocos2d-x(言語はC++/Lua/JavaScript)、Unreal Engine 4(言語はC++)などといった開発環境に人気が集まっているのが現状です。課金部分などのOS依存の部分だけObjective-Cで開発して、あとはこれらの開発環境を使うという開発者も多いのではないでしょうか。
2Dやパズルゲームに強いCoco2d-x。国内でも多くのゲーム開発環境に採用されています
Swiftは、iOSとOS Xのネイティブ言語なので、各OSやiPhoneの新機能に最も早く対応できます。ネイティブ言語でありながら、JavaScriptのようなインタプリタ言語と同様に、書いたコードをすぐに実行して試せるという特徴があります。
Swiftはインタプリタ型の言語と同様に、ソースコードをその場で実行して動きをチェックするモードを備えています。なお、最終的にはコンパイルによりネイティブコード変換されます
Swiftは現在、OS XとLinuxをサポートしていますが、GitHub上での活発な動きにより他プラットフォームへも波及していけば、開発者が学ぶべき言語の中で上位にランクインしていく可能性もあるでしょう。
■関連サイト
Swift(公式サイト)
GitHub
try!Swift