Programming and Writing

Salvatore Sanfilippo

プログラミングと執筆

一年前、プログラマとしての生活をいったん休止し、小説を書き始めたとき、私はこの新しい営みがそれまでの仕事とは根本的に違うものだと錯覚していた。言葉の奔流を書き、そしていっそう多くを書き直した今、むしろ逆だと確信している。大規模なシステムをプログラミングすることと、小説を書くことには、多くの共通点があり、プロセスもよく似ているのだ。

両者に最も分かりやすい共通点は、どちらも何かを「書く」行為だということだ。コードは自然言語で綴られる文章ではないが、そこにも文法というべき固定的な規則があり、多くのプログラマが自然だと感じる書き方もあれば、形式的には正しくても理解しづらいと感じられる書き方もある。

しかし、両者にはもっと深いところでのつながりがある。優れたプログラムも優れた小説も、局所と全体の両方がうまく機能して初めて成り立つものだ。良いコードは、一つひとつの文が読みやすく適切に書かれている必要があると同時に、プログラムの各部分が互いに独立し、一貫した設計のもとでクリーンに連携しなければならない。良い小説もまた、ミクロとマクロという二つのスケールで成功する必要がある。一文一文がよく書けていなければならないし、全体の構造や各部分の関係性もまた決定的に重要だ。

もう一つ、構造とは別の共通点は、どちらに取り組むにも必要な推進力にある。成し遂げるには前進しなければならず、前進するには継続しなければならない。プログラムも小説も、ひとりでに書けてしまうわけではない、まだ少なくとも、という点では誰もが一致するだろう。コードを書いてきた二十年は、この点で私を大いに助けてくれた。毎日座って書き続けて初めて物事は進むのだとわかっていた。一日は百語、別の日は二千語、しかしページに何も書き込まない日は稀だ。そして、大きなシステムの単なる「埋め草」ではなく、自分自身の創作物としてコードを書いたことがあれば、プログラミングにもスランプがあることを知っているはずだ。違いがあるとすれば、多くの人にとってプログラマはエンジニアなので、書けなければそれは怠惰と見なされることだ。同じ怠惰も、相手が芸術家であれば、創造過程の魅惑的な一部という姿をまとう。

違いについて。

執筆とプログラミングの最も鋭い違いは、小説は一度書き上げ、推敲し、完成させてしまえば、基本的に不変のまま残るということだと考えている。数年を経て自分の小説に立ち返り、いわばバグを修正した版を出す作家もいるが、それは稀であり、起きたとしても一回限りのことだ。一方コードは時とともに進化し、しばしば複数の人手によって、絶え間ない変更の流れに晒される。この単純な事実が、二つのプロセスに深い影響を及ぼす。プログラマは、システムの最初のバージョンはかなり不完全でも構わないと考えがちだ。どうせ後で改善する時間があるのだから。一方で作家は、一つの小説につき弾は一発しかないことを知っている。だからこそ文章を書くことは、その大半が書き直しという行為になる。文を、章全体を、不自然に響く対話を、時に二度、三度、あるいは十度も書き直すのだ。

この点において、プログラミングは執筆から学べることがあると思っている。新しいシステムの核となる最初の部分を書くとき、まだ作者が一人で孤立し、何でもできる段階では、彼女はその最初の核こそが唯一の弾だと思い込むべきなのだ。システムの創生期に、この原始的なカーネルを最良の設計にたどり着くまで何度でも書き直すべきだ。私の仮説は、この初期の設計がその後の展開を大きく規定するということだ。優れた初期構造を持つものを有機的に成長させれば、たとえ最初の創造から何年も経ち、たとえ当初の核が将来システムが持つことになる膨大な質量のほんの一部に過ぎなかったとしても、より良いシステムになる。

興味を持ってくださった方へ、私のSF小説について近況を少し。何度もセルフレビューを重ねたのち、原稿を編集者のジュリオ・モッツィ(Giulio Mozzi)に送った。数週間以内に彼から修正提案が届く予定だ。それを踏まえて新たに推敲を重ね、一、二か月以内に小説を完成させたい。そうなれば、ようやくイタリア語版を出版できる。同時に、完成した小説はアメリカ在住の翻訳者に送られ、彼女の翻訳が終わり次第、英語版も出版される予定だ。長い旅路だが、心から楽しみながら歩んできた道のりだ。

原文は Salvatore Sanfilippo により に公開されました。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。