株式会社システムインテグレータ 代表取締役社長 梅田 弘之
(Twitter:@umedano)
IEEE Spectrumのプログラミング言語ランキング
アメリカ電気工学技術(IEEE)の学会誌「IEEE Spectrum」では、毎年夏になると、人気のプログラミング言語を発表しています。これはGoogle SearchやGoogle Trend、GitHub、Twitterなど10のオンラインソースをもとにして48のプログラミング言語を独自にランク付けしたものです。
過去のTOP5のランキングは表の通りです。2年前まではJavaの人気が強かったのですが、この2年凋落気味で、代わって今年TOPに躍り出たのはPythonです。背景にあるのは人工知能のブームで、Google TensorFlowやMicrosoft Cognitive Toolkitなど現在主流の機械学習ライブラリはみんなPython向けに提供されています。今や「人工知能やるならPython」と言われるくらい標準的なプログラミング言語となりましたが、Web系やIoT、3Dグラフィックなどでも使われています。
|
2014 |
2015 |
2016 |
2017 |
1位 |
Java |
Java |
C |
Python |
2位 |
C |
C |
Java |
C |
3位 |
C++ |
C++ |
Python |
Java |
4位 |
Python |
Python |
C++ |
C++ |
5位 |
C# |
C# |
R |
C# |
表:最近4年間の人気プログラミング言語
人気のプログラミング言語 2017
2017年のベスト10を見てみましょう。同じく人工知能の計算でよく使われるR言語が6位に入り、JavaScriptやPHPが後ろに続きます。日本で人気のRubyは残念ながらこの調査では12位とランキング外になってしまいました。(48言語すべてのランキングはこちら)
IEEE Spectrum:The 2017 Top Programming Languages
Pythonの特徴
人気があることと実際に使い手になるのには少しギャップがあります。特に日本ではJavaやCに比べてPythonをやっている人はぐっと少ないので簡単にどんな言語なのか説明しておきましょう。Pythonの特徴は、わかりやすく習得しやすい割に高度なプログラミングもでき、サードパーティライブラリが充実していて機械学習などのデータ処理に強いことです。インタープリター言語で構造をインデントで表現するので可読性も高いです。
現在のバージョンはPython 3です。Python 2は2020年にサポート終了するので、これから勉強するならPython 3です。毎年Pyconというイベントが開催され、Pythonユーザーが集まって情報交換したり交流しています。Pyconは世界中で開催され、日本でも9月にPycon JPが開催され盛り上がりました。他にもboot campなどのイベントもあるので、せっかくPythonやるのなら積極的にこうしたコミュニティに参加するといいでしょう。
最初に勉強するプログラミング言語
IT業界を目指して自分でプログラミングを学習するなら、どの言語を選んだらいいでしょうか。私がもし電車で乗り合わせた女子大生に尋ねられたら(勝手な妄想ですみません)Pythonをお薦めします。
もちろん、企業に入ってすぐに役立ちそうなのはJavaやJavasctipt、C言語でしょうが、すでに膨大なプログラマーがいるところに”みんなと一緒なら安心”と日本人的に入るより、まだ希少価値だし目立つからという理由で人気急上昇中のPythonを選ぶ方が面白いと思います。
就職の面接でも「Javaできます」と言えば、「お、使えるな」ってポイントを上げられますが、「Python得意です」と言えば「おお〜なんかすごそう!」となってより有利になるのです。
企業が選ぶプログラミング言語
ソフトウェア会社にとっても、得意とするプログラミング言語を選ぶのは重要です。当然、世の中のニーズのある言語を使えるプログラマーが多い方がビジネス的に有利なので、この場合はJavaやJavasctiptなどがやっぱり無難と言えます(趣味で仕事しているわけじゃないんだぁってつぶやきながら)。
当社のプログラミング言語事情
参考までに当社のプログラミング言語事情を紹介しましょう。当社の場合はプロダクトベンダーなので、製品やサービスを作るときに選んだプログラミング言語とずっと付き合う必要があります。96年にリリースしたECパッケージ「SI Web Shopping」はJavaで、翌年リリースした開発支援ツール「SI Object Browser」はDelphi(ランキング27位に頑張っています)を使っています。かれこれ20年以上も使い続けているのですが、言語選びのときに「この言語は廃れないか」という判断要素は重視しています。
2004年に開発したERP「GRANDIT」や統合型プロジェクト管理「OBPM」の開発ではC#を選び、2018年1月リリースのプログラミングスキル判定サービス「TOPSIC」はRubyで作っています。そしてAItechlabというAIチームはもちろんPythonと一部R言語を使っています。
なんか、いろいろなプログラミング言語が入り混じっていますね。これは場当たり的に決めているわけではなく、技術志向の強い会社としてはできるだけその時点で人気のある新しいプログラミング言語を積極的に試して行こうという方針があるからです。 [RELATED_POSTS]
プログラミング言語のマルチリンガル
その方針の背景にあるのがアルゴリズムであり、マルチリンガルです。プログラミングスキルで大切なのは、言語を覚えること以前にアルゴリズムを組み立てる力です。そこさえ抑えておけば、プログラミング言語の違いはすぐに適応できます。そして、複数のプログラミング言語を使いこなせるマルチリンガルになった方が、さまざまな言語からヒントを得てプログラミングスキルがより高くなるからです。
若手の意見
と、ここまで書いて、やっぱり若手の意見も聞いておこうと電車の女子大生シーンを何人かに尋ねてみました。
Y君(OBPMチーム C#、Java、c++、Kotlin、JavaScriptなどが得意)
「最初の1、2週間はBASICを勉強かな」
梅田
「え、まさかのBASIC? その心は?」
Y君
「低機能で古い分、仕組みを理解しやすいし、歴史もわかる。できない制約も多いので後々高機能な言語に触れたときにその良さを実感できるから」
梅田
「BASICやった後は?」
Y君
「ポインターを触れるC++がいいでしょう。CPUとメモリを扱うイメージがつかめるからね」
A君(TOPSICチーム Ruby、Java、Javascriptなどが得意)
「HTMLとJavascript」
梅田
「おっと、そう来たか。どうして?」
A君
「CやJavaは初心者にはハードルが高いので、最初はこんな感じで簡単にホームページを作れるって実感してもらう方がいいと思います」
K君(AIチーム Python、Java、Javascriptなどが得意)
「流行りの観点でPythonかな。あとWebのスクリプト系言語でRuby、それとサーバーサイド系でC#かJavaってところかな。スマホ系でkotlinも抑えておきたいところです」
梅田
「お、人気の言語が並んでいる(ほっ)」
K君
「Javaはちょっと古臭いから個人的にはあんまりなんだけど、やっぱりJavaやっておけば使えるところが多いから奨めてしまうなぁ」
う~ん、女子大生に対する考え方が極端に違う3者3様でした!(^^)!
- カテゴリ: