訳者あとがき
『研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ』は、Jeremy Evans著 ''Polished Ruby Programming''(Packt Publishing, 2021)の全訳です。日本語版の訳出の過程で発見した原著の誤りは、原著者に確認のうえ修正しています。ソースコードの誤りは原著のサンプルコード配布リポジトリにも反映されています。
原著出版時点でのRubyの最新安定版のバージョンは3.0でしたが、日本語版出版時点では3.2がリリースされています。2023年2月に30周年を迎えたRubyは、現在では本文でも再三語られる「後方互換性」を重視しているので、本書のサンプルコードはRuby 3.2でも問題なく動作します。その一方で、Rubyの各バージョンごとのブランチのメンテナンスの保守期間は3年半程度になっています。具体的には、日本語版出版時点では最後の2系の安定版である2.7がEOL(サポート期間終了)を迎えていますし、3.0も2024年3月末にはEOLを迎える見込みです。Rubyコミュニティでは、定期的に新しいバージョンのRubyへ移行していくことを推奨しています。読者の皆さんも、なるべく新しいRubyと一緒に本書を楽しんでください。
本書を楽しむためのコンテキストは、ありがたいことに、導入部分ですでに明らかにされています。原著者であるJeremy EvansさんのRubyコミュニティにおける活躍ぶりとその評価は「本書に寄せて」でRubyの言語設計者であるまつもとゆきひろさんによって語られていますし、本書の特徴は「日本の読者の皆さんへ」で原著者自身によっていみじくも説明されています。それらを要約すると、本書はRubyコミュニティのリーダーをして「完璧超人か」と言わしめるような優れたプログラマーが、「読者が『すでにRubyをよく知っている』ことを前提」として、「Rubyプログラミングの原則と、実装方針を決めるにあたって考慮すべきトレードオフ」を伝えるために執筆されています。よって、訳者としてさらに付け加えることはもうほとんどありません(お手元のRubyと一緒にじっくりと本文をお楽しみください)。
あえて訳者からの補足があるとすれば、本書は原著者であるJeremyのRubyプログラミングについての考えをまとまったかたちで知ることができる事実上初めての機会だということです。というのも、Jeremyは「ブログを書く時間でバグを修正したほうがよい」というスタンスの持ち主であり、本書の執筆についても「原著出版社から依頼があった当初は書籍の執筆に前向きではなかった」とインタビュー記事で回答しているくらいだからです(コロナ禍で時間に余裕ができたので取り組むことにしたとのことです)。
ですから、本書はRubyコミュニティにおける名実ともに世界有数の「Ruby上級者」の手による具体的なRubyプログラミングの解説書であるだけでなく、長年にわたって研鑽を積んできたJeremyのプログラミングについての考え方や態度を知ることのできる貴重な一冊なのです(Rubyのように動的で使いやすくプログラマーフレンドリーな言語で高速なのはRubyだけ!)。
「そんな貴重な一冊を英語圏のRubyistだけの楽しみにしておくのはもったいない」という訳者の思いにラムダノート社さんが応えていただいたことで、今回は日本語版を出版できる幸運に恵まれました。『RubyでつくるRuby ゼロから学びなおすプログラミング言語入門』のように意欲的な書目を刊行するラムダノート社のラインナップに本書が加わることを光栄に思います。
確かに本書は貴重な一冊ではありますが、完全無欠というわけではありません。本文を理解するには、明示されている前提である「すでにRubyをよく知っていること」以外にも求められる前提知識がたくさんありますし、原著執筆時点での最新リリースであるRuby 3.0での「新機能」についての言及もありません(たとえば、並列プログラミングのためのRactorや、RBSやTypeProfといった静的解析機能、2.7から導入されたパターンマッチなど)。この点については、日本語版の読者向けのサポートサイト(このScrapboxプロジェクトのこと)を開設しているので、そちらで本書の理解を深める参考情報を提供したいと思います。
本書が皆さんのRubyプログラミングの腕前を研鑽するお役に立てることを訳者として確信しています。ご活用ください。
謝辞
多くの方々によるお力添えなくして一冊の書籍を世に出すことはかないません。以下にお名前を挙げて感謝の意を表します。
ラムダノートの鹿野桂一郎さん、高尾智絵さんと、丹羽健一さんに感謝します。本書の日本語版をお届けするのが当初の想定よりも随分と遅くなってしまいましたが、それはひとえに訳者の力量不足によるものです。トップスタジオの轟木亜紀子さんには素敵な装丁をβ版用と正式版用の2種類も用意していただきました。ありがとうございます。
原著者のJeremy Evansさんには訳者からの質問にいつも迅速かつ丁寧に回答いただきました。急な依頼にもかかわらず完璧な「日本の読者の皆さんへ」を寄せていただいたことにも感謝します。素敵な「本書に寄せて」を寄稿いただいたまつもとゆきひろさんに感謝します。原著者のRubyコミュニティでの評価を日本の読者に伝える最適任者のひとりがまつもとさんだと思います。
皆さんのご尽力のおかげで、本書の日本語版は原著からさらに魅力が増した一冊になったと思います。それから、妻のしのぶと息子の琉之介に感謝します。家族の支えなしに、この仕事をやり抜くことはできませんでした。いつもありがとう。
翻訳原稿のレビューにご協力いただいた皆さんに感謝します。伊藤浩一さん、遠藤侑介さん、金子慶子さん、笹田耕一さん、塩井美咲さん、島田浩二さん、鳥井雪さんと株式会社万葉 研鑽Rubyプログラミングβ版読書会メンバーの皆さん、本多康夫さん。それから、日本語版の翻訳にあたって訳者の強い希望で用意させもらった「β版向けの公開フィードバック用リポジトリ」に貴重なフィードバックをお寄せいただいた皆さんのご協力に感謝します(GitHubアカウント名のみ。2023年3月20日時点。sort(1)出力順)。@QWYNG、@hsbt、@ima1zumi、@june29、@kaorahi、@kfukai23、@kuredev、@kyanagi、@okuramasafumi、@spinute、@ursm、@yancya、@ytjmt。皆さんからのフィードバックのおかげで、訳文をよりいっそう「研鑽」することができました。本書の日本語版に読みやすいところがあれば、それはレビューいただいた皆さんのおかげです。もちろん、訳文の最終的な責任は訳者にあります。正式版でもβ版に引き続き、フィードバック用のリポジトリを設けてありますので、お気づきの点がございましたら、遠慮なくご意見をお寄せください。
hr.icon
https://scrapbox.io/files/643f6d229d991e001bcf0b0e.png
https://scrapbox.io/files/643f6d2fe96a74001b480ac4.png
https://scrapbox.io/files/643f6d3a8706a3001c26b656.png
https://www.lambdanote.com/collections/ruby-1/products/polished-ruby
hr.icon
"訳者あとがき" by 角谷信太郎 is licensed under CC BY 4.0 (Scrapbox記法に合わせてリンク先などを改変)