何年かぶりにコーディング(プログラミング)をやって驚いた。真逆だと思っていたフィクションの執筆との類似点を、数多く見つけたのだ。
技術的なバックグラウンドが限られているにもかかわらず、プログラミングの概要や導入に関する文書の編集・翻訳に携わることがあり、そこから自分でも少し触るようになった。とはいえ、もともとは「言語」と名の付くものへの興味から始まったことであり、いつも「これ(プログラミング言語)を自然言語と並列に『言語』と呼ぶのは、なんだかなあ」などと思っていた。そんな大前提で引っかかっていたから、当然、これまでコーディングの分野で何かを成し遂げたことはない。
今回はフィクションを書くようになって以来、初めてのトライだった。前回までと異なり、常に生成AI/LLMがそばにあり、コンセプトの整理や設計の手助けはもとより、エラーと修正について事細かに(しかも叱咤や嫌味なしに)指摘してくれるのは、感動的ですらある。
「もしかしてこれなら、自分だけでシンプルなアプリ制作を完遂できるのではないか」
そんな考えが頭をよぎりつつ、コツコツとプログラムを書き直していて、気づいた。「これ、フィクションを書くのと全く同じだ……」と。
まず、コンセプトと目的を具現化するために全体を設計する。そして、それを動かすための基本構成を考える。これはフィクションにおいてテーマを決め、全体像をイメージし、章構成を練るのと、基本的には同じ作業だ。
コードの記述方法や順序には無数の選択肢があり、どれをどう記述すれば最も美しいか、結果的にユーザーや読者に伝わるかという点も、自然言語で書く作品と変わらない。
特定の箇所の設定や展開に修正を加える際には、その影響が波及する他の箇所を探し出し、そこにも適切かつ慎重な修正を施さなければならない。生成AI/LLMをどこまで、どう使うべきかという内なる葛藤も、実によく似ている。
書き方は千差万別だが、全体の論理的整合性や文脈が、最終的な精度の決め手になることも共通しているのではないか。
そして何より、コーディングには終わりがない。一旦コードを書き終えたと思っても、必ず小さなバグを見つけたり、どうしても書き直したい記述が出てきたり、構成を再整理したくなったりする。これもまた、フィクションの執筆(ひいてはあらゆる創作)と全く同じだ。執筆には終わりがなく、常に改稿の誘惑に駆られる。
まさに、ダ・ヴィンチの「Art is never finished, only abandoned(芸術に完成はない、中断されるだけだ)」という言葉や、宮沢賢治の「永久の未完成これ完成である」という格言の世界か。コーディングの完了と脱稿は、諦めた時、あるいは気力が尽きた時であるという点も、共通しているのかもしれない。
自分だけでアプリ制作などを成就させることは永遠にないかもしれないが、最近は、プログラミング言語を「言語」と呼ぶことは、それほど間違いではないような気がしている。
Read English version note で読む