プログラミング言語といえば、各種アプリやシステムを開発したり、定型的な作業を自動化したりするために欠かせないものとなっているが、今後の開発関連において、各々のプログラミング言語の需要の方向性は変わってくる一方である。ここでは、当方の視点から今後のプログラミング言語の需要の方向性を考えてみたい。
各プログラミング言語別の需要の方向性推測
Java
JavaはJava Runtime Environment(JRE)が使える環境があれば言語環境を問わないというメリットがあり、サーバーアプリから各種ツール、Androidアプリと幅広く使われており、特に昨今のAndroidアプリにおける需要が非常に高い状況にある。
ただし、Androidにおいては、Javaをめぐりグーグル社とオラクル社との係争が行われており、その訴訟の結果次第ではAndroidがJavaから脱却する可能性もあるため、Androidアプリにおいては長期的観点から要注意の状況になっている。
とはいえ、アプリからウェブまで幅広く使えるという利点、及び開発者が多いこともあって、情報が充実しているから、汎用性の高さから需要の高さは継続するものと考えられる。
PHP
PHPは、ウェブ上のアプリ及びそれに関連するバックグラウンドの開発に使われているスクリプト言語で、処理系によっては例外はあるものの、基本的にはソースコードを修正すれば即時反映されるという大きな利点を持っている ((これは、PHPにかかわらず、スクリプト言語全般にも該当する)) 。
今後もクラウドコンピューティングなど、ウェブシステムの需要が高まること、開発者が多い為情報も充実していることから、今後もウェブ開発においては主力の言語として使われることはほぼ確実とみられるだろう。
なお、フロントエンドにおいては、PHPだけでは不十分で、JavaScriptとHTML、CSSの習得が必要になる。
HTML/JavaScript/CSS
ここではHTML、JavaScript、CSSと一つにまとめているが、これらはウェブページを作成するのに必要となる言語である。HTMLではウェブページの文書構造の定義、JavaScriptは各種インタラクティブな動作をさせるために、CSSはウェブページのデザインの定義に必要となる。
なお、開発においては、これらを学習するだけでは不十分で、他の言語の習得も必要になる。
C
C#は、もともとは.NET Frameworkの主力言語として開発されたもので、その言語仕様は表面上はJavaにかなり似ている ((実際には主な開発者がDelphiの開発を担っていたことから、実際の言語仕様はDelphiの方が近い)) 。従って、以前はWindows系のアプリ/ウェブ開発では一定の需要はあったものの、それ以外の環境では若干弱かった。
しかしながら、近年のMonoプロジェクトの発展及びマイクロソフトによるXamarin買収の影響、Unityの普及などから、スマートフォンアプリを中心に需要が高まるものと考えられる。
C言語
C言語は、もともとUNIXの移植性を高めるために開発された言語で ((初期のUNIXではアセンブリ言語で開発されており、移植性が著しく低かった)) 、OSや組み込みシステムなど、ハードウェアへのアクセスが絡むような開発に適している。
また、ポインターやメモリーの割り当て、解放など、他の言語では意識することのない概念を意識しなければならないため、その点は要注意である。C言語を使いこなせるようになれば、他言語でもある程度応用が利くようになると言われている。
C++
C++は、もともとC言語を拡張させる形で開発された言語で、主にオブジェクト指向、ジェネリックプログラミングなどの機能が追加されている。
しかしながら、あまりにも機能を拡張させすぎたため、その複雑さはトップクラスで、学習する際は何が必要なのかを取捨選択しないといたずらに学習時間が天文学的に増えてしまうという問題もある。
C言語とC++は両方とも習得しておくことが望ましいと言える。
Objective-C
OS Xの前身となるNEXTSTEP向けに開発された言語で、現在ではOS X及びiOS向けのアプリ向けの開発言語として使われている。基本的にはC言語にC++とは別のオブジェクト指向プログラミング機能を追加した形となっている。
Objective-Cで追加された記法はかなり特殊だが、C及びC++を習得しているのであればそれほど問題なく応用することは可能である。
現時点では、事実上OS X及びiOSアプリ開発専用の言語であること、Swiftも登場しているため、他プラットフォームを意識する場合は他の言語の習得も必須である。今後の需要はウェブと比較すると難しく、不透明な部分があり、要注意ではある。
Swift
Objective-Cをより使いやすくするというコンセプトでアップル社より開発された言語 ((似たような立ち位置の言語としてはJavaに対するKotlinあるいはScalaなど)) 。現時点では基本的にObjective-Cと同じく、実質的にOS X及びiOSアプリ開発専用である。ただし、オープンソース化及びUbuntuへの試験的なポーティングなどで、今後の需要が高まる可能性はある。
この言語の需要の高まりは不透明な部分があるものの、AndroidのJavaをめぐる係争の決着に伴うJavaの代替としてSwiftが決定されたということになった場合、大幅に需要が高まる可能性はありうる。ただし、この場合、フレームワークの問題が浮上するため、応用が効くかどうかは別問題。
Python
日本ではマイナーだが、海外においてはウェブシステムを中心に各種開発に用いられているスクリプト言語。
日本においては利用者が少ないため、あまり利点はないものの、海外のプロジェクトにおいて使われるケースも多いため、その場合は習得するのが望ましいと考えられる。
Ruby
日本で開発された国産スクリプト言語。Ruby on Railsなど有名なウェブフレームワークがある。ウェブ系での開発ではよく使われているが、一方でRGSSとしてゲームでの開発にも使われたことがある。
COBOL
金融システムや事務系、メインフレームなどで使われている、主にバッチ処理などで開発されている言語。現在では言語仕様の古さや高齢化に起因する技術者の減少などから、Javaを中心に、他の言語への移行が行われているが、COBOL特有の処理の移行に難航している部分もあり、現在でも一定の需要はある模様。
最後に
以上にあげたように、プログラミング言語と言っても、上記のようにたくさんの種類がある上、ここではあげなかった言語も多数あるため、選択に悩むことは必至だろう。この際は、「何をしたいのか」を考えてみると良いのかもしれない。そうすれば、何が適切かというのがある程度見えてくるのだから。もっとも、ジョーク目的で作られた言語を選択するというのはありえない話だが・・・。
なお、当方はObjective-C、C、C++がもっとも得意、あとはC#、PHP、Ruby、Java、シェルスプリプトあたりも使える。複数の言語も使いこなせるようになれればかなりアドバンテージができるようになるので、それも念頭に入れると良いだろう。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。