JavaScript, Java, Pythonの思想を調べた

Tech

記事を書こうと思った背景

「どのプログラミング言語が好きですか?」
2度めの転職で面接官に何回か聞かれたことだ。

正直、今まで自分は好きとか嫌いとか考えたことがなかった。
機械学習がしたいならPython、フリーランスになりたいならJavaかPHP※、ゲームが作りたいならC#というように、「目的や環境に応じて変える道具だよね」という認識だった。
※プログラミング言語別 案件ランキング | レバテックフリーランス版

「あんまり好きとか嫌いというほど、言語について考えてないかもしれません。。。」
と、回答していつも面接官を困らせていた。

しばらく経って、晴れて志望する起業の内定を獲得し、次の職場でPythonを主に使うことを知った。
復習が必要そうなので、パーフェクトPythonを読み始めてみた。
冒頭で、Pythonには「Beautiful is better than ugly.」に始まる19行の文で構成されたThe Zen of Pythonという思想があることを知った。

思想の必要性を改めて考えてみれば、
目的を叶えるための言語としての機能と、文法や書き方は関係が無く、そのシンタックスを決めるには思想が必要なことに気づいた。

例えば、同じ for文でも、JavaScriptとPythonでは書き方がぜんぜん違う。

for(let i = 0; i < 10; i++) {
    //処理内容
}
for i in range(10):
    //処理内容

当然ながら、これらのシンタックスを決定づけたのは実装目的の機能ではない。
「ブラウザで実行するからセミコロンを使おう」だとか考えるはずはないのである。
きっとPythonの開発者は、「simple is better than complex」という思想に基づいて、「もっと簡単に書けるようにしようよ」という気持ちでシンタックスを決めたのだと思う。

というわけで、他の言語はどうなんだろう。今まで使った言語について調べようと思ったのが記事を書くきっかけである。

Python – 美しさ

冒頭でも話したので、結論だけ書く。

The Zen of Pythonの最初に記載された哲学は「Beautiful is better than ugly.」である。
Pythonが美しいかどうかはさておき。

JavaScript – 自由

ECMA Script 2019のLanguage Specificationには特に記載はなかった。
支持を集める個人からの回答は、Quaraに見つかる。

最も参照されているいくつかの回答を見ると、Freedom という言葉が多く見つかる。
もともとweb上で、ちょっとした機能を実現するために生まれたJavaScriptは、柔軟で簡単に書けることが要求されたのかもしれない。
一部のシンタックスは、JavaやCに倣ったものになっている。

Java – ???

コードを読めばわかるが、シンタックスはC言語に近い。
シンタックスを決める思想は特に見つからず、Write once, run anywhere という有名なフレーズを筆頭として、機能によりアイデンティティを確立している感がある
必ずしも思想が自明なわけではない、ということがわかっただけでも収穫である。

反省

複数の言語を調べてみたが、全体的に明確な差異がなく、ぱっとしなかった。
機能として似通ったものを提供している言語の方が比較としては面白そうだ。
Angular, Vue, Reactを比較した記事みたいなものを書きたかった。。。

Tech

Posted by kyogom