我、京大生ぞ

現役京大生の雑記。メインテーマは大学受験とプログラミングと英語と京大の日常

ことわざをプログラマっぽく言い換えてみた


こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。
 
 



コチラの記事が理系だけじゃなく文系にも好評だったので、ことわざをプログラマっぽく言い換えてみた というスピンオフ作品を作ってみました。


文系でもプログラミング未経験でも雰囲気で楽しめると思います!
 
 
目次

 
 



青は藍より出でて藍より青し


」って曖昧な表現で気になりません?


「青」と表現できる色って何種類もあるけどどれなんだよ!(カンニング竹山風ボイス)って思いません?


プログラマなら色をHTMLのカラーコードで言い換えたくなりません?なりますよね。


青 → この色 →HTMLのカラーコードで表すと #0000FF




青は藍より出でて藍より青し

#0000FFは藍より出でて藍より#0000FF



類題:縁の下の力持ち、朱に交われば赤くなる をプログラマっぽく言い換えよ。(解答は読者の演習課題とする。)
 
 

海千山千


コンピューターが10進数の千を理解できますか?できませんね。コンピューターが理解できるのは2進数のみです。プログラマーはまず最初にこのことを習うと思います。


千(1000)を2進数に直すと・・・・・・1111101000です。




海千山千

11111010001111101000


 
 
※イメージ
f:id:a86223990:20180614171140j:plain

終わり良ければ全て良し


終わり良ければすべて良し→正しい結果が出力できれば全て良い→返り値が正しければ、関数の中身にバグがあっても全て良し
 
  



終わり良ければ全て良し

返り値良ければ 関数にバグあっても良し


 
 

腐っても鯛


【本当に立派なものや良いものは、少しぐらい古くなってもそれなりの値打ちがあるものだ。】という意味のことわざです。


これってプログラマの世界で言えばなんでしょうか?そうですアレです。


難しく書きにくい。ライブラリも充実していない。にも関わらず、メモリ割り当ての柔軟さと実行速度から未だに需要があるあのプログラミング言語です。


そう、


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

11111010001111101000

返り値良ければ 関数にバグあっても全て良し

腐ってもC言語

全角スペースバグの元

二度あるバグは三度ある

誤差も積もればバグとなる

Python2系Python3系

function( True ){ return False; }


 
 
追加してほしいことわざ、訂正、マジレスなどありましたらコメント欄までお願いします!