[日文]知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

劉敏ituring發表於2016-06-08

結城浩(Hiroshi Yuki)

1963年出生,居住於東京都武藏野,有兩個兒子。職業為程式設計師(應該是自由職業)、技術作家、虔誠的新教教徒,對傳教很熱心。喜愛語言文字、讀書(宗教、小說、科普類)、巴洛克音樂。

[日文]知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

結城浩先生自己設計的“Thread妖怪娃娃”,作為自己的標誌。

1993年出版了第一本書《C語言程式設計精華》,至今為止共計出版圖書44種(含修訂版),主要包括:

  • C語言:8種

  • Perl:4種

  • Java:11種

  • 密碼學:3種

  • 數學:3種

  • 《數學女孩》系列:12種

目前依舊在寫網路連載《數學女孩的祕密筆記》,連結地址https://cakes.mu/series/339,這個系列已經出了7本單行本。

2013年至2015年,在《Software Design》雜誌上連載專欄《再發現的思考法》,從一些技術術語中找到新發現,連結地址http://www.hyuki.com/discover/

編者的話:

結城浩先生接到圖靈訪談的邀請後,第一時間接受了訪談。回答讀者提問的過程中,還不時就訪談問題進行溝通交流,讓人感到滿滿的認真負責。編者認為,結城浩先生一定是一位漫畫裡走出來的、溫暖的人吧~

實在看不下去,回中文版

本の執筆・出版について

結城さんは今までの20年の間、40冊以上の本を出版しましたが、平均的に言えば毎年2冊が出版されることになります。他にWEBコラムやメールマガジンなども多數執筆しています。この驚くべき「生産力の高さ」の祕訣とはなんでしょうか?

祕訣というものは特にありません。私はもともと文章を書くのが好きで、自分が考えていることを文章の形にまとめるのが好きなのです。「たくさん書こう」や「生産力を高くしよう」と特別に意識せずに、好きなことを続けているだけですね。また、「飽きずに同じことを長期間継続する」と「飽きてきたら思い切って新しいことをする」という一見矛盾した性格も功を奏しているかもしれません。

ホームページには「次の本はいつでも執筆中」と書いてありますが、今執筆中の「次の本」について、少しでもいいですが教えてもよろしいでしょうか?ご著書の中ではまだ中國に出版されていないものがたくさん殘っていますが、次に中國の読者たちに勧めたい本があれば教えてもよろしいでしょうか?

2016年6月現在、執筆しているのは2冊あります。「數學ガール」シリーズの第6弾となる『數學ガール6』と、「數學ガールの祕密ノート」シリーズの第8弾になる『數學ガールの祕密ノート/やさしい統計』ですね。祕密ノートの方が先に刊行になると思います。「數學ガール」シリーズの順番としては『數學ガール/ゲーデルの不完全性定理』が順番としてはお勧めですが、「數學ガールの祕密ノート」シリーズもお勧めできます。「數學ガールの祕密ノート」シリーズはやさしめの數學を軽妙な対話で描いたものですし、「數學ガール」シリーズとは獨立にどの巻からも読み始めることができるからです。中國のたくさんの読者さんに私の本を読んでいただけるのはたいへんうれしいです!

ご著書の中には、C・Javaプログラミングのような技術的な本がありながら、「數學ガール」のような小説もあります。この二つのスタイルについて、書いたときの気持ちはどこまで違うものなのでしょうか?個人的にはどのような本を書くのが好きでしょうか?

私の中では、両者に大きな違いはありません。私は「述べる価値があるけれど、ややこしい事柄」をわかりやすく表現して伝えることが好きなのです。プログラミングであれ數學であれ、それに違いはありません。ただし、數學ガールの場合には私自身が語るというよりも、登場人物が語るという方が適切かもしれませんね。どのような本を書くのが好きか?私がこれまで書いてきた本はすべて好きで書いてきています!義務感で書いた本や、命じられて書いた本は一冊もありません。

暗號技術について

「暗號技術入門(第三版)」は間もなく中國でリリースすることになりますが、今回の見所についてご紹介いただけますか?今回の改訂について、面白い出來事やネタとかも教えていただけますか?

今回の第三版のポイントは、全體的に情報をアップデートしたことに加えて、SHA­3のコンペティションとSHA­3(Keccak)の構造、POODLEなどSSL/TLSへの各種攻撃、認証付き暗號、楕円曲線暗號のやさしい解説、そして暗號技術がどのように組み合わされてBitcoinを作り出しているか。そのようなところがポイントになります。第三版が発売されると、日本でもたいへんな人気になりました、ある書店では一般小説に混じってランキング二位に入るほどでしたよ。

