これは**Swift愛好会 Advent Calendar 2016** 1日目の投稿です。
みなさん、飲み物は持ちましたか?
乾杯🍻
(これがやりたかったので、スライドモード)
本題
- 何気にSwiftを始めた最初の勉強会はSwift愛好会だった
- Swiftを始めて1年経った
- 他言語界隈にいる時に、「なぜSwiftが好きなのか」をよく聞かれるので言語化しようと思った
以上3点から、個人的にSwiftの好きなところを書こうと思います。
好きなところ
- 言語自体
- 型が厳格
- Switchが強力
- 関数型が使える
- 言語自体のアップデートが早い
- 環境要因
- コミュニティが活発
- 質問に答えてくれる土壌がある
言語自体
型が厳格
- 兎にも角にもこれが1番
- 厳格と言っても、Objetive-Cの
NSString
とNSMutableString
のような分離はしていないこともよい
- 厳格と言っても、Objetive-Cの
-
少し前に賑わっていたnull安全も、型がしっかりとしていることがベースになっている気がする
- 必ずしもnull安全がすべてを解決してくれる訳ではないが、Objective-Cを使っていた頃より明らかに楽できるようになった
Swiftは型に始まり、型に終わる
と言ってもいいと思う
Switchがかなり強力
-
break
書かなくていいのはかなり好き - Castもできる書き方も好き
let any = 1 as Any
let int: Int = {
switch any {
case let intValue as Int: return intValue
case let stringValue as String: return Int(stringValue) ?? 0
default: return 0
}
}()
Enumとの組み合わせやPatternMatchと用途が広いので、用法用量を守ることが大切だとは思う
関数型が使える
- 一時変数を置いたりすることなく、簡潔に処理することが可能になり、気持ちいい
- 慣れるまでは違和感があったが、一旦覚えるとを組み合わせて解決できないか考えるようになった
個人的には reduce
が使えるとヨッシャ•̀.̫•́✧
言語自体のアップデートが早い
(これは賛否両論あるとは思うが)
- 開発が早いだけでなく、負債や変更の影響度を考慮しつつ、よくしていこうという意図が感じられる
- swift-evolution のProposalを追っていくだけでも楽しめる
- 毎日知らないことを知れてとてもいい
環境要因
コミュニティが活発
-
各所で勉強会が活発!!!!!
- 勉強会後の繋がりもあることが多い
- try!Swiftのような世界規模のカンファレンスがある
- (後発言語の中では珍しいのでは)
質問に答えてくれる土壌がある
(コミュニティにも付随しますが)
- 答えてくれる方々が多い
- Slack
- etc...
- アーキテクチャ等を議論、相談したもできる
- (社内にiOSアプリエンジニアがほぼ自分1人なので、社外に聞ける人たちがいるのは、個人的に非常にありがたい)
まとめ
1年やってみて、今まで触れてきた言語の中で1番好きだと断言できます。(もちろん不満点もありますが...)
とは言っても毎日書くようになったのは9ヶ月弱で、まだまだ日々発見という感じなので、1年後はさらに好きなところが増えているといいですね!
ここに挙げた以外にもSwiftのいいところはあると思うので、ぜひ「私はここが好き!」というものをコメントしてください!
ということで、Swift愛好会 Advent Calendar 2016 1日目でした。
1年間ありがとうございました!
来年もよろしくお願いします!
この記事とは関係ないですが、最近Genericsの使い方で悩むことが多いので、いいお手本があれば紹介ください