■
try! Swiftに参加していた。
短いインターバルで内容を咀嚼していくのはなかなかハードだったけど、内容がそれぞれ極まっていた。
#tryswiftconf 通訳のレシーバーは全部返却されました 😂 みなさんご協力ありがとうございました。
— kishikawa katsumi (@k_katsumi) 2016年3月5日
同時通訳のレシーバーが足らないという話が気掛かりだったけど戻っていたようで、よかった。
とりあえず、個々のテクニックは別にして今回感じたことは大きく2つ
Swiftのプログラミングスタイル
Objective-Cは、誰が書いても同じようなコードになる。
Objective-Cはnilへのメソッド呼び出しが無視されたり
評価するとデフォルト値を返すなどして、簡単にヌルポを吐かない代わりに独特の意訳をする言語だ。
標準のNSArrayや、NSDictionaryに値を詰めると型が消えるという仕様、ダイナミックなメソッド呼び出しは完全に動的言語のそれで、主な使命がFoundationやUIKitのAPIの利用ということを差し引いても`There's Only One Way To Do It`だ。
Swiftはどうか、というとSwift2からProtocol Oriented Programingが提唱されており、メタプログラミングが追加されRxをはじめとしたFunctionalなプログラミングスタイルが既に人気を集めている。
そして、恐ろしいことにそれらは日々増え続ける状態の管理を幾分か、簡明にする優れた答えの一つでもある。
まあだいたい、言いたいことはakisuteさんが仰っておられた通り。
もう関数型的な考え方をミックスしていくのはどう考えても避けられない。Rxがなくてもだ。今日のデモだとUITableViewControllerのcell configulatorが関数になっていた。ここは確かに関数の方が便利で、全てが関数になっていく。
— akisute/Masashi Ono (@akisutesama) 2016年3月3日
→try! Swift SwiftらしいTable View Controllerの使い方
恐ろしいことにだ、SwiftはただのベターObjCで終わってればある意味良かったものを、OOP/POP/FP全部を適切にミックスして使うすげえなんかやばい魔法体系になってしまったというのを確信した。なんてこったいだ。
— akisute/Masashi Ono (@akisutesama) 2016年3月3日
→try! Swift Protocol-Oriented Programming in Networking
→try! Swift パーサーコンビネーター in Swift
まあある意味JSとかと同じになったのだ。あの言語も使える人と使えない人の書いたコードがまるで別になるやつ。Obj-Cはだいたい誰が書いても同じになる。
— akisute/Masashi Ono (@akisutesama) 2016年3月3日
自分も見習ってキラッキラしたSwiftコードを書きてえと思う一方で、エクストリームな世界に対しては、身構えるところもある...。
Swift Package Managerとswiftenv
今回は基本的にiOSに向けたセッションだったが
try! Swift Swiftでサーバを書いてみよう #tryswiftconf Day3-2 - niwatakoのはてなブログ
と
try! Swift ライブラリの開発 #tryswiftconf Day2-8 - niwatakoのはてなブログ
はLinux環境での利用について言及していた。
これらは今後一年で主流になっていくと思われるので、試す。(cocoapodsはコマンド一発で使える、cartageもビルドの速さなど、過去の資産も含め一日の長があるのでそれなりに使われていくと思う)
来年は上から下まで全部swiftで書いたとかraspi動かしたみたいなセッションが出るんだろうか。
Party
英語使えないのにお酒を飲んで外国の参加者の方に意味不明な絡みをしてしまった。
とても申し訳ない、勉強させていただきます。