全3406文字
プログラミング分野でよく話題になるのが「どのプログラミング言語が優れているか」というテーマだ。個人的には「どんな言語を使っていようとプログラミングの本質は変わらないので、不毛な議論ではないか」と感じることが多い。それぞれの案件に適した言語を使えばいいだけではないかと思ってしまう。
もっとも、これは日常的にプログラミングをしていない部外者の意見かもしれない。日々のソフトウエア開発業務では、プログラミング言語は最も重要なツールの1つだ。どんなツールを使うかが開発効率に直結することは大いにあり得る。
例えていえば、コード入力に使うキーボードのようなものだろうか。どんなキーボードでも気にしないエンジニアがいる一方で、キーボードのタッチに異様にこだわるエンジニアもいる。後者にとって、特定のキーボードを利用できるかどうかは開発効率を左右する死活問題だ。プログラミング言語にも、それに似た面があるのかもしれない。
どの言語を選ぶかという議論で最近、旗色が悪い言語がある。「Java」だ。編集部の若手記者によると、特に若いエンジニアの間でJavaは「かっこ悪い」と思われているのだという。
これは自分には少し意外だった。個人的にJavaをかっこ悪いと思ったことはないからだ。
Javaに悪いイメージを持っていないのは、1990年代の鮮烈なデビュー当時をリアルタイムで知っている世代だからかもしれない。Java仮想マシン(JVM)が提供されている環境でありさえすれば、コンパイル済みの同じコードがどんな環境でも動作する。C言語で大きな問題となっていたメモリー関連の深刻な脆弱性も、Javaでは気にする必要がない。まさに画期的だった。
個人的には、C++でいったん挫折したオブジェクト指向プログラミング(OOP)を教えてくれた言語でもある。Javaのインターフェースという機能を使ってオブジェクトを差し替えるコードを書いてみることで、OOPの特徴の1つである「ポリモーフィズム」の振る舞いを実感できた。ソフトウエア開発の実務上はOOPの重要度は下がってきているが、理解しておかなければならない基本的な概念であることに変わりはない。
単なるイメージの問題でしかない
なぜJavaはエンジニアにかっこ悪いと思われているのか。それを探るために、Javaについて詳しそうな「知り合い」と議論してみることにした。対話型AI(人工知能)サービスの「ChatGPT」である。最新のソフトウエア工学が生み出した存在だけあって、ChatGPTは特にプログラミング関連の話題に強い印象がある。