「暗號技術入門」には、Phil ZimmermannのGPGによって「暗號の自由」に関して激しく議論されたことが紹介されました。今でも「暗號はテロリストの手助けになり得るため兵器として厳しく管理すべきだ」と思っている人(または政府)がたくさんいますが、結城さんのお考えはなんでしょうか?最近中國は「北京・上海間の量子暗號通訊回線が今年中に利用可能になる」と発表しましたが、この「絶対に破れない」と言われる暗號技術の実用化によって、これまで以上の爭論や懸念が勃発することになるのでしょうか?暗號技術の未來とはどのようなものなのでしょうか?

暗號技術の未來を語るほどの知見は私にはありませんが、現在の段階であっても大切なのは「暗號」というよりも「認証」です。もっというならば「信用」が問題になるでしょう。誰かが何かを主張しているとき、その「誰か」はほんとうに自分が思っている人なのかどうか。自分が取引しようとしている相手は、ほんとうに自分が思っている相手なのか。破れない暗號というのは魅力的なフレーズですが、もしも機密性に限るなら、技術というのは私たちが期待しているセキュリティのほんの一部であるという認識が必要だと思います。テロリストは恐い存在ですが、それでは國家は恐くないでしょうか。テロリストは信用できないとして、國家は信用できるでしょうか。この領域に入ってくると、すでに技術からはだいぶ離れた話題に なってきますね。いずれにしても、私たちひとりひとりが技術をよく理解することが大切だと思います。

プログラミングについて

プログラマーとしての結城さんは、日本でかなり流行っているWikiソフトを開発したという話も聞いておりますが、このソフトを開発する経緯などについて教えていただけますか?他にもどんなソフトを開発したのでしょうか?

日本でたいへん広く使われているPukiWikiというWikiシステムがあります。この開発には私自身はまったく関わっていません。ただ、初期のPukiWikiは、私が開発したWikiシステムであるYukiWikiをもとにして、PerlからPHPに移植されて生まれたものですね。YukiWikiを作ったのは、Wikiというものを知って「自分で作ってみたい」と思ったからです(単純ですね)。その他に、私自身が個人で開発したソフトとしては、MakeWebというプレーンテキストをHTMLやLaTeXに変換するソフトがあります。これは自分のWebサイトを構築するために作りました。現代だったらMarkdownを使うでしょうけれど、私がMakeWebを作った1996年(!)には存在しませんでしたから。それ以外にもツールはたくさん作りましたが、ほとんどは自分の毎日の作業を楽にしたり、執筆の助けとなるような小さなスクリプトが多いです。

日本のプログラマーは普通どんな日常を過ごしていますか?開発プロジェクトの中で私的なことを考えず仕事だけに集中するのが一般的だと聞いておりますが、本當でしょうか?仕事と生活のバランスを取ることについて、結城さんのご経験・アドバイスを教えていただけますか?

「日本のプログラマ」といっても、その業種によってワークスタイルは非常に異なると思います。ほとんどの時間を會社で過ごす人もいますし、業務とプライベートのバランスをうまくとっている人もいます。私自身が會社に屬してプログラムを書いていたのはもうずいぶん昔のことですが、確かにその時代には労働時間はたいへん長く、でも自分自身でもどうにもできず悩んでいたことも多かったです。自分自身が若くて幼かったので、自分の仕事のありかたをうまくマネージできなかったともいえます。アドバイスできることはあまりありませんが、そもそも「仕事と生活のバランスを取る」というのは簡単なことではないと思います。そして、自分なりの考え方をしっかり持つ必要があります。誰かがこう言ったからこうしなければな らない、というのは長期的にはうまくいきません。なぜなら、生活と仕事というのは絡み合いながら、自分の価値観と密接に関係しているからです。知的活動をする人の場合には特にそうです。単純にプライベートの時間を多くすればいいというわけでもありませんし、そもそも「仕事と生活」のように二つのものとして認識するのが正しいのかも疑問です。難しいことに取り組んでいるということと、自分なりの方法を考える必要があると思うのが大切でしょう。仕事もプライベートも両方とも大切な人生の一部なのですから。

