プログラマーは別のプログラミング言語はすぐに使えるようになるのか?

f:id:kyart:20210726123734j:plain
プログラミング言語の種類はたくさんあります。それぞれに向き不向きがあったりしますが、ゼロスタートであればいくつかの選択肢のどれを選んでも問題ない場合も少なくありません。ではプログラマーであれば、別のプログラミング言語はすぐに使えるようになるのか?

簡単な処理を書くだけならすぐにできる

前に書いたように実際の言語(日本語とか英語)ほどにプログラミング言語間の差異はありませんので、1つ使えるようになれば別の言語でプログラムを書くことのハードルはものすごい高いわけではありません。簡単な処理であれば新しい言語でも数時間学べば書けるようになるでしょう。

言語によっては書き方が全く同じになる、もしくは使用するキーワードが差し替わるだけという場合もあります。例えば以下の2つは別々の言語で書いた同じ処理です。
Javascript

function getDisplayableAmount($num){
  return $num + "個";
}

PHP

private function getDisplayableAmount($num){
  return $num . "個";
}

微妙に違うところもありますが、ほとんど同じです。

複雑になってくると調べ物が増える

しかしそれと、実際に役に立つアプリケーションやシステム開発を完遂できるかどうかは別の話です。プログラミング言語にはそれぞれ似て非なるところがあります。癖もあります。エラーが出やすい箇所や書き方も異なります。
例えば

if( $bar == 0 )

if( $bar === 0 )

では微妙に意味が異なる場合があります。後者の書き方は存在しない言語もあり、その場合このように書くとエラーになります。

f:id:kyart:20210726123616j:plain
よくあるエラーメッセージも言語によって異なります。その言語でプログラムを何度も書いていると、よくあるエラーに慣れてきて問題の箇所や原因をすぐに突き止められるようになります。

ある言語では特定の処理を行う方法として書かれるプログラムの記述が、別の言語だとメモリを食いすぎるため推奨されないということもあり得ます。

そのため得意な言語ならスラスラと書けるところが、エラーや最適な書き方を調べたりする時間が雪だるま式に増えていくのです。

結局経験がモノを言う

そういうわけで、基本的には新しいプロジェクトに携わる時に新しい言語をわざわざ選ぶことは避けたいというのが実情です。自分の得意で経験が豊富な言語を選ぶことが最も効率が良いからです。

時には何か理由があって新しい言語を使うこともあるでしょう。その言語を習得したいとか、どうしてもそれで無いと困る場合です。しかし新しい言語が得意と言えるようになるには、いくつもの産みの苦しみを経験しなければならないことも知っています。そうした経験を経て、プログラマーは新しい言語を身に着けていくのです。