最初に学ぶプログラミング言語の選択

 これからプログラミングを学ぼうとする人にとって、プログラミング言語の選択は重要なものです。現在はJavaが主流ですが、一昔前はプログラミングの花形はC言語でした。現在も情報系の授業などで教えられているようです。

最適な選択とは?

 プログラミング言語というものは、記述方法や言語仕様が少し違うだけで、「出来ること」は言語によって大きく変わることがない、ということもあり、とにかく何かひとつでも身につけてしまえば、他の言語を習得することは比較的容易です。

 例えばJavaとC#など、触ったことがなくてもIDEの補完機能さえあれば、勘で書けてしまうものさえあります。

 そういう意味では、最初に選択する言語はそう重要でありません。時間は有限ですから、「何をやりたいか」によって決めてください。

 世の中には、どの言語が初心者向きで…、などの情報がありますが、現在主流の高級言語は、どれをとっても大差ありません。

まずは、それがどのようなプログラムに使われているか調べ、自分がやりたいことを明確化するのが出発点です。

トレンド

 現在の主流は、「Webアプリケーション」です。従来は、Windowsネイティブのアプリケーションが主流の時代もありましたが、PCの高性能化により、遅いとされる言語(javascriptなどのスクリプト言語)でも、ネイティブアプリと遜色ない、十分使用に耐えうる速度が出るようになりました。

 今までWindowsネイティブで動作していた業務アプリケーションをWebアプリへ移行することにより、個別でのインストールやアップデートの手間なく、ブラウザを起動して所定のアドレスにアクセスするだけで、常に最新のアプリケーションを利用できるようになったのです。

 そんな中で、現在ポピュラーな言語をいくつか抜粋してご紹介します。

Java

 Javaは、そんな中でサーバー側の役割を担う言語として、長きにわたりデファクトスタンダードの地位を築いてきました。現在でも広く使われています。

 オブジェクト指向というモデリング手法にマッチしており、業務アプリケーションの関係を上手く表すことが出来ます。

 また、”Write once, run anywhere”(WORA)という考え方を提唱しており、一度コードを書けば、OSを問わずどのような環境でも動く、というプログラムが書けるのも人気の理由でしょう。

  これ関しては、”Write once, debug anywhere.”という皮肉めいた言葉もありますが、それはまたの機会に…。

 現在主流の、Webサービス開発に興味がある場合にお勧めできる言語です。

javascript

 クライアント側のブラウザで動く言語です。昔は、それほど高度なことは出来ませんでした。こと描画処理が苦手で、アニメーションなどを伴うインタラクティブコンテンツは、Adobe社のFlashが主流でした。

 しかし、HTML5の登場により、javascriptで出来ないことは無いと言われるほど、リッチなコンテンツの作成が出来るようになりました。ここから、爆発的にjavascript技術者のニーズが高まっていくこととなります。Web開発者にとっては必修と言えるでしょう。

 また、node.jsを利用したサーバー側で動作するjavascriptもあり、すべてをjavascript一本で賄おうとするプロジェクトも最近では少なくないようです。

 ブラウザとテキストエディタさえあれば開発出来てしまう点も魅力です。

 万能で柔軟性も備えており、立派な言語ではあるのですが、残念ながら現状では、Javaなどの言語に比べると脇役扱いされてしまいがちな言語です。

(C#|VB).NET

 Microsoft社製の有名言語。

 自然言語に似たVBは初心者向け言語であるとされていますが、そんなことはありません。.NETになってからは、非常に高品質なコンテンツの作成や、オブジェクト指向でのコーディングが出来るようになりました。

 また、VBは今となっては特殊な方に分類されるようなコードです。どうしてもVB.NETでやりたいことがある、といった事情がないなら、C#で学ぶことをお勧めします。冒頭で述べたとおり、他言語と共通点が多いのはC#です。

 さて、言語特性ですが、本来はWindows用のネイティブアプリケーションを作成する用途で用いられてきました。しかし、ASP.NETの登場により、高品質なWebアプリケーションをも作成出来るようになりました。

 特にASP.NET5は、最近の主流であるMVCモデルを取り入れた最新のフレームワークとなっています。Java系のフレームワークと比べても遜色なく、非常に優れたフレームワークで、これを学べばJavaのフレームワークもスムーズに習得できるはずです。

 しかし、残念ながら現在案件数はそこまで多くありません。Microsoftがオープンソースに意欲的であるという話も出ていますから、将来的には爆発的に需要が増えるかもしれませんが…。

python

 ディープラーニングが話題になって以来、注目されるようになりました。pythonは、人工知能やロボット系の分野で幅広く使われています。

 ディープラーニング系のライブラリは、殆どこのpythonで書かれていたりします。人工知能開発の需要は今後高まると予想されるので、選択肢のひとつとしては有力です。

 しかし、これもまた現在はそこまで需要があるわけではありません。が、代わりに提示される報酬も高額であるという傾向がありますから、pythonでキャリアを積んでおくと、後々役立つことがあるかもしれません。今後過熱しそうで楽しみな言語ですね。

まとめ

 最初に学習するプログラミング言語によって、以後の技術開拓が大きく違います。JavaであればWeb系、C++はゲーム系、pythonは人工知能やロボット。他、用途に特化したプログラミング言語も多く存在します。

 全てご紹介する事は出来ませんが、もし興味があれば、その他の言語も調べてみることをお勧めします。