自然言語学からみたプログラミング言語 Vol.1 – 世界に現存する数とその需要 –


Learn to Program, not a Programming Language – codeburstより

はじめに

Happy Holidays!!
こんにちは、Oasistです。

大学時代は英語学のゼミを専攻しており、四年時に休学して1年間オーストラリアに滞在し、生活レベルの英語に浸かりました。
現在でも、休日にはVital Japan主催の勉強会に出席したり、言語学関係の書籍を日がな一日読んでいたり。
(休日は全く違った脳領域を使うことがリフレッシュの鍵ですね!)

こういった経緯で言語というものに強い関心を持っておりますが、ある日ふと「言語学と同じアプローチでプログラミング言語を紐解いたら何か新しい発見があるのでは」と思いつき、この記事を書きました。
仕事や趣味でプログラミング言語は触るけど、プログラミング言語そのものについてそれほど意識することがないよという方にとって、またそれ以外の読んで下さる方にとって少しでも新しい発見や議論が生まれれば、筆者の仕事は大成功です。
内容としては、ガチガチにプログラミングについて述べたものではありません。
したがって、肩の力を思い切り抜いて、暇な時にサラッと「箸休め」的記事としてお読み下さい。

言語というのは非常に多面的でその全てに言及するのは非常に骨が折れますので、大きく以下の2つのテーマに絞りたいと思います。

  1. プログラミング言語って何者? Vol.1 -世界に現存する数とその需要-
  2. プログラミング言語って何者? Vol.2 -言語の「死」-

クリスマス・イブの本日は「Vol.1 -世界に現存する数とその需要-」です。

目次

  1. プログラミング言語の数
  2. プログラミング言語人気ランキングトップ10
  3. プログラミング言語の需要を左右する要因

1. プログラミング言語の数

2017年現在、Ethnologueによると世界に存在する自然言語の数は7,079と言われています。
ただし、この数は現存する「生きた=話者がいる」言語ですので、ラテン語等の「死んだ」言語は除かれています。

さて、世界にはどのほど多くのプログラミング言語が存在するのでしょうか?
この疑問に対する答えは、予想していたよりも遥かに深淵で難解でした。
というのも、どのような尺度でその数を定めるか、何を持ってプログラミング言語と定義するかによってその数は大きく変わってしまうからです。
事実、以下に示すソースでもその数はバラバラ。
CodeLaniによると、プログラミング言語は以下の通りです。


・TIOBE – 250
TIOBEの指数は、最大250の人気プログラミング言語を一覧化した最も信頼のおけるリストの一つ。
以下の三つの要件を満たしたプログラミング言語のみを掲載している。

  1. 独立したWikipediaページが存在していること – 十分な知名度・市民権がある
  2. コンピューターが処理可能である
  3. Google検索で5,000以上の人がある – 参照が十分である

・Wikipedia – 700
有名な現存する全てのプログラミング言語を記載することを主眼としている。
マークアップ言語等、一部の言語はプログラミング言語の範疇として扱っていない。

・FOLDOC – 1,000
1,990年代のオンラインのコンピューター関連辞書。エイリアスを含めて掲載。

・The Language List – 2,500
1,991年誕生。最大2,500のコンピューター言語を掲載。実装歴や需要に関係なく、刊行物に載ったことがあるコンピューター言語も含めて掲載している。

・HOPL – 8,945
Diarmuid Pigott氏公開のプログラミング言語集。

・J.E. Sammet – ~165 (In 1971)
Jean Sammet氏はコンピューターの先駆けで、COBOL開発に寄与。1971年という早い段階で最大165のプログラミング言語を追究。


CodeLaniは、使用者がいる一般的用途のプログラミング言語の数は500~2,000の間である、と結論づけています。
しかし、明確な基準を持っているTIOBE250という数が最も説得力があると思えます。

2. 需要ランキングトップ10

World Economic Forumによると、自然言語において、第一言語話者のみに絞った場合、中国語が第一位で約12億8400万人。
今や世界共通語としての地位を築きつつある英語は第三位。
ただし、第二言語や外国語として英語を話す人口を含めると、その数は15億人にも上ります。

それでは、2018年現在の需要トップ10はどのプログラミング言語でしょうか。
以下にその結果を示しますが、このランキング自体は大した重要性を持っていませんので、トリビア程度に思って頂ければと思います。
* 以下のランキングは、TIOBECodeLaniusersnaphackr-blogtechpediastyleguideを参照して作成しています。

Position Language Ratings Usage
1 Java 15.932% Server-side apps, Video games, Android apps etc.
2 C 14.282% Loe-level apps, Firmware of TVs, OS of Windows and airplanes etc.
3 Python 8.376% Web apps, Data analysis etc.
4 C++ 7.562% OS, Browsers, Banking apps, Cloud/Distributed systems, Embedded systems, Telephone switches etc.
5 Visual Basic .NET 7.127% Development of consoles, GUIs, Windows forms, Web services, Web apps
6 C# 3.455% Microsoft apps etc.
7 Javascript 3.963% Interactive elements to and from websites etc.
8 PHP 2.442% Data-heavy websites, apps development, WordPress, Facebook etc.
9 SQL 2.184% Interaction with sweet data etc.
10 Objective-C 1.477% Apps on OS X and iOS

TIOBE Index | TIOBE - The Software Quality Companyより引用

3. プログラミング言語の需要を左右する要因

自然言語において、英語は世界共通語としての地位を確立しつつあります。
その要因は大きく二つあります。

