友人と会話していた流れでプログラミングの話になった時のこと
プログラミング言語って何が違うの?って聞かれたので、プログラミングに触ったことがなくても分かるように説明してみたんです。
感覚的に分かりやすいのは女性に例えることかなと思って話してみたら意外と好評だったのでちょっと残しておきます。
個人的に使い慣れているFortranとPythonで比べました。
Fortranは重い女
Fortranはとにかく古風、古臭い、融通が利かない重い女。
書く時の約束事が多い。
「これは整数です」「これは文字です」とか先に説明してあげないと受け付けてくれない。
(デートプランとかいちいち説明してあげなきゃいけない)
「このコードは、私のルールとは違うからやらない」って動いてくれない。
(簡単にヤラしてくれない)
ただ、誓約が多い分プログラム上で入ってはいけない値が入るみたな誤作動は少ない真面目な子ではある。
Pythonは都合のいい女
Pythonは都合いいし、付き合いやすい女。
意外と思った通りに書いて何とかなる。
とりあえず「xに10入れといて」って頼むと「はいわかりました、整数の10ですね」って勝手に整数って判断してくれる。
(Fortranとは大違い)
コードがどこかで間違いていても動いてくれる。
(簡単にヤラしてくれる)
途中で間違いのコードにたどり着くと止まってしまう。
なんやかんやでコードのルール的には合ってる状態にして動かしてみると、結果がおかしいみたいなことはよくある。
(途中でおかしな値があっても気にしないで突っ走ってしまう。)
別の子と付き合う時の話
重い女(Fortran)から都合のいい女(Python)は簡単に慣れる。
都合のいい女(Python)から重い女(Fortran)は勝手が違いすぎて大変。
重くてめんどくさい女と付き合っておくとその後は楽だよねってこと。
ちょっと真面目な話
一応どれだけめんどくささが違うか簡単な例で説明しておきます。
xが最初は0、1~10の整数を順番に足していく。
これだけの処理でかなり違います。
Fortranだとこんなに長い。
[fortran]
implicit none
integer x,i
x = 0
do i = 1, 10
x = x + i
enddo
write(*,*) x
stop
end
[/fortran]
Fortranの表示に対応してなかったのでご勘弁。
まず、xとiが整数だよって伝えないとダメ。
ループ(繰り返しの処理)が終わるところもenddoで教えないとダメ。
プログラムの終了もendで言わないとダメ。
ほんとに面倒
x = 0 for i in range(1, 11): x = x + i print(x)
チョーすっきり
整数だよとか言わなくてもいい。
ループのお終いも要らない。
コードがなくなったらプログラム終了。
シンプル
ただ、この程度の簡単なプログラムならPythonいいじゃん!と思えます。
しかし、Fortranのような堅苦しい書き方の方が安全なプログラムにはなりやすいです。
(整数って宣言すると実数や文字は入力できないから、型がいつの間にか変わっているとかはない)
重い女も意外といい所はある。
Fortranを先に勉強しておくとPythonは「これ書かなくていいんだ」ってすごく簡単に感じます。
逆にPythonが先だと「あれもこれも書き足さなきゃいけない」ってルールが増えて大変だと思います。
まとめ
私にとっての最初の言語はFortranだったので他の言語はスーッと入ってきます。
htmlやcssとか書いてる通りじゃんみたいに思ってしまった。
(そもそもマークアップ言語だし)
ウェブスクレイピングする時にチラッと調べて「そんなもんね」って感じ。
これからプログラミング言語を勉強する人へ
早い時期にめんどくさい女と付き合っておくのも悪くないよ。
(他にもCやJavaも面倒だよ)