2013-10-07

プログラマにとっての法律 (コード) リーディング

ソフトウェアのソースコードを読むことを「コードリーディング」と呼ぶが、元来「コード」と言えば「法典」という意味がある。と、いうことは僕たちが暮らしている社会の「実装」って、少なからず「法律」を読んでみることで何かわかってくるのではないかということを思い、法律を読んでみた。



どの法律を読むか

では「法律を読んでみよう」と思い立ったところで、早速行き詰まることになる。まず、法律というのはどこから手を出していいのかわからない。いきなりポケット六法なんて買ってきた日には読み解く力がなさすぎて挫折することが目に見えている。しかしそれでも僕のような非専門家でも切り込んでいける活路を見出さなければならない。

そこで読んでみたのが『パーフェクト宅建』である。この宅建本は、簡単にいえば「宅建の参考書」で、宅建とはあのユーキャンなどで耳にする「タッケン」のことである。なぜこの宅建本を選んだのかというと、僕が個人的に不動産に興味があったからである (大学時代のゼミの研究テーマが地域社会学で本当に微妙にだが領域が近いというのと、あとちょっと不動産仲介業を手伝ったことがあった)。

やはり法律という専門外の領域に突っ込んでいくのだからそれなりに大変なはずで、そこで僕に味方してくれるのは自分自身の好奇心しかない。だから「モチベーション大事」ということで、自分の興味のある不動産の、その業界では「入門資格」とも言われている (?) 宅建の資格の参考書をチョイスした。

ここで「参考書をチョイスした」というのが実は大切で、大学受験などで経験のある人もいるだろうが、独学で受験してやろうという人たち向けにつくられた参考書というのは本当によくできていて、門外漢が介助者なしに別分野に突っ込んでいく際にうってつけのバイブルになるのである。「宅建業法」や「都市計画法」にダイレクトアタックしなくて本当によかったと思っている。


おすすめのアプローチ

ということで、もし僕のように「法律リーディングしてみようじゃないか」という人がいれば、自分の興味のある分野の法律からアプローチすることをおすすめする。しかし、法律自体をいきなり読むのではなく、何らかの参考書を媒介させることを強く推奨する。そして、もし、興味のある分野で関連する国家資格などがあればラッキーだろう。本当によくできた参考書が複数シリーズででていたりする。


法律とソースコードの共通点

そんなこんなで『パーフェクト宅建』という優秀なアクセサを通じて無事、法律 (コード) にたどり着いたわけだが、「ソフトウェアと法律のコードでこんな共通点があるなぁ」と思ったことをあげておこう。

  1. "Why?" がだいじ

    ソースコードにコメントを書くということはソフトウェア開発者には馴染みのある行為だ。そこで、「コメントには "なぜ" を書け」という助言がある (例えば『リーダブルコード』などに書かれていたりする)。なぜこういう助言がなされるのかといえば、それはプログラム自体で「なにを、なにが、いつ、どのように」ということは書けても、「なぜ」ということを書くのは容易ではないからだ (これはプログラミング言語じたいの記述力が万能でないということの裏返しでもあり、これ単体でもおもしろい研究対象になるだろうが、ここでは本筋からそれてしまうので割愛する)。

    一方、この「なぜ」がだいじだよという話は、法律の世界では「立法趣旨」という言葉で説明されていた。立法趣旨とは、「法律がつくられた目的や背景」という意味で、例えば参考書にも「単なる暗記ではなく、立法趣旨を理解して応用力を身につけよう」みたいなことが書かれているのである。僕はこの立法趣旨という言葉を見たときに思い出したことがある。それは受験生時代にどこかの大学のパンフレットの法学部の紹介に「リーガルマインドが養われます」と書かれていたことだ。それを読んで以来、「妙にあやふやな横文字を使うなぁ、よく分からん」という印象が残っていたのだが、今回僕は法律に触れて、リーガルマインドとはつまり、「立法趣旨を追いかける能力を持った人」のことなんだろうと思った。弁護士などの法律の専門職でも、企業の法務部などでも、法律がつくられた目的や背景をたどることができることが法律のプロフェッショナルとして重要なのだろう。

    これは、現代の法律も不完全で、一般の人が理解できるほどの「記述力」などないのだが、それをプロフェッショナルな人々が補っていこうということで、ちょうどソフトウェアのソースコードにおける「コメント」の存在意義と対比になっていて、とてもおもしろいと感じた。

  2. 命名だいじ

    宅建本を読んでいてびっくりしたのだが、法律では「善意」といえば「ある事実をしらないこと」を意味し、「悪意」といえば「ある事実を知っていること」を意味する。この「法律用語」には、日常生活で僕たちがつかっているような「善意」「悪意」に込められた道徳や倫理といった意味合いは全くない。門外漢からするとこんな命名するのはやめていただきたいところであるが、裏を返せば、法律のプロフェッショナルとなるにはこういった用語を正確に理解して、定義までたどりつくことが求められる。もっと卑近な例で言えば、宅建で合格するにはこういう用語を覚えておかなければならない。ちなみに、善意・悪意の他にも、請負・委任、用役 (使「用」収「益」の省略語)、筆界・境界、など、「可読性の低い」コードが散見された。

  3. 例外処理だいじ

    ソフトウェアのプログラムでは例外処理を記述することによってエラーハンドリングを行うことはは安定したソフトウェアを提供するために重要である。

    法律においてもまた、例外処理が重要である。なぜなら「規則は破るためにある」のだから。債務が履行されなかったときなど、法律は事細かに定めている。実に見事な例外処理である。


ふぅ。感想のまとめとしては「やっぱり法律も "コード" だった」ですかね。