新しい技術がいっぱい出てくる一方、自分がどれも深く理解していないことに焦りながら、この技術発展が早い時代に見捨てられることを恐れるプログラマーがたくさんいますが、結城さんは似たような気持ちを持ったことがありますか?時代に見捨てられないようどう行動すべきかについて、ご経験やアドバイスを教えていただけますか?

「プログラマの心の健康」というWeb記事を公開しています。http://www.hyuki.com/kokoro/ そこの中にまさに「情報不安」という話を書きました。新しいものがどんどん出てきて不安になるという気持ちを書いたものです。そこに書いたアドバイスは「そこにこそ、飯のタネがある」という考え方です。技術 発展が早いことを感じているのは、全員です。ですから、そこに、自分の活躍できる部分があるのではないかと思います。

數學について

結城さんが書いた數學の本には、面白い問題の解き方がいっぱいあって、読者たちから「こんな解き方があるなんて自分ならとても思いつかない」というコメントもありました。數學の勉強には「生まれつきの才能」とか「センス」とかがかなり関わるのでしょうか?結城さんご自身が數學を勉強した際には、困難や喜びなど読者たちに共有したい経歴があるのでしょうか?

ある程度の好き嫌いや、得意不得意はあるでしょう。そしてもちろん最先端の數學をやっている人にはある程度の才能やセンスも必要でしょう(ちなみに、私は數學者ではありません)。しかし、數學の本に書かれているような內容は、膨大な時間を掛けて各時代の最高の頭脳が考えてきたことが書かれているわけですから、そこに書かれている內容を見て「自分には思いつかない」と嘆く必要はないと思っています。私の本に書かれているものも、その表現方法はさておき、本質的な內容は參考文獻などに書かれているものがほとんどです。私自身は自分の本を書くときに本をたくさん読み、自分の頭で考え「なるほど!」と感動したものを文章に書くことが多いです。私の感じた喜びや感動を読者にできるだけ伝えたいと願っているから です。

「數學ガール」が描いた高校生活は苦しい勉強ではなく、數學の魅力を追う青春の日々に満ちています。このような「青春物語」の形で數學を話す本を書いたのはどのようなきっかけや思いによるものでしょうか?「こんなのが教科書だったら數學の成績がとびきり上がったかも」という読者からのコメントですが、もし本當に教科書の改訂に頼まれたら、結城さんならどこから取り組むのでしょうか?他の國に比べて、日本の數學教育は如何だとお考えしますか?

私が數學ガールを書いた経緯については『數學ガールの誕生』という本に詳しく書きました。もともと、數學の読み物を書こうとしたときに、いつも數學が得意な少女のイメージがありました。そこでWebページで數學ガールの原型となる物語を書きました。はっきりとその理由はわかりませんが、私の中では「物語」として、あるいは「対話」として數學を語り合うというスタイルがとても自然なものに感じられるのです。數學物語と教科書では求められる要件が違いますので簡単にはいきません。先生が存在することを前提としている教科書と、自由に読める物語ではその成り立ちが違うからです。他の國の教科書は詳しく知りませんが、日本で使われている數學の教科書は、記述のまちがいや不適切な表現がきわめて少なく、正確さと いう點でたいへん品質が高いと思います。數學教育全般を語るほど私は詳しくはありませんが、數學の魅力が生徒にもっと伝わることで、強い動機付けがなされることを願っています。數學は本來たいへん魅力的な分野なのに、必要以上に嫌われることが多いと思います。

実際のプロジェクトには數學があまり役に立たないと思っているプログラマーがたくさんいますが、一方、KnuthやLinusのような名高いプログラマーたちの中では、數學を精通しないものはほとんどいません。プログラマーとしての結城さんにとって、數學の知識が業務、そして生活に対してどのような働きをしたのでしょうか?

數學の知識が直接的にプログラミングに役立つことは、分野によってはよくあります。たとえば離散數學、集合と論理、位取り記數法の仕組みなどを知らずにプログラミングすることは難しいでしょう。また三角関數を初めとする関數や幾何學や行列や簡単な微分方程式の知識がないとゲームプログラミングは難しいですね。確率や統計の知識がなければ最近流行の人工知能や機械學習について何かを行うことは難しいことになります。しかしながら、數學で學ぶ「知識」だけではなく、數學を學ぶ訓練そのものがプログラミングには役立ちます。なぜなら、現実の事物をモデル化し、抽象的な概念と人工的に作られた表記法のルールによって記述すると考えるなら、數學はプログラミングととても近い知的活動だからです。

