ゼロから始めるなら、言語はJAVA一択!



ゼロから始めるなら、言語はJAVA一択!

今回は、知人から「もしプログラミングをゼロから始めるなら何がいいか?」という質問を受けたので、その話を少ししたいと思う。質問の真意としては、今学生をやっている親戚がいて、IT業界に興味があり、将来、職業としてプログラマやシステムエンジニアをやりたいと思っているが、もしプログラミングを勉強するなら何から始めたらいいか?というものだった。ということでこの質問に回答したいと思う。

1.いきなり結論:回答はJAVA

いきなり結論だが、自分はプログラム言語の普及具合や将来性などを鑑みて回答すると、回答は”JAVA”だと思う。いろいろ言いたいことはあるが、JAVA成立の背景や、JAVAを身につけるべき理由を以降の項で説明したいと思う。

2.JAVA成立の経緯

(1).最初はC言語

C言語は非常に歴史のある言語で、IT業界に長く居る人にとってのイメージとしては、汎用的なアセンブリ言語というのが第一印象じゃないか。C言語は、unix系システムの移植性・保守性を高めるために使われて普及した。そう、昔は、汎用機ならCOBOL、UNIX系ならC言語というくらい代表的なプログラム言語だった。メモリをアドレス参照で直接利用できるなど、いかにも古い言語という特徴があるが、使いこなすにはより高度な知識が求められる。ちなみにWindowsもC言語(一部C++)で作られている。

(2).C++はオブジェクト機能を付加

C言語に対して、大規模開発向けに改良する目的で、オブジェクト指向機能を導入したもの。商用利用の大規模開発向けに採用されることが多く、急速に普及した。自分の記憶では、約20年程前、C言語の入門書を探しに大型書店にいったら、C言語関連書籍が脇に追いやられ、C++ばかりだったのを覚えている。ということを考えればC++も結構歴史の長い言語になってきたと言えるだろう。Wikiでちょっと見てみたら、C++は1983年に誕生したみたいだ。自分のイメージでは普及が本格化したのは2000年前後あたりだと思っていたいのだが・・・

(3).JAVAはC++の欠点を克服

JAVAは、C++の「欠点」(バグのもととなるポインタの仕様)を削除し、代わりにガーベジコレクションなどの先進的なメモリ管理を取り入れた、小規模開発向けの新しいオブジェクト指向言語として設計された。まぁ今時、メモリ管理をプログラムで実施するほどカツカツなマシンなんてないのでプログラマがやる必要はないし、むしろメモリを直接触れなくすることで、言語としての安全性が増し、普及に一役買ったということは言えるだろう。
JAVAが誕生したのは1995年、実際に普及しだしたのは翌年のJDK1.0が出てからだろうが、普及しだしてからの勢いはすごかった。自分が新人時代、オープン系言語の代表はVisual Basicだと思ってたのだが、あっという間にその座はJAVAに奪われた印象がある。一番の要因は、言語体系の比較的似ているC言語経験者の再活用がスムーズに行われやすかったのが原因だろう。そして、その後約20年間、プログラミング言語の代表的存在としてJAVAは今でもその地位を保っている。

3.理由は横の広がりと将来性

将来、JAVAが廃れて、何か違うプログラム言語が流行る可能性はあるだろうか?。個人的な意見だが可能性は大いにあると思う。ここ20年だけ見ても、VBの全盛期からJAVA一強時代の到来、さらにC++やObjective-Cなどが瞬間的に注目を浴びるなど、時代の移り変わりにより、利用される言語や技術には流行り廃りが発生する。
今後新たな言語が開発されるその言語が大流行する可能性は、ほぼ100%あるといっていいだろう。そしてその言語は恐らくJAVAがベースになる可能性は非常に高いだろう。なぜなら、JAVAプログラマを無視した全く新しい言語が開発されても、普及面ではスムーズに進まないと思うからだ。
昔、COBOLプログラマが、オープン系言語(JAVAやVBなど)への移行がスムーズにできず問題となったことがある。それと同じで、将来新たなプログラム言語が開発されても、今活躍しているJAVAプログラマの移行がスムーズに進まないのならば、その言語が流行ることはないだろう。
あと、JAVAを身につけるべき理由としては、学習のしやすさだろう。パソコン一台とネット環境があればすぐに始められ、しかもJAVA開発者によるフォーラム(情報交換の場)が多く存在するので、わからないことやトラブルに対して多くの情報を迅速に手に入れることができる。このような環境はJAVA以外には存在しないだろう。(ほかの言語だと、フォーラムが存在してもゾンビ状態であることも多い)
ということで、知人には同じような回答をした。細かい歴史的背景などはどこまで理解してもらえたか不明だが、大筋では理解してもらえたように思う。この記事を読まれた人で、自分もやってみたいと思っているなら、ぜひJAVAから始めることをお勧めする。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です