アップルがSwiftのOSS化で狙うもの--GitHubで企業とコミュニティーの連携が進む

  • このエントリーをはてなブックマークに追加

 12月18日、アップルストア銀座で「Swiftのオープンソース化とイノベーション」と題するセミナーが開催された。多くのオープンソースソフトウェアプロジェクトや開発者に利用されている、ソフトウェア開発支援サービス「GitHub」の共同創業者Scott Chacon氏と、モバイル向けデータベースである「Realm」のテクニカルアドバイザーである岸川克己氏が登壇し、企業でのオープンソース化の潮流と、Appleがオープンソース化したプログラミング言語「Swift」の影響について語った。

セミナー風景
セミナー風景

企業によるオープンソース化でも存在感を増すGitHub

 GitHubは、Linuxカーネルの開発者であるLinus Torvalds氏が開発したバージョン管理システム「Git」を中核に据えたソフトウェア開発支援サービスである。開発プロジェクトとして、ソースコードと開発履歴情報、ドキュメントなどを共有でき、すでにグローバルで1200万人もの開発者により、3000万件のリポジトリ(貯蔵庫)が作成されている。

 GitHubの特徴は、「プルリクエスト」と呼ばれる機能にある。外部からソースコードの修正案を容易に投稿、統合でき、そのおかげで、あたかもSNSのような感覚でオープンソース開発プロジェクトに参加できるのだ。

 GitHubの共同創業者であるChacon氏は、「GitHubは、すでに多くのオープンソースプロジェクトで利用されており、新興企業や大手企業も、自社のソフトウェア開発のためにプライベートでGitHubを利用しています。そして、オープンソースの新たな潮流として、企業が自社のソフトウェアをOSS化する場合にもGitHubを利用し始めています」と語った。

 その例としてChacon氏が紹介したのが、Twitterによるウェブデザインフレームワーク「Bootstrap」、数千ものプロジェクトを公開しているMicrosoftである。特に、Microsoftの場合は、自社の技術であるアプリケーション開発実行環境「.NET」もGitHubでオープンソース化している。このほかに、FacebookやGoogle、IBMといった企業が自社のOSSをGitHub上で公開しているという。

SwiftもGitHubで公開

 Appleは、iOSやOS Xの開発言語として提供してきたプログラミング言語のSwiftをオープンソースとして公開した。今回オープンソース化されたのは、ソースコードを実行形式に変換するコンパイラと、プログラムの基本機能をまとめた標準ライブラリなどである。従来は、iOS/OS X向けのソフトウェアしか開発できなかったが、Linuxへの移植版も公開している。

 そして、AppleがSwiftを公開した場所もGitHubであった。

 Chacon氏は、今回のSwiftのオープンソース化の特徴として、コミュニティーとの連携を強調した。Swiftに対するプルリクエストがすでに社外から500件以上も寄せられており、そのうち349件が統合済みだという。中には、誤字の指摘なども含まれるが、Appleの開発ツール部門のシニアディレクターで、Swiftの主要な開発者であるChris Lattner氏が「小さな改善でも、多くの人が参加するきっかけになる」とツイートしていると紹介した。

GitHub 共同創業者 Scott Chacon氏
GitHub 共同創業者 Scott Chacon氏

GitHubはオープンソースコミュニティーへの参加を促進する

 数年前まで、企業がOSSを提供する場合、そのソースコードを圧縮ファイルにまとめてウェブサイトで公開するだけで、外部から修正案を受け付けたり、開発プロジェクトをコミュニティー化したりしていくことは決して多くなかった。

 「しかし、Appleでプロジェクトの中心にいる人物が、オープンで親密にプラス志向に考えて、こうやってコミュニティーと接しています。このような接し方を見れば、Swiftが今後、ソフトウェア開発の主要なプログラミング言語になっていくことが予想できます」(Chacon氏)

 Chacon氏は「もし皆さんや皆さんの所属している企業がまだオープンソースに参加していないなら、ぜひ参加してみてください。Appleもやっているように、皆さんも参加できますし、必ず意義のある変化をもたらすと思います。その過程で、GitやGitHubについて勉強したいという場合は、GitHubを教えることが得意な私たちに、ぜひ連絡してください。本当に楽しいですよ」と語って、講演を締めくくった。

  • このエントリーをはてなブックマークに追加