一つは、英語という言語の持つ三つの性質です。

  1. 豊かな語彙 – 世界中の言語からの借用語でその語彙数を増やし続けている。表現を豊かにするだけでなく、第二言語や外国語として学習する者にとって、自らの母語の語彙が英語に存在することは親しみを抱かせることにも一役買っている。
  2. 文法性の消失 – 他の欧州言語のドイツ語やフランス語と違い、現代英語には文法性は存在せず、自然性である(古英語は男性名詞、女性名詞、中性名詞が存在した)。
  3. 屈折の消失 – 現代英語では代名詞にしか残っていない。具体的には、I-my-meのように、名詞が主格-所有格-目的格で形が変わることを指す(古英語はドイツ語同様、格によって形が変わった)。

この豊かな語彙と文法の単純化は、特に第二言語や外国語として英語を話す者にとって非常に大きなメリットです。

そしてもう一つは、政治的・経済的な権力です。
17世紀~20世紀、かつては大英帝国がその産業革命や高度教育の確立によって世界を席巻していましたが、やがて今日のようにアメリカがその地位に取って代わりました。
つまり、奇しくも大英帝国という英語圏国家からアメリカ合衆国という英語圏国家へのバトンタッチがあったのです。
日本がアメリカ英語を標準とするのは、政治的な背景が大きく影響していることでしょう。

それでは、プログラミング言語において、その需要を左右する要因とは何でしょうか。
一番大きな要因は、就職市場で需要があるか、つまりどのくらいの求人があるか、ではないでしょうか。
CODING DOJOの記事は次のように言及しています。

There are many ways to measure a programming language’s popularity, but we believe examining job demand is most useful because it shows developers the skills to learn to improve their career prospects.
(「プログラミング言語の需要を測る尺度は数多く存在するが、我々は求人が最も有用な尺度で在ると考えている。何故なら、それがキャリアの展望をより明るくするために学ぶべき技術を示しているからだ。)

CODING DOJOより引用

求人があるということは、「開発現場で必要とされている技術だが、それを有している人間がいない」ということに他ならないわけですから、逆を言えばそれを有している人間は価値が高いということになります。
必然的にその技術を学ぶ人間が多くなり、そのプログラミング言語の需要の人気が高まるという結果になると言えます。
前章のトップ10ではJavaが一位なのは、サーバーサイドのアプリケーションを始めとした幅広いシステムに使われており、需要が高いことを表しています。
また、tech skill on demand等のキーワードでGoogle検索をしてヒットするページで紹介される需要のある技術で、機械学習やAIは必ず出てきます。
BusinessLineでは、
“50,000 open data analytics jobs currently expected to double to 100,000 in 2018” (50,000あるオープンデータ解析の職種は2018年に100,000に倍増すると見込まれる)というタイトルとともに、以下のように述べられています。

“We expect a 60% increase in demand for AI and machine learning specialists in 2018,” said BN Thammaiah, Managing Director at Kelly Services India.
(Kelly Services India社の代表取締役BN Thammaiah氏は『2018年にAIと機械学習のスペシャリストに対する需要が60%増加すると予想している』と述べた。)

BusinessLineより引用

Pythonの需要が第三位と高いのも、このプログラミング言語が機械学習やAIで使われるからではないでしょうか。
「今」需要がある技術、「今後」伸びてくる技術の指標として、求人は有効な指標と言えそうです。

筆者は個人的に、他に習得難易度や十分なドキュメントがあるか、OSSか否かも関係するのではないかと予想していますが、有用なソースを見つけられませんでした。
他の要因とそれを裏付ける論拠、反証をお持ちの方は是非ともお教え頂けると非常に嬉しく思います。

あとがき

この記事では、大きく以下の三点について見てきました。

  1. プログラミング言語の数
  2. プログラミング言語人気ランキングトップ10
  3. プログラミング言語の需要を左右する要因

現存する自然言語の数は7,079。
しかし、その数は毎年減り続けています。
英語教師のPatricia Ryan氏によると、14日に一つの言語が地球上から消えているそうです。
その要因は何でしょうか。
そして、栄枯盛衰の激しいIT業界において、プログラミング言語が消える要因とは何でしょうか?

ということで、次回は「Vol.2 -言語の「死」-」をお送りします。

改めまして、Happy Holidays!!
また次回!

追記:時間の都合で没にした英語版の記事を加筆・推敲して個人ブログに公開しました。
宜しければご覧下さい。

参考ページ

  • Ethnologue – 最終アクセス日: 2018年12月13日
  • CodeLani – 最終アクセス日: 2018年12月13日
  • TIOBE – 最終アクセス日: 2018年12月13日
  • World Economic Forum – 最終アクセス日: 2018年12月13日
  • usersnap – 最終アクセス日: 2018年12月13日
  • hackr-blog – 最終アクセス日: 2018年12月13日
  • techpedia – 最終アクセス日: 2018年12月13日
  • styleguide – 最終アクセス日: 2018年12月13日
  • CODING DOJO – 最終アクセス日: 2018年12月13日
  • BusinessLine – 最終アクセス日: 2018年12月13日

関連記事

自然言語学からみたプログラミング言語 Vol.2 – 言語の「死」-

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

Oasist

Engineer. Born and raised in Saitama. Studied English linguistics at Rikkyo University and stayed in Australia for a year, where I went to a language school for 2 months in Sydney, worked in Hamilton Island Resort for 6 months, traveled to Brisbane / Gold Coast / Melbourne / Tasmania / Queenstown in New Zealand and worked as a volunteer assistant Japanese teacher in St.Ives High School. My favourite saying is "Out with the old, in with the new". I run personal blogs, Linguistics, IT Tips for my poor memory and Reviews of seminars and books.

Oasistの書いた記事

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ

BPSアドベントカレンダー