そりゃ、上から順番に実行で条件分岐とループがあって
マシンの低レベルの都合で変数に型がある。までは
50年前からいっしょだからな。
Cは「ブロック化しねぇとスパゲッティでどうしようもなくなるわ!」で
「いいか?このブロックを"関数"と考えるんだ!」で作られた言語だし
C++は「このブロックを再利用するんだよ!そうすれば何度も作り直さなくていいだろ!」だし
Objective-Cは「ブロックに"こうしろ"って命令を送ってそれに反応するように作れば後の取り回しがチョー楽」だし
Javaはそれらからいいとこ取りして「ハードの制限から一歩引けば汎用性上がるよね」だし。