zowのプログラムな日々

日々のプログラミングとか

Swiftがオープンソースに

昨晩、WWDCがあったのは知ってたけど眠いので寝た。今回は興味の有りそうなネタが事前情報に無かったりしたし。

で、起きてからAppleTVでWWDCを見てるんだけど、なんとSwiftがオープンソース化するって事だった。これはちょっと興味がある。

Swiftは触ったことがないので、あくまでもイメージ的な話なんだけど、俺が思うに恐らくGolangと利用者が被るんじゃなかろうかと。Perl/Python/Ruby/PHPみたいな言語論争みたいなのが勃発するのかなー、なんて想像してしまった。

Appleが独自実装の物を発表するのは今に始まったことじゃないんだけど、今回はちょっと背景が違うと思う。Golang VS Swiftってのは言い換えるとAndroid VS iPhoneの縮図で、もっと大きく語るならGoogle VS Appleの戦いだったりする。

Googleってのは既存のオープンな技術を使って新しいものを表現してきた企業だと思うんだけど、対してAppleは独自実装の技術を使って新しいものを表現してきた企業なんじゃないかと思う。どちらが良いとか悪いとかじゃなくて、根本的な思想が違うんだと思う。

Googleはソフトウェア企業がハードウェア市場に進出してきた形だし、Appleはハードウェア企業がソフトウェア市場に進出してきた形になる。Appleはいかにハードウェアを買わせるかということを考えてるし、Googleはどれだけユーザに自社サービスを提供するかということを念頭に置いてやってると思う。それがGoogleAndroidでモバイル分野に進出した辺りから様子が変わってくる。Googleがハードウェア市場に進出したことでハードウェアとソフトウェアが密結合し始めたんだと思う。自社ハードウェアと自社サービスを連携させる事でどれだけ「ユーザを囲い込めるか」という戦いになってきた。

いや、厳密に言うとGoogleは密結合していない。密結合しているのはハードウェア+OS(当たり前だけど)迄で、プラットフォームを提供してアプリケーションは比較的オープンに開発させてると思う。野良パッケージを入れることもできるし、開発言語もJava以外も選べるようになってきている。でもAppleは違う。iPhoneiOSMacOSXの連携を重要視している。言語はObj-Cだけだったし、iOSには野良パッケージのインストールも許可していない。開発者はMacを使う必要があるし、公開するにはAppleの認証を得る必要がある。

そういう状況でのSwiftオープンソース化である。これによってAppleは何を狙っているのかを考えると興味深い。

開発者視点で考えると、iPhoneでもAndroidでも同一言語で開発できればそれに越したことはない。なのでAndroid側でSwiftを動かせる様になったら嬉しい。そういう発想に傾きがちになる。モバイル開発をしていない私でも思うことなので、きっとモバイル開発者ならもっと顕著に思うことだろう。

今後Swiftはどういう風になっていくんだろうか。しばらくは注視してみたい。