Swiftがオープンソース化されて3週間、起こった変化について

Swiftがオープンソースとして公開されたのは12月2日です。その後3週間がすぎましたが、Swiftのエコシステムには何が起こっているのでしょうか?メーリングリスト、プロポーザル、Pull Requestなどを通じてコミュニティは急速に発展しています。その内容を整理しました。

Swift Evolution

Swiftは非常に急ピッチで進化しているため、多くの人はSwiftがどの方向に向かって進化しているのか知りたがっています。Swiftがオープンソース化された時に、将来のバージョンに反映される提案(Proposal)も合わせて公開されました。すでにコミュニティの中からは新たな提案が提出されていますし、一部はもう受け入れられ、採用されています。現在Swift Evolutionにある提案(Proposal)の数は17にも上ります。Swiftが公開された当初は4個程度だったと記憶しています。

記事の更新情報を受け取る

その中で、初めて受け入れ���れた外部の人間が提出した提案は、Erica Sadun氏が提出したCスタイルのforループを無くそうという提案です。Swift 2.2からはCスタイルのforループを使用すれば警告が表示されるようになります。

ほとんどの提案が「レビュー待ち(Awaiting review)」および「レビュー中(Under review)」の状態であるのを見ることができます。「レビュー待ち」から「レビュー中」にステータスが変わると進んだと考えることができます。まだSwift EvolutionリポジトリのPull requestでは「レビュー待ち」のプロポーザルもたくさんあります。その中でも書き込みの多いものはパッケージマネージャにTest機能を導入するというものですね。

Pull Request

オープンソース・ソフトウェアに貢献する最も簡単な方法を知っていますか?ソースコードにあるTypo(書き間違い)を直すことです。こちらはSwiftリポジトリの非常に多くのTypoを修正するPull Requestです。

SwiftのリポジトリではTypoの修正は1つのコミットにまとめてPull Requestする方が好まれるようです。上記のPull Reqestは最初はTypoごとにコミットとPull Requestを分けていましたが、SwiftプロジェクトのリードであるChris Lattner氏のコメントにより1つのコミットにまとめられました。

また、テストケースも絶えず追加されています。

Raspberry PiやBeagleBoneなどをサポートするために必要なARMv7アーキテクチャのサポートを追加するPull requestも注目です。実用になるのはまだまだ先の話になりそうですが。

メーリングリスト

メーリングリストでは日々さまざまな議論が活発になされています。[クラスとメソッドはfinal指定がデフォルトになるべき(https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/000873.html)]という議論にはアップルの社員が「かつてアップルの内部でも同じ議論があった」と回答していました。

Cスタイルを無くしていこうというトレンドを反映して、セミコロンを完全に文法から無くしてしまおうという議論もありました。

もちろん、Chris Lattnerが直接レスポンスをすることもあります。動的ディスパッチと静的ディスパッチに関する議論ではChris自身から長文のレスポンスが寄せられました。

SwiftAndroid、そしてFoundation

Androidの開発をSwiftでできるようにしたいというアイデアは昔からありましたが、そのアイデアを実行に移している方を紹介します。SwiftAndroidというGitHubレポジトリで、進捗を見ることができます。まだHello Worldができるくらいということですが、将来が楽しみですね。

アプリケーション開発に欠かせないFoundationフレームワークをピュアSwiftで再実装するプロジェクトのswift-corelibs-foundationは非常に多くのSwiftデベロッパーの関心を集めています。RealmのiOS開発者であるJP Simardが送ったNSRangeFromStringを実装したPull Requestもこの間マージされました。


Swiftがオープンソース化されてから初の大規模カンファンレンスtry! Swiftが日本で開催されます。お申し込みはお早めに! http://www.tryswiftconf.com/#tickets

About the content

This content has been published here with the express permission of the author.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close