[2015年10月]取り組んでいること
寝ても寝ても眠い時期に突入しました。あと体調もあんまり良くないです。夏が終わって、寒い時期に突入すると体調を崩す傾向にあるので注意したいです。
体調はそんなんですが、技術的な面ではインプットの時期に突入してます。WWDCが終わってからはインプット->アウトプットのイテレーションを回している感じでしたが、最近はインプットを溜め込んでいる感じですね。
最近読んでいるのは、すごいHaskellたのしく学ぼう!
と、この本です。
「もっとSwiftでカッコよくコードを書きたい!」という欲求の元に進んでいる感じです。
この辺のインプットをメインにしていて、アプリのアップデートとかアウトプット系とかがあんまりできていないです。とは言えアウトプットも個人的な課題の一つなので「取り組まねば!」と思いながら、おもむろにブログを書いている感じです。
きょうは最近取り組んでいることの中から思ったこととか感じたことをフワッと書こうと思います。
Haskell
先ほども書いた通称「すごいH本」についてですが、個人的には技術評論社から出ている「関数プログラミング実践入門」よりもオススメしたいと思います。
技術評論社
売り上げランキング: 201,678
いや、この本も良いのだと思いますが僕にはちょっと早かったのか、あんまり内容についていけなかったので。6割くらい読んだのですが、途中でついていけなくなってしまって読むのをやめてしまいました。
そのあとに知り合いに薦められたこともこともあり、この本を買いました。
オーム社
売り上げランキング: 122,449
僕には合っているようで、飽きることなく読み進められています。
とは言え、関数型プログラミングはやっぱり命令型プログラミングと違った思考方法が求められたり、今までの概念にはない単語が出てくるので、同じ章を何回も繰り返し読んで理解を深めている状態です。
個人的にはプログラミングの知識の幅を増やすと言うよりも新しいことを学んでいる印象が強いです。
と同時にこれを学んでおけば、これから先必ず役に立つだろうなという実感も得ています。
関数型言語的な考え方を取り入れているSwiftが短期間の間に開発者に最も愛される言語になったことを考えると、あと何年か後にはかなりホットになっているのではないかと思います(望んでいます)。
Appleの「Swift」、開発者に最も愛される言語に──Stack Overflow調査で – ITmedia ニュース
仮にそうなった場合、命令型言語しかやったことがない人は習熟するまでに結構時間がかかるだろうな〜というのが今の印象です。
例えばpythonをやっていた人がRubyに取り組む際はあまり大きな苦労は受けないのではないかと思います(僕は両方とも中途半端にかじっただけなので怒られるかもしれませんが)。ある程度は知識の流用ができるので、移行にかかるコストが一から学ぶのに比べるとかなり小さいと思います。
Haskellの勉強をしていて思うことは、そういった移行コストが結構大きいということです(そう思う人が少ないのであれば単純に僕の頭が悪いということだと思います)。
もちろんHaskellを学んでいても知識の流用ができる場面はありますし命令型言語をやっていないよりもやっていた方がはるかに良いとは思うのですが、命令型言語->命令型言語の場合よりも明らかに目に余って大きいと感じます。
命令型言語しかやったことがない人が習熟に時間がかかってしまうだろう、というのはそういう意味です。
この本は11月中には読み終わっていよう、くらいの感じで進めています。それが終わった次の本に行く予定です。
Functional Programming
先ほども書いたこの本は正直読み始めたばっかりで、たいした感想もありませんが、すごいHaskellたのしく学ぼう!の後はこの本をガッツリと読み込む予定です。
例として載っているCore ImageのラッパーをFunctionalに書く部分は、カメラアプリでフィルターを組み合わせる処理をする時とかにすごく役に立つな〜と思って、リボカメにも組み込もうと考えています。
12月中にFunctional Programming in Swiftは終わらせて、途中で読むのをやめてしまった「関数プログラミング実践入門」を復習がてらに読んでみよう、という感じで進めています。
まとめ
ということで、ただのメモなんですけどSwiftでカッコ良く書きたい願望ドリブンで進んでいます。
Promiseとかリアクティブとか色々やりたいことあるんですけど、手を伸ばしすぎて中途半端にならないように注意することにも力を入れてないとな〜と感じています。