今年の一大事として、AlphaGoの勝利が人工知能や機械學習のブームを起こしましたが、これは「プログラマーにとって數學がますます重要になっていく」ことを意味するのでしょうか?數學をもっと勉強したいプログラマーの読者たちに対して、アドバイスを教えていただけますか?

「人工知能や機械學習のブームにより、プログラマにとって數學がますます重要になる!」と簡単に言い切れるかどうかは何ともいえません。プログラマは機能をパッケージングすることがうまいので、人工知能や機械學習を「使う」人向けに適切にパッケージングされたシステムやサービスが増えてくるだろうと思うからです。もちろん數學に精通することが悪いわけではないし、數學が重要ではないといいたいわけではありません。そのときどきの流行とは無関係に數學は重要であると言いたいのです。読者へのアドバイスについては、簡単に書きます。數學、特に數式に対して苦手意識を持ち、毛嫌いするプログラマは多いです。たとえ詳しい理論がわからなくても、數式が書かれていたらそこに目を通す習慣は大事だと思います。普段から、基本的な數學を身につけるように心がけておき、「ここについてはもっと詳しく學びたいな」と思ったときに深く學ぶのがいいと思います。

個人情況について

結城さんはクリスチャンとしても知られておりますが、中國の読者たちはキリスト教について理解が少ない可能性があるので少しご紹介いただけますか?また、信仰・科學・技術の関係について、結城さんのお考えを教えていただけますか?

結城は20代にたいへん個人的に苦しい時期を経験しました。それまでは「人間の力、自分の力で世の中を渡っていける」という傲慢な考えを持っていたのですが、自分の力ではどうにもならない狀況になり、極限まで悩みました。そのころ、聖書に書かれているキリストを神さまと信じ、クリスチャンになりました。それから毎週教會に通い、聖書を読み、神さまを信じる人生を歩んでいます。

私が技術的な本を書いているにも関わらず、キリストを信じる信仰を持っていることに疑問を感じる人は少なからずいるようです。そういう方は、神を信じることを非科學的な行為だと思っているのかもしれません。私の考えでは神を信じることと科學的に考えることはまったく矛盾しません。扱っている範囲が違うことがらだからです。聖書に書かれている神を信じる信仰というのは「私は何のために生きているのか」という問いに光を與えるものです。科學をいくら學んでも、「私」という特定の個人がどうすべきかという答えは絶対に得られません。科學は「世界の謎」を解く助けにはなりますが、「私個人の謎」を解く助けにはならないのです。私は自分の人生がどこから來て、どこに行くのか、その祕密を、信仰を通して學んでいます。

結城さんについてWEBを検索すると寫真が一枚でも出てきません。代わりにいつも「おばけ(?)」のようなアバターを使っている、失禮かもしれませんが、寫真を公開しない理由について教えてもよろしいでしょうか?そして、このおばけのアバターの裡にはどんな意味が込められているのでしょうか?

私は寫真や詳細な生い立ちなどのプロフィールを公開しないで活動をしています。私の寫真の代わりには「スレッドお化け坊や」という自分が描いたキャラクタを使っています。「スレッド」というのは、マルチスレッドプログラミングの「スレッド」です。私が『Java言語で學ぶデザインパターン入門マルチスレッド編』という本を書いたときに、コードを実行する主體としてこのキャラクタを本の中に描きました。それ以降、私自身のアイコンとして使っているのです。私のTwitterのアイコンも、自著にサインするときもこのキャラクタを使います。寫真を公開しない理由というのは、主にセキュリティの面です。あまり積極的に自分のプライバシーを公開するのを好まないということです。

最後にひとこと

いつも結城浩の本を読んでくださり、ありがとうございます。また私の活動に興味をもってくださり、ほんとうに感謝しています。結城はこれからも精力的に楽しくおもしろい本を書いていきたいと思いますので、ぜひ継続的に応援をお願いいたします。

[日文]知名著者結城浩:堅持做一件事而不厭倦,一旦厭倦馬上更換目標(圖靈訪談)

圖靈訪談特約記者: 周自恆, IT、程式設計及自然科學愛好者,資深技術圖書譯者,專欄作者,科研媒體關係戶。 譯有《圖解CIO工作指南(第4版)》《大資料的衝擊》《程式碼的未來》《30天自制作業系統》《圖解密碼技術(2、3版)》家用遊戲機簡史》《有趣的二進位制》等。

更多精彩,加入圖靈訪談微信!

相關文章