Open Data Structure の日本語版の公開

TL;DR

  • Open Data Structures というフリーのデータ構造の教科書を翻訳している
  • サンプルコードを新たにRubyで書き、Ruby版を英語に逆輸入する予定である
  • 翻訳品質を上げるために資金あるいは手を提供してくれる方を募集している

Open Data Structuresというプロジェクトをご存知だろうか。 これはPat Morin氏が立ち上げたプロジェクトで、 大学のコンピュータサイエンス系の学部ならほぼ皆が最初に学ぶデータ構造に関する教科書をフリーで公開するものである。

「大学で」「皆が」「最初に」学ぶということは

  • 一般性・普遍性があり
  • だれでも使う
  • いつでも使う

ということを示唆しており、この分野、そしてこのプロジェクトの意義深さを端的に示しているだろう。

僕自身、大学の専門課程における最初の学期にこの教科書でデータ構造を学んだ。 先月のことだが、この教科書の日本語訳がまだないことにふと気づき、Patに連絡を取ってみた。 翻訳は歓迎してくれるそうだ。他の日本語翻訳やってるという話も聞いていないとのこと。(もしやってる方いたら連絡ください。) そして、この魅力的な分野への入門をかつてサポートしてくれた教科書を翻訳することにした。

なぜ翻訳をするのか

まず、本を英語から日本語に翻訳する意味はあるのだろうか?

個人的には英語よりも日本語を読む方がかなり早い。 しかし、専門書を読むときはついつい翻訳は避けてしまう。 品質のばらつきが大きく、読みにくいものも多いと感じるのが自分の場合は主な原因だ。

しかし、この教科書は入門書である。 前提知識は中学高校レベルの数学をほんの少しだけである。 (簡単なプログラミング経験があった方が、実感が持てて、有り難みがわかり、楽しく読めるとは思うが。) 日本語で読める無料の教科書は、分野の裾野を広げ、楽しくプログラムを書ける・効率的なプログラムが書ける人を増やしてくれるだろう。

母国語で大学レベルの教科書が読める国は多くない。 より専門的な内容はもっぱら英語で読むことになるのだから、さっさと崖から突き落とせという意見ももちろんあるだろう。 自分自身も大学に入った頃は「英語で読む」のに抵抗があった。(「英語を読む」ところまでは幸い受験で慣れた。) この抵抗を可及的速やかに取り除くのが、アクセス可能な知識を押し拡げるためには極めて重要だろう。 大学生になっても日本語で教科書が読める恵まれた環境が、日本人の英語アレルギーを支えている可能性はある。

しかし、この教科書は専門への橋渡しの、その初っ端に位置している。 この教科書を読むための前提知識は多くない。これに英語を加えるのは、対象読者を制限することになるだろう。 母国語でこのような入門書が読める、少なくともその選択肢があるのは望ましいことだと思う。

この教科書は、300ページ程度ながら、丁寧にゆっくりと、それでいて実用的な題材を納めている。 より本格的な教科書も出版されており、その中には翻訳されているものもある。 内容は素晴らしく、僕自身今でも度々読み返す。 少なくとも自分の持っている二冊は翻訳の質も良かった。(Algorithm DesignIntroduction to Algorithms) ただし、文量は大判1000ページ程度、価格は10000円程度と、気軽なものではない。 こういった専門家向けの入門書や、あるいはより専門的な書籍への橋渡しであるこの教科書を、日本語で・フリーでアクセスできるようにするのがこの翻訳の目的である。

Ruby版の開発

もう一つやろうと思っていることがある。

現在ODSには擬似コード・C++・Java版がある。 日本語版のサンプルコードはRubyで書こうと思っている。

自分がはじめて触ったプログラミング言語はRubyで、今でも一番愛着を持っているのはRubyである。 昨年Google Summer of Codeで、Rubyの人たちにRubyの中身をいろいろ教えて頂き、とても楽しかったのでその恩返しをしたいという気持ちもある。

というわけで、Ruby版を開発する予定だ。 まずは本文を訳すのに集中することにしたので、ひとまず擬似コードを入れている。 日本語版で上手くRuby版が書けたら、英語版の本家への逆輸入もしたいと思っている。

スケジュール

一ヶ月ほど翻訳作業をしており、現在14章中の9章を翻訳している途中である。 今のところ予定通りに進行していて、このままスケジュールに沿えば7月20日に(試訳が)完成することになっている。

日本語版のビルドやRubyの擬似コードの開発まで含め、8月前半にリリースしたいと思っている。

ご協力のお願い

先に述べたように、翻訳はしばしば読みにくくなってしまう。 本書がそうなるのはもちろん本意でない。 より良いものを公開できるよう、この教科書の意義に共感して頂ける方の支援を募りたい。

翻訳作業は既に中盤に差し掛かっており、苦でもないためこのまま自分が行えると思う。 しかし僕は翻訳の専門家でもないし、英語に特別な強みを持っているわけでもない。 試訳も限られた空き時間で、まずは完成させることを目指し進めている。 そのため、初稿の品質は必ずしも高くはないと思う。 そこで教科書の品質を高く保つためのご協力いただければと考えている。

次のような3種類のやり方を考えている。

  • 気軽なフィードバック:GithubからでもメールでもTwitterでも、誤りの指摘や、修正案などを送っていただきたい。
  • 校正・校閲・査読:章単位での通読をお願いし、校正・校閲・査読いずれの形でもまとまったフィードバックをお願いしたい。上の気軽なフィードバックとくらべて、まとまった時間を投資していただける方向けの選択肢である。
  • 校正・校閲・査読のための資金援助:これらの作業を依頼するための資金援助を募りたい。これはクラウドファンディングを利用することを考えている。直接的な支援のみならず、SNSでシェアもぜひお願いしたい。

2つ目と3つめの方法で、全体を校正・校閲・査読していただければ、一定の品質保証になるのではないかと思っている。

ご協力頂いた方々には本書の謝辞でお礼を述べさせていただきたい。(クラウドファンディングで、広告権売るのはどうかなぁとか。未来のプログラマーの卵たちがはじめに読む本に広告打てるの結構アツくないですか?)