nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

『プログラミングElixir(第2版)』(オーム社)を読んだ

honto.jp

年末年始はまとまったお休みが取れるので、例年、コンピュータ関連の何か新しいことを学ぶ期間にしています。勉強したいことはいろいろあって悩んだのですが、12月の頭ごろにたまたま『プログラミングElixir 第2版』が出版されたことをたまたま発見。Elixirというプログラミング言語にそもそも関心があったということもあり、これも運命かと考え、年末年始は本書に取り組むことにしました。

本書はElixir言語の入門書で、まずはパターンマッチやコレクション操作などの基本的な文法から始まります。その後、簡単なアプリーケーションの作り方を学んだあとは、Elixirの最大の特徴のひとつである並行プログラミングに取り組みます。そして、シジルやマクロなどの発展的な内容に取り組んでおしまい--というのが本書の大きな流れになっています。

なお本書には豊富な練習問題が用意されていて、手を動かしながら学ぶことも可能です。というよりわたし自身が手を動かしていきたい派なので、手を動かしやすい構成になっている本はとてもうれしい。ちなみに練習問題の自分の回答はGitHubに格納しているので、気になる人はどうぞ。

github.com

自分は本書でElixirを始めたElixirシロウトなのでなんともいえないところですが、Elixirの基本的なところはひととおり押さえることができたと思います。Elixirの仮免許か若葉マークぐらいにはなっていればいいな。ただElixirは関数型言語なので、そっち方面の経験がない人はやや苦しいかもしれません。一応関数型言語の考え方みたいなことも記述されていますが、分量的には多くないので。自分はF#やSchemeなどに取り組んだことがあったので、そこは大丈夫でした。またElixirは文法面でRubyに強く影響を受けているのですが、わたしはRubyの経験者でもあったので、そういう意味では特急券持ちだったといえるかもしれません。あと、プログラミング自体初めてという人向けではなく、ある程度経験がないとつらいと思います。もっともプログラミング初心者がElixirを選ぶ率というのがどこまであるのか(´・ω・`)

自分は日系製造業相手にシステム開発するSIerのSE、要するにレガシー業界のレガシーシステムを作っており、仕事でElixirを使う日はまずやってこないでしょう。ただ、仕事で使う使わないにかかわらず、自分の知らない言語やソフトウェアをいっちょかみしておくことはアプリSEとして大事だと思っていて、それが年末年始に新しいことを学ぶモチベーションになっています。そういう観点で言うと、本書はElixirの基本的なところから特徴的なところまでをいっちょかみするには適した1冊でした。とくに並行プログラミングについては、自分が触れてこなかった考え方に基づいているので、そこは大きな学びになりました。Elixirに入門するとっかかりとしてはたいへんな良書ではないでしょうか。