プログラマーとして生計を立てていく上で何より欠かせないのが、適切なプログラミング言語の習得です。

しかし今ではプログラミング言語は無数に開発されています。

そのすべてを数えれば200種類以上、実際に使用されている言語だけをとっても20~30種類ほどに上るでしょう。

その中から自分にとって本当に必要な言語を選び、学んでいかなければなりません。

フリーランスの場合、各プログラミング言語の需要や特性、そして将来性を理解することは非常に重要です。

そこで本記事では、現時点で主に使用されている各プログラミング言語をランキング順に取り上げ、習得の難易度や将来性について紹介します。

将来を見据えた言語学習の参考にしてください。


プログラミング言語の分類



数多く存在するプログラム言語ですが、それぞれの言語にはそれぞれの特性があり、次の3つの性質で分類できます。


手続き型

手続き型言語とは、その名の通りプログラムの手続きを上から順番に記述していくタイプの言語です。

シンプルかつ直感的で分かりやすいため、かつては主流として多く用いられていた言語です。

代表的なものとしてC言語やPythonが挙げられます。


オブジェクト指向型

ここ20~30年で普及したタイプで、オブジェクトと呼ばれるまとまりをベースに手続きを行っていく言語のことです。

代表的なものとして、C++、Java、C#が挙げられます。


関数型

文字通り関数の組み合わせによってプログラムを構成していく言語です。

代表的なものとしてHascal、Scalaが挙げられます。


プログラミング言語を選ぶ上でのポイント



こうしたプログラミング言語の違いを踏まえ、いま真に選ぶべき言語はどれなのでしょうか?

ここで大切なのは、これから学ぼうとする言語について、市場でどのような役割を担っているのかを事前に調べることです。

次の5つの観点に着目してみましょう。


人気度

人気のプログラミング言語であれば、習得に関してより多くの情報を得ることができます。

書店に並ぶ参考書も多く、自分と同じような学習者も多いため、問題解決までの道のりが短いといえます。


将来性

プログラミング言語の勢力図は日々変化しています。たとえば90年代、世界で主流とされていたのはC言語です。

しかし2000年代に入るとJavaが急速に台頭し、瞬く間にトップの座を奪ってしまいました。

さらに近年では、人工知能の開発に適した言語、たとえばPythonなどが脚光を浴び始めています。

私たちはこれからの時代を予見して言語を選ばなければならないのです。


収入

人気がある言語だからといって収入が高くなるわけではありません。しかし習得者数が少なく、かつ利用価値の高い言語に企業は注目します。

転職サイトを見た上で、慎重に判断するべきでしょう。


汎用性



たとえばC言語はプログラミングの礎を築いた言語として、非常に高い汎用性をそなえています。C++のような拡張版に移行するのも容易でしょう。

また近年開発されたKotlinはJavaと互換性があるため、すでにJavaを習得している方にはおすすめの言語といえます。

CもJavaも使い勝手がよく、習得すれば頼もしい武器となってくれるはずです。


難易度

近年開発される言語の特徴として、構文がシンプルで扱いやすいことが挙げられます。

たとえばApple社のSwiftやGoogle社のGoなどはユーザーフレンドリーな特徴をそなえています。

背景には、デベロッパーの裾野を広げてスマートホンアプリなどの開発につなげようとする目的があるのでしょう。

もちろん個人によって向き不向きはありますが、言語を習得する上で難易度は重要な判断材料となります。


複数のプログラミング言語を覚えることが重要



求人サイトを覗けばわかるように、多くの企業が複数の言語を使える人材を求めています。

フリーランスが好条件の案件を獲得するためには、様々なクライアントのニーズに応えていかなければなりません。

また特性が異なるタイプの言語を習得することで、その言語の長所や短所を知ることができるはずです。

より俯瞰的な視点を持つことができれば、アーキテクチャを開発する際にもきっと役に立ってくれるでしょう。


最新のトレンドを踏まえた人気ランキング



人気のあるプログラミング言語をランキング順に紹介していきましょう。

電気通信分野の標準化団体IEEEが毎年発行しているオンラインマガジンによると、 2019年の人気プログラミング言語ランキングは以下の通りです。


The 2019 Top Programming Languages – IEEE Spectrum Ranking

  1. Python
  2. Java
  3. C
  4. C++
  5. R
  6. JavaScript
  7. C#
  8. Matlab
  9. Swift
  10. Go

出典元:https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019

IEEEのランキングは、基本的にGoogle TrendsやTwitterなど複数メディアをソースとしてメトリクスを算出しています。

1位に輝いたのはPython。後述しますが、AI(人工知能)の分野でアプリケーション開発に用いられていることが理由のひとつでしょう。

その他C言語やJava、JavaScriptも安定して上位に食い込んでいます。

