本記事では、HackerRank社が2020年2月に発表した「2020 HackerRank Developer Skills Report」の調査結果を元に、2020年にエンジニアが次に学びたいプログラミング言語ランキングを紹介します。
変化の激しいIT業界では、新しい技術やサービスの移り変わりに対応すべく、それらを開発するためのプログラミング言語も日々進化を遂げています。
その数は200を超えるとされていますが、現在、世界のエンジニアたちから注目を集める言語は何でしょうか?
新しいプログラミング言語を習得してキャリアップにつなげたいエンジニアも、初めてチャレンジする方もぜひ参考にしてみてください。
1. 2020年にエンジニアが学びたいプログラミング言語トップ3
ITエンジニアのスキルをスコア化し、企業からのエンジニア採用に結び付けるプラットフォームを運営し、700万人以上のITエンジニアコミュニティを持つ、米HackerRank社は「2020 Developer Skills Report」(2020年版 エンジニアのスキル調査)を発表しました。
この調査は同社が参加者を募集し、162か国・116,648人のエンジニアからの回答をもとにしています。
同レポートの中の「Languages developers want to learn」(エンジニアが学びたいプログラミング言語ランキング)では次のような結果が出ました。
参照元:2020 HackerRank Developer Skills Report
1位:Go(36.2%)
2位:Python(27.7%)
3位:Koltin(24.9%)
この結果をもとに、トップ3入りしたプログラミング言語を順に解説します。
1.1 1位 Go
「Go言語」や「golang」とも呼ばれるGo(ゴー)は、社内のソフトウェア開発の生産性向上のためにGoogleが開発したオープンソースのプログラミング言語です。2009年に発表され、以来、Googleをはじめとする多くの企業や組織で広く使用されています。
1.1.1 Goの特徴と利用例
Go言語の主な特徴:「シンプル・軽量・高速」
読みやすい無駄のないシンプルなコードで記述を行い、並列処理を得意としておりCPUへの負荷が少なく軽量であること、そして高速コンパイルによる実行速度が速いことが特徴として挙げられます。
また、厳格な型判断によりバグを回避しやすい安全性の高さ、拡張性の高さ、消費リソースのコストパフォーマンスの良さなどがメリットと言えるでしょう。
日本国内では誰もが知るというほどの認知度はありませんが、年々求人数も増加傾向にあります。 そして、世界的にみると非常に人気があり、実用性の高さや学習しやすい点からも注目度の高い言語です。
Go言語の利用例
◆ マイクロサービスでの採用
複数の独立したサービスを組み合わせてひとつのサービスを作りあげるマイクロサービスは、小さなサービスの結合によって変化に強いシステム作成が可能です。
Goのシンプルさと拡張性の高さを生かして採用されています。
◆ APIサーバー開発
リクエストに応じて様々な目的に合った汎用性のあるデータを返すAPIサーバー。
Goの軽量・実行速度の速さを生かして高速なAPIサーバー開発で利用されています。
◆ Webアプリケーション開発
Goの高速・軽量・並列処理に強い点を生かして広く利用されています。
◆ PaaS
PaaSはインフラやOSを提供するクラウドサービスです。
Go言語はGoogleが推奨している言語ということもあり、GoogleのクラウドサービスであるGCPのPaaSサービスに利用されています。
◆ コンテナ技術
稼働中のOS上にコンテナと呼ばれる隔離された別のエリアを設け、アプリケーションを実行したり、開発者同士で共有したりするコンテナ技術。
コンテナ技術として広く利用されているDockerのlibcontainerというライブラリはGoで作られています。
1.1.2 Goの学習方法
シンプルなコードで分かりやすい文法や表現をベースに作られれているため、初学者にも学びやすい言語であると言えます。 JavaやC++などと同様の静的型付言語であり、それらの経験者であればより習得しやすいでしょう。
Go言語については下記の記事も参考にしてください。
1.2 2位 Python
Python(パイソン)は1991年にリリースされたスクリプト言語です。近年、国内でも注目度・知名度の飛躍的な伸びが目立ちますが、意外と歴史の長い言語です。
そんなPython人気の背景にはなんといっても、機械学習やディープラーニングといったAI開発における必須言語の地位を築いていることがあります。
1.2.1 Pythonの特徴と利用例
Pythonの主な特徴:「AI分野に強い・シンプル・多用途性」
Pythonといえば「AI(人口知能)」「機械学習」などのイメージで広く知られるようになりました。
その裏付けとして、PythonではAI分野を主とする外部ライブラリの豊富さに加え、多くのタスクをサポートする強力な標準ライブラリやフレームワークの存在があります。これらをふんだんに活用し、最近流行りのAIシステムやデータ分析に利用されています。
一方で、文法はシンプルであり、可読性が高く、誰が読んでも読みやすいコードになります。
さらに、システム開発規模の大小を問わず柔軟な対応が可能であり、幅広いタイプのプログラムを作成できる多用途性も特徴に挙げられます。
Pythonの利用例
◆ AI(人口知能)
人口知能とは、人間の脳の働きをコンピューターが真似て、人間の自然言語を理解し、推測や経験を元に学習するプログラムのことです。
現在、すでに様々な分野でのAI活用が実現されており、今後もさらに広がっていくと考えられています。
例えば、社内システムへの機械学習モデルの導入、AIによる病気の早期発見など医療機関との連携、AIによる農作物の管理や労働の軽減など農業との連携などがあります。
◆ IoT
IoT(Internet of Things)とは、身の回りのあらゆるモノとインターネットを結び付ける概念です。
別々のモノとモノをインターネットで結び付け、情報の取得・蓄積・分析などを行った上で次の行動に移すという仕組みです。
例えば、スマートウォッチ(GPS・心拍センサー・加速度センサーなどによる日々の健康管理)、IoT家電(温度設定の自動調節や自宅の家電とスマホの連携など)、リモートパーキングサービス遠隔操作による自動車の駐車)などがあります。
◆ データ解析や分析ツール
膨大に蓄積された購買データやアクセスデータからデータの解析や分析をすることによって、必要データのみを抽出し、個人に特化したサービスの提供や企業の業務効率化が実現できます。
◆ Webアプリケーション開発
Pythonには、Django・FlaskといったWebアプリケーション開発に便利なWebフレームワークが充実しています。
軽量なWebアプリケーションを素早く開発したり、拡張性が高くセキュリティに強い様々な用途でのWebアプリケーション開発が可能です。
1.2.2 Pythonの学習方法
Pythonは言語仕様がシンプルで文法も易しく、必要な機能を簡単に実現できるライブラリが充実しています。
インターネット上にはPythonに関する様々な情報やサンプルも豊富にあるため、調べればすぐに疑問点や問題点も解決することができるでしょう。
これらのことからも、Pythonは初心者にも学びやすい言語だと言われています。
Pythonについては下記の記事も参考にしてください。
1.3 3位 Kotlin
Kotlin(コトリン)は、2011年に、JetBrains社が開発した静的型付けのオブジェクト指向プログラミング言語です。
2017年にはGoogle社がKotlinをAndroidの公式開発言語として採用したことから知名度が急速に上がり近年人気が高まってきています。
1.3.1 Kotlinの特徴と利用例
Kotlinの主な特徴:「Android公式開発言語・Javaとの相互運用・Javaのいいとこどり」
KotlinはAndroidの公式開発言語として注目を集め、現在のAndroidアプリケーション開発において広く利用されています。
またJavaとの相互運用が可能であり、JavaのコードからKotlinを呼び出したり、JavaのコードにKotlinを部分的に使ったり、その逆もまた可能です。
Javaをベースに作られたKotlinは、Javaと比較すると文法が簡潔で安全性も高く、Javaの弱点を補うような言語仕様になっています。
Kotlinの利用例
◆ Androidアプリケーション開発
Kotlinの利用目的の多くはAndroidアプリケーション開発です。
2019年5月のGoogleの発表によると、現在Android開発者の50%以上がKotlinを利用しており、Androidアプリケーション開発においての"Kotlinファースト"をさらに強化することも明言しています。
(参照元:Google I/O 2019: Empowering developers to build the best experiences on Android + Play)
◆ サーバーサイド開発
Kotlinのメイン分野はAndroidアプリケーション開発ですが、サーバーサイド開発で利用する企業も増えており、国内でもAndroid版のYahooニュースアプリ・LINEアプリなどにKotlinが使用されています。
1.3.2 Kotlinの学習方法
Kotlinはコード自体がシンプルで記述ルールも簡潔なため可読性が高く、学習コストが低いことで知られています。
また、Javaとの類似点が多いため、Javaの知識やスキルがあればさらに学びやすい言語です。
Kotlinについては下記の記事も参考にしてください。
1.4 2019年のランキングとの比較
では、この1年間で人気言語ランキングに変動はあったのでしょうか?
前年2019年の同HakcerRank社の調査結果と比較してみましょう。
順位 | 2019年 | 2020年 |
---|---|---|
1位 | Go(37.20%) | Go(36.2%) |
2位 | Kotlin (26.45%) | Python(27.7%) |
3位 | Python (26.14%) | Kotlin(24.9%) |
Goは2年連続1位。2019年は2位Kotlinと3位Pythonが僅差でしたが、今年2020年は2位Pythonが若干3位Kotlinを上回る結果になりました。
去年に続いて、これらの言語は安定の人気を保っていることがわかります。
エンジニアが日々の業務に忙殺される中でも学んで習得したいということは、これらの言語がエンジニアにとって学ぶに値するメリットがあると考えられます。
日本国内においては、Pythonこそ、この1、2年で急速に知名度が上がりエンジニアからの関心も非常に高くなっていますが、GoやKotlinに関してはまだまだ誰もが知り学んでいるようなメジャーな言語だとはいえないでしょう。
世界的に見れば、これだけ関心が集まるGo、Python、Koltinにはこれからの需要・将来性などを期待しているから学びたいというエンジニアも多くいると思われます。
2. ランキング入りした人気言語の将来性
ここでは、ランキング入りした言語の将来性を見ていきます。
2.1 Go言語の将来性
結論:「Go言語は企業での採用も増加傾向にあり、Googleが注力を続ける限り将来性のある言語と言える」
・大手企業での採用の増加
Go言語は開発されて10年ほどのまだ新しいプログラミング言語ですが、現在、国内ではメルカリ・Gunosy・サイバーエージェント、そして米国ではGoogleを筆頭に、Docker・GitHub・Heroku・Dailymotionなど大手企業でのGo言語の採用も目立っています。
参考資料: Go言語採用企業一覧
・実用性があり、需要が高い
Go言語は学習コストの低さや、"シンプル・軽量・高速"といった言語の特徴からもシステム開発に取り入れやすい言語です。
さらに利用分野は幅広く、様々なサービスへのニーズに対応できる需要の高い言語であると言えます。
・開発元がGoogleであることの強み
Go言語はGoogleが開発したことで知名度が広がり、オープンソースであることからさらに広く利用されるようになりました。
またフレームワークも増え、これまでのGo言語のデメリットである例外処理・Genericsがない点についても改善の方向へ向かっています。
このように、今後も機能改善や追加などがされ、発展していく言語であると考えられます。
2.2 Pythonの将来性
結論:「Pythonは最新技術のAI分野での確固たる地位を築き、さらに幅広い分野での利用が広がっていることからも将来性の高い言語である」
・AI分野には必須である強み
AI分野は今IT業界の中でも最も勢いがあると言えるでしょう。私たちの生活の様々なシーンで役立つサービスが日々次々と提供されており、今後もますます発展していくと考えられます。
PythonはそのAI開発に役立つライブラリやフレームワークが充実しており、AI開発・機械学習・ディープラーニングには欠かせない言語であるため、需要も増加する一方です。
・幅広い分野への対応が可能
Pythonは、IoT、ビッグデータの解析・分析、Webアプリケーション開発など実に広い分野に対応可能です。多くの企業でPythonの採用が増え、Pythonのスキルを持つエンジニアの需要も急増しています。
2.3 Kotlinの将来性
結論:「KotlinはAndroid開発の公式言語であること、Javaとの相互運用・Javaの代替として採用するケースの増加などからも将来性の高い言語である」
・Android開発のメイン言語である強み
GoogleがKotlinをAndroidアプリケーション開発の公式開発言語として認めた上に、"Kotlinファースト"として強く推しています。
以来、存在感を増している言語ですが、今後もますますAndroidアプリケーション開発においてメインの言語になると考えられます。
・JVM系言語の使用現場においてJavaやScalaの代わりとなりえる
Android開発以外にも、サーバーサイド・バックエンド開発での採用が増えています。
Javaよりもシンプルな文法で記述可能であり、Scalaよりも学習コストがぐんと低い点などから、
従来であればJavaやScalaが使われていたケースにおいてもKotlinが選択される傾向になりつつあります。
・"Better Java" としてのポジションを確保
Kotlinは学習コストが低く、Javaの弱点を補った言語仕様であり、エンジニアの中でも非常に人気が高いです。
"Javaよりもより良い言語" としてKotlinの需要は伸びていくと考えられます。
3. まとめ
2020年にエンジニアが次に学びたいプログラミング言語ランキングをまとめてみました。
本記事では、上位3位を解説しましたが、4位にはTypescript、5位にはR と、まだそこまで認知度の高くない新しい言語もランクインしています。
IT業界は様々な分野においてめまぐるしい勢いで発展を遂げているため、求められる技術も開発言語も日々変化しています。
これからプログラミング言語を学ぶ場合にも、スキルアップ・キャリアアップを狙う場合にも、その言語で何ができるか、需要・将来性などもおさえた上で、世界のエンジニアから注目を集める言語にチャレンジしてみてはいかがでしょうか。