こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。
コチラの記事が理系だけじゃなく文系にも好評だったので、ことわざをプログラマっぽく言い換えてみた というスピンオフ作品を作ってみました。
文系でもプログラミング未経験でも雰囲気で楽しめると思います!
目次
青は藍より出でて藍より青し
「青」って曖昧な表現で気になりません?
「青」と表現できる色って何種類もあるけどどれなんだよ!(カンニング竹山風ボイス)って思いません?
プログラマなら色をHTMLのカラーコードで言い換えたくなりません?なりますよね。
青 → この色 →HTMLのカラーコードで表すと #0000FF
青は藍より出でて藍より青し
↓
#0000FFは藍より出でて藍より#0000FF
類題:縁の下の力持ち、朱に交われば赤くなる をプログラマっぽく言い換えよ。(解答は読者の演習課題とする。)
海千山千
コンピューターが10進数の千を理解できますか?できませんね。コンピューターが理解できるのは2進数のみです。プログラマーはまず最初にこのことを習うと思います。
千(1000)を2進数に直すと・・・・・・1111101000です。
海千山千
↓
海1111101000山1111101000
※イメージ

終わり良ければ全て良し
終わり良ければすべて良し→正しい結果が出力できれば全て良い→返り値が正しければ、関数の中身にバグがあっても全て良し
終わり良ければ全て良し
↓
返り値良ければ 関数にバグあっても良し
腐っても鯛
【本当に立派なものや良いものは、少しぐらい古くなってもそれなりの値打ちがあるものだ。】という意味のことわざです。
これってプログラマの世界で言えばなんでしょうか?そうですアレです。
難しく書きにくい。ライブラリも充実していない。にも関わらず、メモリ割り当ての柔軟さと実行速度から未だに需要があるあのプログラミング言語です。
そう、
C言語
です。
腐っても鯛
↓
腐ってもC言語
口は災いの元
プログラマーでいう「災い」とは「バグ」です。
初心者が必ずハマるバグとは?そう、身に覚えのない「全角スペース」です。
プログラムっていうのは文字列以外基本半角で書きます。ソースコードに全角が混じってるとバグを吐くのです。
そこで厄介なのが「半角スペース」と「全角スペース」、「 」と「 」です。
目視でほぼ見分け不可能なので、エディター(プログラムを書くのに便利なツール)でデバックしますが、たいていのエディターでは見つけてくれません。
というわけで、見分けほぼ不可能なのに目で1行1行チェックする羽目になって、時間を溶かします。
口は災いの元
↓
全角スペースはバグの元
別解:マクロ(#define)はバグの元(C言語)、タブはバグの元(Python)
二度あることは三度ある
プログラムを書いてると、二度あるバグは三度あります。というか、N度あるバグはN+1度あります。プログラミングとは無限に出てくるバグとの戦いなのです。
二度あることは三度ある
↓
二度あるバグは三度ある
塵も積もれば山となる
塵 → 誤差 と言い換えてみましょう。
無理数や無限小数などの「無限に続く数」(例:π = 3.14159265.....)はコンピュータでは扱えないので、必ず有限桁で打ち切る必要があります。その時に必ず出るのが誤差です。
物理シュミレーションや数値計算をプログラミングでやる人は、この誤差と戦うハメになります。
一つ一つ見れば本当にゴミのように小さい誤差でも、for分内で積み重なると、無視できないくらい山のような大きな誤差になることがあって、気をつける必要があります。
塵も積もれば山となる
↓
誤差も積もればバグとなる
似て非なるもの
プログラマー界隈で「似て非なるもの」代表といえば、Python2系とPython3系です。
Pythonという言語はとても書きやすく、初心者でもバグの少ない言語です。かなり快適にプログラミングできますが、Python2系とPython3系の互換性(相互の関連)が全然ないのが、玉にキズです。
名前はほぼ一緒なのに、悲しいほど互換性がありません。初心者は「似てるし一緒だろwww」と思ってダウンロードしてみたら全然違うものでバグとの戦いに明け暮れた、なんてあるあるです。
似て非なるもの
↓
Python2系とPython3系
噓から出たまこと
噓から出たまこと → False から出た True → Falseを引数として、Trueを返す関数 → function( True ){ return False; }
function ( true ){ return false; }
噓から出たまこと
↓
function( True ){ return False; }
ことわざのまとめ
#0000FFは藍より出でて藍より#0000FF
海1111101000山1111101000
返り値良ければ 関数にバグあっても全て良し
腐ってもC言語
全角スペースはバグの元
二度あるバグは三度ある
誤差も積もればバグとなる
Python2系とPython3系
function( True ){ return False; }
追加してほしいことわざ、訂正、マジレスなどありましたらコメント欄までお願いします!