プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

プログラム言語がより上の階層へ発展していく理由


404 Blog Not Foundより:


404 Blog Not Found:プログラマがC言語を学ぶべきたった一つの理由

だけど、Cを含めて、言語の仕様拡張というのは「より上の階層へ」ということは熱心でも、「下の階層をより使いやすく」という方向にはあまり行かないのはなぜなのだろう....


プログラム言語そのものが、より抽象化を目指しているからだと思います。


高級言語によりアセンブラが抽象化され、オブジェクト思考によりデータ構造が抽象化されました。Java VMなどではコンピュータそのものが抽象化されています。それによるメリットとしては、プログラマが実装の手間を減らすことが出来るということが挙げられると思います。


C言語のような「低い階層」の言語では、データをメモリ上でどう表現するか、それらをどう管理するかといった、アルゴリズムの本質とはあまり関係のない実装を多くしなくてはなりません。言語仕様を抽象化すればするほど、プログラマは実装の手間から解放されていきます。


もう一つはハードウェアに近い言語としてのC言語の普及度が挙げられると思います。ご存じのように、組み込みからLinux/Windowsにいたるまで、Cはシステム記述からアプリまでをカバー可能という認識が広がり、世の中の多くのプログラム作成に使われています。処理系の多さもあって、これを超えるような言語はなかなか現れにくいのではないでしょうか。


さらに言えば、こういった「高級アセンブラ」と呼ばれる言語を必要とするOSやドライバといった部分を作るプログラマは、それ以外のアプリ等を作るプログラマに比べて、圧倒的に数が少ないです。需要が少ないところでは新しい言語は発展しにくいと考えられます。


とはいえ、プログラム言語の世界は流行り廃りが早いです。UNIXが普及する前はシステム記述言語と言えばPL/I系が多く使われていました。何年かすれば、また新たな言語が普及しているかもしれませんね。




yasuhoの隠れ家 - プログラマに大切なのはバランス感覚