SSブログ

SwiftのOpen Source化 [日常のあれやこれや]

約束通りSwiftのコード公開された。やっぱり、というか当然、というか、Foundationフレームワークのコードは公開されない....

FoundationはおそらくはほとんどがObjective-Cで書かれていて、LLVM/ClangはオープンソースなのでObjective-Cをコンパイルすることはできるのにもかかわらずである。

SwiftのソースはGitHubで公開されていてここにまとめられている。一緒にSwiftのコードをコンパイルするためのLLVMとClangのコードが公開されていて、これは当然である。また、Swiftが依存しているGCDのコードも公開されているが、これははじめからオープンソースである。そしてコアライブラリとしてここに公開されているのはCoreFoundationとFoundationのフレームワークだけどCoreFoundationはもともとオープンソースだった。Foundationフレームワークはというと、すべてSwiftで書かれている。しかし(もちろん全部を見たわけではないけど)未実装のスタブがあるだけのメソッドが多い。

LLVM/Clangに関係するコードは、それに精通した人でないと手出しできないので、基本的にAppleのSwiftのコアメンバだけがcommitするだけだろう。それ以外のContributerが何をするかというと、Foundationフレームワークを実装する、という作業が主になる。

というか、このSwiftのオープンソース化というのは実質的にAppleのObjective-Cで書かれたFoundationフーレムワークをSwiftで再実装する、というプロジェクトに他ならない、と僕には思える。レガシーな部分が目立つようになってきたFoundationフレームワークを近代化する作業をオープンソースで手っ取り早くいいとこどりしよう、という姿勢に見える。もう一方のレガシーなAppKitフレームワークの近代化は、Apple自身がUIKitとしてiOSをターゲットに進めらててきた。どこかの時点でこれを拡張する形でAppKitを置き換えるのでこっちはいいや、というのはAppleの中の人なら考えるはずである。

もともとAppleのオープンソースというのは意図が疑問なものが多い。gccへのcontributeもObjective-Cのコンパイルに限られていた。DarwinとCoreFoundationの公開もオープンソースコミュニティに対する宣伝と影響力の拡大が狙いだったと思える。LLVM/Clangも横取りした、とは言わないまでも実質的にAppleが取り込んだ形になってしまった。こういったことはAppleの中の人は「戦略的貢献」と言いたいのだろう。でも本来のオープンソースの意義とは違うような気がする。

SwiftがAppleの思い通りになるかどうかは結構微妙ではないだろうか。僕はAppleは営利企業なんだから好きなようにすればいいと思うし、Appleがどういう戦略をとろうと僕の知ったことではない。一方、僕は古いunixコミュニティの人間なのでオープンソースシンパで、Appleの成果を使わせてはもらうけど、積極的にAppleに貢献しようとは思ってはいない。とはいうものの、僕自身はAppleにとことんスポイルされてしまっているので、方向性によっては影響を受けてしまうんだよな。

ということで、Swiftがどう転ぶか、は僕には見ものとして結構面白い。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。