Previous Entry Share Next Entry
Swift実践入門を読んだ
karino2


Swift実践入門


自分の本と同じシリーズで同時期に出たので興味があった事もあり、また教養としてSwift知っておきたいなぁ、と前から思っていたので読んでみた。

名前の通りSwiftの入門書。
ただ自分が本屋でSwift関連の本を立ち読みした感じ、あまり他の本がしっかり書かれていないのでベテランもSwift知りたければこの本を読むのが最善だと思う。
プログラムの初心者向けに書かれているが、自分はプログラム初心者じゃないので初心者にとってどうかは良く分からない。

以下本来の対象読者じゃない自分のような人が、どう感じたかの感想を書いていく。
自分はiOS開発をする気は今の所無く、単に最近のモバイル向けの言語としてAppleはどんな物を出しているのだろうか、という事にだけ興味があった。

この本はiOSアプリ開発とかの話題は無く、Swiftの言語機能とFoundationライブラリくらいに絞っているので、自分の目的には合っていた。
言語の機能が一通り解説されていて、それがどう使われるのかも例が出ている。
最後まで読んで、どう使うか良く分からない機能とかは無かったので、十分詳しく書かれていたと思う。

本の序文ではWhyやWhenを明らかにしていきたい、みたいな事が書いてあったが、読んだ印象ではその辺の突っ込んだ議論などは無かったと感じた。
例えば構造体とクラスはどう使い分けるべきか、とかさらっと解説されているが、あくまで初心者とかが悩んだ時とかに役に立つかもしれない、程度のものだった。
自分はもっとSwift特有の先進的な議論とかを期待していたので、そこは期待外れだった。ただ特に異論もなかったし、参考になった所もあるので、内容が悪い、という訳では無い。

後半にはGithubのweb API叩くコンソールアプリみたいなのを通していろいろ見て行こう、みたいな章があったが、ソース読むだけでほとんど何をやっているか分かってしまったのであまり解説とかは読んでいない。
ただその程度のコードは見るだけで分かる程度には本文の解説は良く書かれていたと思う。

ObjCとの連携はObjCの事良く知らないので分からない部分もあったので、さらっと読み流した。まぁObjC知らないとObjCとの連携したいとは思わないだろうから、これは自分の方の問題だろう。

全体として、ベテランがSwiftがどんな言語か知りたい、と思った時に推薦出来る本だった。

不満点
解説があとで出てくる言語要素がソースの中に何の説明も無く出てきている部分がちょくちょくあった。
tryとかconvinientとかメンバーワイズイニシャライザとか。
あとで解説はあったのだが、そこへの参照は飛ばしてほしいなぁ、と思った。
また、解説が不十分に思える部分もちょこちょこあった。例えばtrailing closure以外の引数が無い関数の()は省略できるんですよね?その辺の事が良く分からなかった。

あと、C++とか知っている人向けの内部解説的な事があまり無くてその辺は物足りなかった。
たとえばvtableはいつも作られるのか?とか、structの+=とかは実行時最適化が掛かると思うのだがどういう挙動をするのかの説明とかも無かったし、コピーオンライトもどう実装されているのか良く分からなかった。
ただタイトルに入門という文字が入っている本にその辺求めるのは、そもそも求める方が間違えている気もする。

良かった点
言語機能の解説は系統だって解説されていて、分かりやすかったと思う。
先頭からすらすらと読んで行けて、読んでて辛くなるような部分も無く、読みやすく書かれていた。
後から振り返りたい時もどこに何が書かれているかは目次から簡単に探せるので、章構成がしっかりしているのだと思う。
見通し良くSwiftの全体像を把握出来た。

Swift特有の機能も分かりやすく解説されていて、特に詰まる所も無かった。
解説はなかなか分かりやすい。

内容の深さという点でも、本家のチュートリアルなどよりもしっかりとした内容で、良い言語の入門書だったと思う。
使用例もなかなか良く出来ていて、「なんでこんな機能あるの?」と感じた言語要素はあまり無かったように思う。

Swfitってどんな言語か知りたいなぁ、と思っていた自分の期待にはしっかり応えた。

Swift関連では本家チュートリアルの劣化コピーみたいな酷い本ばかりが出ていた印象なので、この本はそれらのひどい本達とは一線を画した良い出来の本、とは言える。

Swift自身の印象
クロージャあってリファレンスカウントな言語は辛いなぁ、という印象。リークを防ぐ為の話があったが、それを見て逆に凄いリークしそうだなぁ、と感じた。
自分が思っていたよりも低レベルというかCに近いレイヤの言語で、なかなか速そうな言語に思った。
慣れれば生成されるアセンブリとか意識しながらコード書けるようになりそう。

これならスマホのアプリでも相当早いのが作れそう。
実行時のコストにならなさそうな範囲では非常にモダンで快適にコードが書けるように考えられていて、実際ちょろっとした事を書き捨てる用途でも結構悪く無い気はする。

Swiftで是非何か作りたいな、という程好きにはならなかったが、iOSアプリを作らなくてはいけない、となったらなるべくSwift使わせてもらいたいなぁ、とは思った。
IDEの頑張り次第だが結構楽しく開発出来そうに思う。

iOS以外の分野、例えばブラウザとかの大規模開発ならC++の方が良い所も結構ある気がするが、使ってみるとどうなんだろうね?
型安全に書きやすい気はするので、大規模でもSwiftの方が良い可能性もあるが。
記述はSwiftの方が短くて済みそうで、変なコンパイルエラーとかに延々と悩む事もSwiftの方が少なさそうではある。
ただC++のパワフルさが現実には必要、という場合もありそうで、この辺は実際に使い込んでみないとなんとも言えないなぁ、という気がした。

教養として勉強してみて良かった気のする言語だ。
Tags:

?

Log in

No account? Create an account