Rubyistになりたくて – 書評「たのしい開発 スタートアップRuby」
先日、著者である@igaiga555さんから献本をいただいた「たのしい開発 スタートアップRuby」。しかし、いつも書評を掲載していただいている「晴読雨読@エンジニアライフ」では、別の書評がすでに公開されている。
すっかり出遅れてしまった上に個人blogへの掲載で大変申し訳ない気持ちなのだが、本書はとてもいい本なので、こちらでも書評を公開させていただく。
「Rubyist」と「Rubyプログラマ」
Rubyistたちの苦悩
すこしだけ昔、Rubyは「あこがれの言語」っだった。
一見簡潔ながらも使い込むほどにわかる奥深さ、DSLや黒魔術的なメタプログラミングを可能にする柔軟さ、そしてRubyを取り巻くコミュニティ活動の熱心さ。それらは先進的で開発の理想を追い求めるプログラマにとって、大変魅力的なものだった。
特にコミュニティ活動は他の言語やテクノロジに比べてとても活発で、Rubyという言語本体やRubygemsと呼ばれる周辺ライブラリなど、オープンソースによる開発が盛んに行われている。また、RubyKaigiに代表されるRubyプログラマの集いも各所で活発に開催され、そこに集まるRubyプログラマはいつしか「Rubyist」と呼ばれるようになっていった。
しかし(もしくはそれゆえに)、Rubyは「仕事としての実用には向かないギークのおもちゃ」と見なされることも少なくなかった。パフォーマンスや環境構築の手間、そしてなにより「Ruby技術者の確保」がリスクとされ、業務のメインで使う言語として選択されるケースは稀だった。
そのためRubyistの中には、昼はJavaやPHPで仕事をし、夜間や休日はOSSの開発やコミュニティ活動を行うものも多くいた。
Rubyプログラマの誕生
こうしたRubyistの活動により、徐々にRubyの強力さ、生産性、そしてなにより「たのしさ」が認知されるようになり、プロダクトやサービスのアーキテクチャとしてRubyが選択されるケースが増えてきた。Rubyistたちはやっと「仕事でもRubyist」の立場を手に入れられるようになってきたのだ。
「職業Rubyist」として働くRubyistたちは、Rubyの強力さ、柔軟さ、そしてたのしさを毎日楽しみながら、楽しく仕事をしていることだろう。
その一方で、プロダクトコードとしてのRubyの存在は、Rubyのたのしさや「たのしさへの渇望」を知らない、ただの「Rubyプログラマ」も生み出すことになった。新卒や中途で入社し、配属されたプロジェクトがRubyであることも珍しくなくなった現在、単に「与えられた仕事」としてRubyを書くプログラマも増えている。
そうしたプログラマのことを、ここでは「Rubyist」とは明確に区別して「Rubyプログラマ」と呼ぶことにする。
Rubyではじめる「たのしい開発」
本書「たのしい開発 スタートアップRuby」は、「Rubyプログラマ」を「Rubyist」に導くための本である。
もちろんRubyのインストールなど環境構築、基本的な言語仕様、そして代表的なWebアプリケーションフレームワークである Ruby on Rails についての記述はされている。Rubyに興味がある初心者が、はじめの一歩として手に取ることにも適した本だ。
しかしそれ以上に、本書は「Rubyプログラマ」にこそ読んでほしい本だと思っている。
単に仕事の道具としてRubyを書く「Rubyプログラマ」からステップアップし、開発のたのしさやコミュニティ活動、そしてRubyの文化についてまでを考え、実践していく「Rubyist」になることで、仕事はグッとたのしくなる。そして、たのしく熱意にあふれた仕事から生み出されたコードは、きっと品質も高くなり、ユーザに届ける価値も大きくなることだろう。それはソフトウェアが使われる社会にとっても、幸せなことなのだ。
個人はたのしく開発をし、社会には幸せが増える。これが、私が「Rubyistが増えてほしい」と願う理由だ。
「たのしさ」を求めよう
とはいえ、ただプログラミングの仕事をしているところからいきなり「たのしさ」とか「Rubyist」なんて言われても、怖じ気づいたりピンとこなかったり気恥ずかしかったりするだろう。そんな最初のハードルを越える手助けが、本書には満載されている。
たのしい開発
第1章には、著者のひとりである@tatsuoSakuraiさんが「たのしい開発」を追い求めた結果、転職してRubyistになるまでの経緯がかなり生々しく書かれている。
転職経験があり、よりたのしい環境や開発現場を追い求めている人には、とても共感できる内容になっている。周囲の空気や温度感と戦い、そして打ちのめされる経験は、大なり小なり思い当たるのではないだろうか。
まだひとつの環境でしか働いたことがないプログラマには、「先輩の背中」として参考にしていただきたい章だ。
「たのしい開発」をやってみたい!という想いは、転職に対する不安を押しのけました。筆者は思い切ってその開発会社に飛び込むことに決めたのです。
1-6「思い切って飛び込む」(p.16)
Rubyの文化
Rubyの文法や言語仕様、Ruby on Railsのレシピが書かれた本はたくさんある。しかし「Rubyの文化」と名付けられた章がある本は、なかなか貴重な存在だ。
表面的な文法を知っているだけでは、その言語「らしく」書くことは難しい。プログラミング言語にはそれぞれ特有の生い立ちがあり、開発された目的や理想がある。そういった「文化」の側面を知った状態でプログラミングすることは、その言語の「お作法」に則った(=他のプログラマが見ても理解しやすい)コードを書くことにつながる。
まったく背景を知らずにただ動くだけのコードを書くよりも、文化やお作法について考えながら書く方が、より「たのしい開発」に近づけるはずだ。「自由と責任」「名前重要」「多様性は善」など、Rubyの根底にある「文化」に触れてほしい。
コミュニティ活動と「おまえら」
コミュニティ活動を積極的に行うRubyistを、特に親愛の念をこめて「おまえら」と呼ぶことがある。
Rubyは特にコミュニティ活動が活発な言語で、言語本体の開発も、周辺ライブラリ(Rubygems)の開発も、そしてRubyの知識や実力を向上するための各種勉強会も、それぞれが有志の手によって行われている。仕事を離れた時間に、会社や年齢といった社会的な枠を超えて、ただの「おまえら」としてコミュニティ活動に参加するのは、あらゆる理由でとても有意義だ、と断言することができる。
とはいってもいきなり見知らぬ人たちの中に飛び込んで大きな顔をするのは、なかなか心理的なハードルが高いことだろう(越えてしまうと意外と低いことに驚いたりもするのだけれど)。
本書はそのためのガイドブックにもなってくれる。RubyKaigi、地域RubyKaigi、各種勉強会、ソーシャルコーディング。Rubyistと交流するための窓口は至る所に開かれている。身近なところをひとつ探し、本書を片手に飛び込んでみるのは、Rubyistになるためのとっておきの近道だ。
Rubyistになりたくて
先日、「るりま読書会 Enumerable編」という勉強会を開催してきた。挙手でアンケートしてみたところ、10数人の参加者のうち、半数以上が「仕事でRubyを書いている」とのことだった。何年か前の勉強会で同じ質問をすると、たいていお通夜のような雰囲気になったことを思い出すと、時代は進んでいることを実感させられる。
もはや「仕事の道具」としての地位も確立したRuby。だからこそ、いまいちど「たのしい開発」を追い求めてみたい。
仕事でプログラムを書くなら、ちゃんと書くのが当たり前。だって、仕事でしょう?
でも、もっといい仕事をするために、「たのしさ」というのは書かせない要素だから、本書を読んで「たのしさ」について知り、考えてみてほしいと強く思った。そして本書を読み終えたら、高橋会長の「「たのしい」Ruby再考」を読んでほしい。
「たのしいかどうか?」「どうすればよりたのしくなるのだろうか?」