見出し画像

プログラミング言語はなぜ複数ある?


先日研修生と話していて、なぜプログラミング言語が複数あるのか、という話になったので、今回はそんなお話。

私の考えはこうです。

今いる場所から遠くの場所へ行こうと思ったら、使える乗り物はいろいろあります。
飛行機を使うこともあれば、船を使うこともあります。あるいは電車や新幹線かもしれないし、自動車や自転車、セグウェイかもしれない。もちろん徒歩の可能性もあります。
何を使えばいいのか、あるいはどれとどれを組み合わせれば良いのかは、今いる場所と行きたい場所によって最適解が変わってきます。今現状、これさえあればいつでもどこでもどこにでも行ける、という乗り物はありません。
そういうことだと思います。

コンピュータの世界でも、この言語さえあればどんなシステムでも作れる、という言語は現状ありません。
使いたい環境ややりたいこと、用途によって最適なものは違ってくるし、複数の技術を組み合わせなければできないこともあります。その結果、様々なプログラミング言語が存在しています。

どこでもドアがあれば乗り物はなくなるか

では、この言語さえあればすべてをまかなえる、という言語が出来上がればプログラミング言語は一つに統合されるでしょうか。
これは、どこでもドアができれば乗り物がなくなるかどうかという話と同じような気がします。
科学的にどこでもドアが実現可能かどうかは一旦置いといて、仮にどこでもドアが完成して一般的に普及したとすると、移動手段としての乗り物はほとんど不要になってしまう事でしょう。

ただ、乗り物が完全になくなることはないのではないかと思います。
例えば、移動手段としてではなく、趣味や娯楽として車でドライブをする人はいるのではないかと思います。
船も、移動手段だけではない目的で使用されますね。

どこでもドアが完成しても、全ての乗り物がなくなってしまう事はおそらくないでしょう。
趣味や娯楽などの要素が取り入れられている乗り物は残り続けていくと思います。
そういう意味で、何でもできるプログラミング言語ができたとしても、他に使用される言語が完全になくなることはないでしょう。

また、プログラミング言語の中には、できることはさほど変わらなくても、どういうコンセプトで作られたのか、その思想が大きく異なることがあります。
車のメーカーや車種がたくさんあって、それぞれでコンセプトが異なるのと同じです。
そういう意味もで、たとえ機能的に完璧なプログラミング言語が登場したとしても、他の言語がなくなってしまう事はないでしょう。
多くの人から指示されている言語は、機能的に完璧でなくても、流行が終わってしまったとしても、使う人が居続けるのではないかと思います。

サポートいただくとめちゃくちゃ喜びます。素敵なコンテンツを発信できるように使わせていただきます。