元法学部プログラマーが感じた、法律とプログラミングの共通点

はじめに


どうも、popです。
今回は法学部卒業の私がプログラミングをしている中で、「あれ?これって法を勉強するときと近いかも‥」と思ったことを書いていきます。

 

法を学習する際の特徴

まず法を学習する際の特徴をまとめてみます。
(なるべくかるーく)


法律の場合、そもそも法律を適用していいのかを判断するために、「要件」(構成要件)というものが定められています。


そして、その要件を満たした場合のみ法律に則って何らかの請求や告訴などをすることができます。

 

例えば詐欺罪の場合だと(読みとばして頂いて構いません)、

・人を騙す行為である(欺罔行為)こと。
・相手に勘違いをさせたり、事実とは違った認識もたせること。
・相手を騙したことにより金品をもらうなどの利益を享受すること。

・騙す行為と利益を得たことの間に因果関係があること

という要件があり、これを満たした場合に詐欺罪を主張できるのです。

 

何が言いたいのかというと、非常に論理性が重要視されるのです。

 

そして、その要件を満たしているかという点や、事実認定などはかなり厳密に行われます。
まぁこれらは厳密に行なってもらわなければ困るものなので、当たり前と言えば当たり前なのですがね。

プログラミングを学習する際の特徴

次にプログラミングを学習する際の特徴をまとめてみます。


プログラミングは1行でも足りなければ基本的に正常に動きません。(コメントアウトしてる行とかは別ですが)
そして、1文字スペルが間違っていても正常に動作しません。


つまり、非常に正確性を求められます。

 

そして、プログラミングはなんらかの処理や文字の表記をバトンのように受け渡して次の処理に進んでいくことが多いです。

 

例を挙げると(読みとばして頂いて構いません)、変数で何かを定義しておいて、それを引数として関数に入れたり、コールバック関数として関数を引数的に使うといったことです。

 

つまり、論理性や全体の整合性が求められるのです。

(プログラミングでは論理的に削除するといった処理もありますね)

 

法とプログラミングの共通点とは
それぞれの特徴をまとめてみました。
(それぞれの専門用語などを使っているので分かりにくい点も多々あると思います。すみません(>_<))


両者の特徴を考えると、両者とも「論理性」や「正確性」が重要であることが感じられると思います。

私は法とプログラミングのものを全くの別ものと考えていましたが、ある程度法とプログラミングを学んだ者としての感想は、「あ、本質的な性質って実は近かったりするのかも」です。

 

まぁ若干こじつけている部分もありますけどね苦笑

さいごに

今回は久々に法について考えてみました。


現在法学部の方、または法学部を卒業された方、この機会にプログラミングに取り組んでみると面白いかもしれません。
(その逆も然り)

 

最後までお読みいただきありがとうございました。
今後ともよろしくお願いします!