JavaScript・Node.js が他のプログラミング言語より優れていると思う点

僕は JavaScript が好きだ。そして、単に好みなだけでなく、他のプログラミング言語と比べて有利な点も多いと思うので、選びやすいと思っている。

今回は、JavaScript・Node.js が他のプログラミング言語より優れていると思っている点を挙げてみる。

Node.js を使わない JavaScript のメリット

Node.js のメリット

「Ruby、Perl、PHP なんかもシングルファイルでコンパイルなしに動かせますけど?」って言われそうだけど、これらの言語は実行環境・開発環境をインストールするのに若干手間がかかる感じがある。また、Windows でも Mac でも関係なく、バージョンアップすると実行環境が壊れてちょっとしたトラブルが起こることが多いなと感じている。

それと比べて、Node.js は (v5 あたりまでは微妙だったが) v7 以降くらいなら大体同じように動くようになってきたから環境を選ばない。バージョンアップする時も、Nodist や Nodebrew を経由して入れていれば、他の言語における anyenv 系よりもトラブルなくアップデートしやすいと思う。

何より、フロントエンドと同じ言語で書けるのはとても良いと思う。Web アプリを作る上で、HTML・CSS・JavaScript は必ず触れる。その中の1つである JavaScript でバックエンドも書けるなら、学習する言語の数を増やさなくて良いし、コード的にもフロントエンドとバックエンドで共用できるコードが出来たりする (モデルとか)。Nx というフロントエンドとバックエンドを合わせたモノレポを作るツールもあったりして、同じ言語でそのまま書けるメリットはデカい。

JavaScript を読んだことも書いたこともない、というプログラマは少ないだろうから、JavaScript に苦手感があるような人間に対しても、無理やり引き継がせて何とかなる言語だと思っている。コレが Python や Go なんかだとちょっと尖ってるし、どうだかなぁと。

ところで、JavaScript に抵抗感を持つプログラマって何なんだろう。言語的な特徴でいえば PHP も大して変わらないと思ってるし、単にレベル低いのに選り好みしてるなーコイツとしか思ってないんだが。式、関数、暗黙型変換などの言語仕様も、フロントエンドとバックエンドの両方で JS を使っていればすぐに分かることだし、そういうことでやらかすようなコードはすぐに書かなくなる。他の言語に優位性を感じるほど大きな問題だとは思ってないんだけど、結局はスキルの問題かねぇ。

そんなワケで、JavaScript、Node.js、良い言語ダヨー、他の言語より楽なところ多いヨー、という主張でした。