参考までに、2018年の同ランキングも載せておきます。


The 2018 Top Programming Languages – IEEE Spectrum Ranking

  1. Python
  2. C+
  3. C
  4. Java
  5. C#
  6. R
  7. PHP
  8. JavaScript
  9. Go
  10. Assembly

出典元:https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages

こうしてみると、たった1年で大きく勢力図が動いていることが理解できます。

汎用性の高いC言語やJavaなどは安定した人気を維持していますが、その他の順位は激しく変動しています。

この1年で人気が急激に高まったMatlabGoなどについては、これからの項で紹介していきます。


各プログラミング言語の紹介



IEEEのランキングをご紹介したところで、ここからはトップ10のプログラミング言語を個別に紹介していきます。

なお比較の参考となるように、各項目には難易度を記してあります。難易度にはあくまでも個人差があることをご理解ください。


10位.Go

こちらはGoogleによって開発されたプログラミング言語です。2009年にリリースされ、現在ではmacOSおよびWindowsの両方に対応しています。

Swiftと同じく構文がシンプルで記述しやすいことを売りにしており、今後も需要の高まりが予想される言語です。

オブジェクト指向の言語でコード自体はシンプルですが、直感的に分かりにくく難易度はやや高めといえます。


9位.Swift



Swiftは2014年にApple社が発表したプログラミング言語です。

iOSおよびmacOS, Linuxで利用可能な言語で、主にiPhone用アプリの開発などに用いられています。

シンプルで扱いやすく安定性に優れており、開発者のニーズにも充分に応えてくれるでしょう。

Windowsでは動作しないということが唯一の難点かもしれません。

オブジェクト指向の言語で、サポートも多いため難易度は普通といえます。


8位.Matlab

Matlabは数値計算に特化したプログラミング言語として開発されました。学術分野のみならず自動車から金融・インフラにいたるまで多くの企業で使用されています。

とりわけ注目されているのが人口知能の分野であり、機械学習に必要なアルゴリズムにMatlabが必要とされています。

将来的に見ても十分に期待できる言語です。

関数型の言語で、専門知識が求められるため難易度は高いといえます。


7位.C#

Javaをベースにして開発された言語です。こちらもアプリから業務システムの開発にいたるまで、幅広く使われています。

間違えやすいのですが、C言語やC++との互換性はありません。

オブジェクト指向の言語で、C言語と比べると習得は容易であり、難易度は普通です。


6位.JavaScript



1995年に開発されたJavaScriptも根強い人気を誇っています。

JavaScriptと聞くとWeb系で使われるイメージを持つ方もいるかもしれませんが、実際にはゲームやIoTなど幅広い分野で活躍しています。

開発環境を用意する必要がなく、学ぶにあたっての敷居が低いことも大きなポイントです。

オブジェクト指向の言語で、上記の理由から難易度は低めといえます。


5位.R

1995年に開発されたR言語は、データ分析や統計解析に特化したプログラミング言語です。

C言語やJavaのような汎用性は持ち合わせていませんが、その代わりビッグデータの解析や機械学習に適しており、最近になって需要が高まりました。

その性質上、マスターするためには統計学的な知識も必要となってくる言語ですが、将来性は十分にあるといえるでしょう。

関数型の言語で、難易度は高い(コード自体は簡単だが、統計の知識が求められる)といえます。


4位.C++

Cをベースにオブジェクト指向の要素を取り入れた言語です。C言語を習得済みであればぜひとも覚えておきたい言語でしょう。

アプリから業務システムの開発にいたるまで、幅広く使われています。

オブジェクト指向の言語で、C言語を習得していなければ難易度は高いといえます。


3位.C

1972年に開発されたC言語は、以前ほどの勢いは失ったものの一定の人気を維持しています。

プログラミングの基本となる言語であり、すでに習得済みの方も多くいるのではないでしょうか。

OSやデバイスなど、システムの根幹部で用いられることも多く、極めて汎用性と自由度の高い言語です。

手続き型の言語で、広範な知識が必要なことからJava同様に難易度はかなり高いといえます。


2位.Java

お馴染みのJavaです。登場から20年以上が立ちますが、その汎用性の高さゆえに今でも根強く使われている言語です。

他の言語と比べ動作が安定していてセキュリティも高いため、銀行などの大規模なシステムに使われることが多い言語です。

一度覚えてしまえば引く手あまたといえるでしょう。

オブジェクト指向の言語で、ハードウェアも含めた知識が必要であるため難易度はかなり高いといえます。


1位.Python



1991年に開発されたばかりのPython(パイソン)ですが、その特徴として人工知能やIoTの開発に多く使われていることが挙げられます。

コードの文量が少なくて済み、シンプルな言語であることも習得する上での大きなメリットでしょう。

