プログラミング言語、1つに統一しちゃえば良くない?

プログラミング言語、1つに統一しちゃえば良くない?

閃いてしまいました。
天才かもしれません。

はじめに《不満と理想》

思えば、この不満はプログラマーになろうとした時から
ずっと感じていました。
「プログラミング言語が多すぎる!」
Java、Python、PHP、VB.NET、C#、……
何から手を付けていけばいいのか全く分かりませんでした。
最近はC++のコードを参考にC#でプログラミングしたりしていますが、
書き方が全然違っていて苦戦しています。
これらの不満は1つの最強のプログラミング言語に統一してしまえば
解決するんじゃないかと思ったわけです。

現実問題

まぁ、実現は難しいです。
理由はいくつかあります。

・強味から言語を選ばれてしまう
C++は処理速度がとても速いらしいですね。
それでも「もっさりでもいいから簡単にサクッとシステムを作ってほしい」と言われたら
比較的学習コストが高いC++は避けられてしまうと思います。
どこを取っても優秀な言語でないと統一は難しいでしょうし、
きっと今ある言語も優秀な言語を目指して登場したのでしょう。
世界一の言語を今ある言語の中から選ぶか一から作るかして、
それを世界を相手に説得する必要があるので難しいですね。

・新たに学ぶ必要がある
元も子もありませんが、新しい言語を学ぶのは面倒ですよね。
既に知ってる言語であれば、
書く側も依頼する側も楽だし安心です。
プログラムが生まれた理由の1つは人間が楽をするためです。
他の言語を知っている人に改めて勉強してもらう必要があり、
実はここが一番高いハードルなのかもしれません。

他にもセキュリティ面などを理由に言語の統一化は避けられているのかもしれません。
自分が思う「楽」は世界を相手にすると難しいようです。

妥協案

では「最強の翻訳機を作る」というのはどうでしょう?
つまり、どんな言語でコードを書いてあっても、
その翻訳機で自分が知っている言語に翻訳されるから楽に読めるという訳です。
また閃いてしまいました。
天才かもしれません。

しかし、それも現状難しいようです。
実は別言語に翻訳するツール自体はいくつか作られています。
ただ、それは特定の言語間でしか使えないもので網羅は出来ていないようです。
またツールや言語にもよりますが、翻訳できるのはコードの6割程度らしいです。
言語によって可能な処理、不可能な処理があるので、
翻訳しきれない部分は元の言語の理解がどうしても必要になります。

翻訳機を作成すること自体も難しいようです。
今あるシステムを別言語で作り直すという作業に
膨大な時間とお金がかかった事例は多いそうです。
元の言語と書き直す言語の両方の知識が必要なので、
作業量が多い上に難易度も高いので納得です。
それぞれの言語のバージョンアップなどにも影響を受けるので
個人も法人も翻訳機作成には気軽に手が出せずなかなか発展しないのかと思います。

まとめ

今すぐ世界が変わることは無さそうです。
コードを沢山書いて、地道に貢献していきましょう。

俺が世界を変えてやるんだ!と燃えている方には「AtCoder」をお勧めします。
コーディングの速さを競う競技プログラミングで、
毎週大会が開かれていて、様々な言語で参加することができます。
それぞれの言語の模範解答を見比べる練習をすると、
言語の知識や翻訳力が身に付くはずです。

筆者も参加したいとは思いつつ全然参加できていません……
「AtCoderの参加を習慣化する」が今年の目標になりそうです。