bbs
oopers.com
5462 OOPer: 2016-01-31 13:57:45
Swift APIの大転換がやってくる
原題は「It's Coming: the Great Swift API Transformation」。原文を読みたい方は例によってswift.orgからBLOGをたどっていただきたい。「Great Transformation」をどう訳すべきか迷ったのだが、やはり「The Great Transformation」なる「経済史、経済人類学の書籍」(日本語版Wiki)があるそうなので、訳語もそのままいただいた。

要約(ネット上の海外記事の要約には恐ろしいほど偏ったものも多い、できるだけ元記事の内容を参照する癖をつけていただきたい)すると「Swiftがリリースされてしばらく経って、Swiftっぽい書き方ってのも認知されてきた感じなんだけど、CocoaのAPIがインポートされた部分ってSwiftっぽくなくってなんかギャップがあるよね。そんで、そのギャップを埋めるためにあれこれ変えちゃおうと思うんだけど、おっきな変更になるし、本当にこれで良いのかどうか迷っちゃうしで、ちょっと手伝って欲しいんだ。」

というわけで、1月末とされていた関連の提案のレビュー期間が少しばかり(2/5まで)延長された。

SE-0023: API Design Guidelines(Swiftの標準ライブラリーを意図したガイドラインだが、Cocoaから輸入されたAPIもこのガイドラインに従うようにad-hocな(開発チームが言うにはheuristicな)アルゴリズムとかをバンバン使って書き換えようということになっている。)
SE-0006: Apply API Guidelines to the Standard Library(Swiftの標準ライブラリーってsort<->sortedみたいに結構、どっちにしたいねん!?と突っ込みたくなるゆらぎがあるのだが、明文化してそこら辺を統一しちゃいましょうという話。かなりの数のAPIが書き換えられると思う。)
SE-0005: Better Translation of Objective-C APIs Into Swift(SE-0023で規定された要素のうち、こっちがObjective-Cからの輸入時の話。CocoaのAPIと言ったって膨大な数があるんで、ここにあげられたルールだけで何もかもうまくいくのかどうか疑問だが、多分うまくいかない。場合によってはswiftnameみたいなアトリビュートも使って手動で書き換えちゃうんだろう。)

ざっくり読んでいただくだけでもわかるが、既存のSwiftアプリで書き換えの全く必要ないものなんて存在しえないと思われる大規模な変更になる。ま、migratorなるものも用意されるだろうが、Swift2.0betaの時を考えても、その手のものが一番需要が高い初期には、あまり完成度の高いものはできないだろう。

「いくらなんでもここ変えられちゃやっとられん」とか、あるいは「そこまでやるんならここもうちょっとうまくやって便利にしてよ」とかの意見のある方はこの金曜日まで、カオス化したメーリングリストに恐れをなすことなく突撃してみていただきたい。