今後ますます需要が高まることが予想され、世界的にも人気の言語といえます。

ちなみにYouTubeやInstagram・EvernoteといったサービスもPythonを用いて作られています。

オブジェクト指向の言語で、その構造から難易度は比較的低いといえます。


番外編



先に挙げたIEEEのランキングは世界的な人気を示すものでした。

一方で日本国内における需要を知りたい方のために、もうひとつ別のランキングも掲示しておきます。

以下に示すのは求人検索エンジン「スタンバイ」が発表したプログラミング言語別の年収ランキングです。


求人検索エンジン「スタンバイ」プログラミング言語別年収ランキング2018(提示年収の中央値ベスト10)

  1. Go
  2. Scala
  3. Python
  4. Kotlin
  5. TypeScript
  6. R
  7. Ruby
  8. Swift
  9. Perl
  10. C

出典元:https://www.bizreach.co.jp/pressroom/pressrelease/2018/0807.html

IEEEのランキングとは大きく異なっていることが分かります。C言語以外は比較的モダンな言語がランクインしているといえるでしょう。

やはり企業としては、まだ習得者が少ない言語に高収入の求人を出す傾向にあります。

中にはScalaやKotlinといった言語もランクインしています。ここで簡単に触れておきましょう。


国内で注目のプログラミング言語


番外編1:Ruby



日本人によって開発された国産言語です。

Webアプリやスマホアプリの分野で多く使われており、世界的な知名度も十分にあります(先のIEEEのランキングではScalaに次いで19位)。

シンプルで直感的にコードが書けることをコンセプトに開発されました。

オブジェクト指向の言語で、上記のコンセプトからしても難易度は比較的容易であるといえます。


番外編2:Kotlin

Kotlinの特徴として、Androidアプリの開発言語として正式に採用されていることが挙げられます。

また、Javaとの互換性があることも大きなメリットでしょう。

オブジェクト指向の言語で、Javaと違ってシンプルなため難易度は普通です。


番外編3:Scala

2001年に開発されたプログラミング言語で、設計にはJavaの開発者が関わっています。

Javaの仮想マシン上で動かすことができることもポイントのひとつです。

Javaでできることは何でもできるとされ、まさにJavaの後継言語の位置にあるといえるでしょう。

オブジェクト指向(および関数型)の言語で、難易度はかなり高いといえます。

しかし上のランキングが示す通り、苦労して習得すれば高収入が期待できます。


2019年のプログラミング言語のトレンドとは



ここまで10(番外編として+3)のプログラミング言語を紹介してきました。

2019年のトレンドとしては、以下のようなことがいえるでしょう。

まず、C言語やJavaなど2000年代から使われてきた言語の人気は依然として衰えず、今後も一定の需要が見込めます。

習得にはかなり時間がかかると思われますが、活躍の場は広いといえるでしょう。

またビッグデータ処理や機械学習に適した言語(PythonやMatlabなど)は全体として将来性が高いですが、一部に専門知識が求められるものもあります。

またそれぞれの言語が激しくせめぎ合っている状況であり、どれを学ぶかということに関しては慎重な態度が求められます。

一方アプリ開発を主な目的とした言語(SwiftやGo)はシンプルな構文であることをコンセプトにしており、サポートも豊富なため学習の敷居は低いといえます。


プログラミング言語習得のための学習方法



最後に、言語を習得するための方法についても簡単に触れておきます。

こうしたプログラミング言語を習得するためには、主に3つの方法があります。それぞれの特徴を見ていきましょう。


通学スクール

一般的な通学制スクールに通う方法です。講師の多くは現職で活躍しているプログラマーのため、現場に近いノウハウを得ることができます。

その反面、高額な費用がかかったり通学する必要があったりと、デメリットも多くあります。


オンラインスクール

オンラインで学習する方法もあります。基本的にパソコンさえあれば場所を選ばないため、気軽に利用することができるでしょう。

費用が比較的安いこともポイントです。

その一方でモチベーションの維持が難しく、途中で受講を打ち切ってしまう可能性もあります。


独学

参考書を用いて独学で習得する方法もあります。

最小限の出費で習得でき、空いた時間を有効に使うことができます。

反面、わからないことはすべて自己解決しなければなりません。

すでにプログラミングに習熟しており、第二言語を学ぼうとしている人にとってはおすすめであるといえます。


まとめ



本記事ではプログラミング言語のおすすめランキングをまとめました。

現在使われているプログラミング言語の数は20~30ほどあり、そのすべてを完全に習得することはおそらく不可能でしょう。

エンジニアとして働き、転職や独立をしていく中で、大切な武器となるプログラミング言語。

何を学ぶべきか迷っている方に、本記事がヒントを与えてくれることを祈ります。

現在と未来とを同時に見据えた上で、プログラミング言語を身に着けていきましょう。