Swift

try! Swiftに3日間参加した翌日の主観的感想

More than 3 years have passed since last update.

Swiftオープンソース化後(たぶん)初のSwiftカンファレンスtry! Swiftが渋谷で3/2 - 3/4の3日間催されました。各セッションの内容は既に様々な所でまとめられていますし、後日Realmサイトのどこかにスライド・動画等が公開されるようです。しかし、今回のカンファレンスは実際に参加して良かったと心から思える素晴らしいものでした。そこで、公開される(されている)情報とは別に、カンファレンス内の空気感などから私が感じた幾つかの事柄を、あえて主観的にまとめてみようと思います。


動画で見るべきセッション

どのセッションも素晴らしかったですが、以下のものは静的な情報だと実際の魅力が伝わりきらないと思うので、動画が公開されたらそちらを見て頂くのが良いかもしれません。


オープンソースSwiftへの貢献

3日目17:00-17:25のセッション。オープンソースSwiftに貢献する場合にどう始めれば良いかという内容。特に終盤が熱くて、「Swiftオープンソース化のビッグウェーブに乗り切れてないんだよね」という人は、動画で見るとかなり後押しされるはず。


ライブコーディング


  • プロトタイピングの魔法 2日目10:30-10:55

  • Protocol-Oriented Programming in Networking 2日目16:30-16:55

  • ライブデザイニング 2日目17:00-17:25

  • SwiftらしいTable View Controllerの使い方 2日目17:30-17:55

上記に挙げた(他にもあったかも)セッションではライブコーディング(デザイン)がありました。え、そこそう書くの?とか色々思う所があるかもしれませんが、それも含めて他のプログラマがどう考えながら書いているのかを追体験するのは楽しいですね。


セッションから感じたこと


Swiftの未熟さに対するスタンス

「すごいSwiftたのしく学ぼう!」とSwiftを褒めちぎるだけではなく、むしろProtocol Extensionの融通の利かなさや(逆に柔らかすぎたり)、非同期エラーハンドリングなど、「Swiftのこういう所まだ良くないよね!」という内容がセッションでも何度か出てきていた。休憩中に話していても、課題感を持っている人は多いみたい(まあそうですよね)。しかし、Swiftは今が到達点というわけではないからオープンソース化されたのであって、「まだSwift改善点はたくさんあるよね、それをSwiftコミュニティみんなで考えていこうよ」が今回のカンファレンスの大きなメッセージだったんじゃないかなと思う。


Appleから離れたSwiftの活用

言語処理・サーバーサイドなど、Appleの枠から離れてSwiftを活用しようとする動き、どうなんだろうと思っていた。Objective-Cより素晴らしいのは間違いないけど、サーバーサイドを書くのにはもっと適した言語が既にあるのでは?と。「Swiftの未熟さに対するスタンス」の内容にも繋がるけど、「Swiftが素晴らしいからSwiftで世界を埋め尽くそうぜ!」という気持ちが全てではなく、Swiftを軸にそれぞれの領域で使われる言語がどうあるべきかを探求していく動きでもあるのかもしれないな、と感じた。


Storyboard

登壇者(海外勢)はStoryboard使わない派が多く、聴衆(Twitter上の日本人勢)はStoryboard使いたい派が多く、その差がおもしろかった(海外でも派閥はあるらしい)。ImmutableなViewControllerにStoryboardは不向き、だとかそういう内容。個人的には完全にStoryboard使わない派で、Playgroundの活用がその鍵を握っているのではないかと考えている。StoryboardがまだSwiftに追いついていないだけでは、という話も出たけれど、GUI上で引数渡しまくる未来よりは、Playgroundを活用してHTML的にレイアウト書ける未来の方が整然としていて良いなぁ。(Storyboardでも例えばprepareForSegueの戻り値としてViewControllerのインスタンスを返せるようになったらFunctionalに書きやすくなるかもしれないけど)


情報収集源

Githubのトレンドを追ったり、ブログやQiita記事を読んだりするのが日々のSwift情報収集だったけれど、海外の方々も含めて話を聞いてみて、大幅に収集源が足りないというわけではないようで安心した(安心せずアウトプットをもっとしていかないといけないのだけど)。でも、ポケモンネタは知らなかったなぁ。


開発設計の観点

現時点の仕事内容的に、「如何にして誰がどう触っても間違えない・壊れない設計を組み立てるか」に個人的興味があるのだけど、今回はその観点ではっきりと言及されることはなかった。むしろ、「優秀な人が、優秀な人と開発できる環境」前提の設計が多かったのかなぁと。(少し羨ましかったけど)その観点で、例えばUIKit周りの整理された設計を守るためにどう制約を付けていくかとかは、自分の宿題にしたいところだなぁと思った。