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

Learn to Program, not a Programming Language – codeburstより はじめに Happy Holidays!! こんにちは、Oasistです。 前回の「Vol.1 -世界に現存する数とその需要-」では、 プログラミング言語の数 プログラミング言語人気ランキングトップ10 プログラミング言語の需要を左右する要因 について触れました。 クリスマス本番の本日は、「Vol.2 -言語の「死」-」です(聖なる夜に暗いタイトルですみません)。 目次 プログラミング言語が「死ぬ」時 まとめ ⚓ 1. プログラミング言語が「死ぬ」時 前回同様、まずは自然言語から考えてみましょう。 自然言語が「死ぬ」時とはどんな時なのでしょうか。 Alpha Omega Translationsではこのように定義されています。 The true definition of a dead language is one that has no native speakers left. There are several different ways that it can happen, but the bottom line is that if there is only one person left who speaks the language as their native tongue and fluently, then the language has died. (死語の本当の定義はネイティヴスピーカーが全くいない言語のことである。そのような事態に至る経緯はいくつか存在するが、結論としてはその言語を母語として流暢に話す人が一人しかいなくなった時、それは死んだことになる。) Alpha Omega Translationsより引用 上の引用の第一文と第二文の繋がりが分かりづらいので補足します。 言語が生きるためには、それがコミュニケーションに使われ、変化し続けなくてはなりません。 ところで、コミュニケーションが成立するために最低限必要な人数はいくつでしょうか。 答えは二人です。 話し手(speaker)と聞き手(listener)が最低一人ずつ存在しなければいけないのです。 つまり、自然言語が「死ぬ」時は、話者が2人以上存在しなくなってその変化が完全に止まった時、と結論づけることが出来ます。 それでは、プログラミング言語が「死ぬ」時とはどんな時なのでしょうか。 Codementorは以下の定義付けで2018年現在の「最も学習する価値のない言語」ワースト20を発表しています。 Be it because nobody is using it, nobody is hiring for it, or nobody is talking about it — based on the level of community engagement, the job market, and overall growth — some languages just aren’t worth your time anymore. (その言語を誰も使わないとかそれを生業としていないという理由であろうと、もしくはそれがコミュニティのエンゲージメント、就職市場、総合的な成長性において全く俎上に上らないという理由あろうと、その言語はもはや時間を費やす価値のない言語である。) Worst Programming Languages to Learn in 2018より引用 記事の情報量が膨らんでしまうので、それぞれの言語を学ぶべきでない理由の詳細については、英語サイトになりますが元ページを参照して下さい。 * この手の記事は恣意的かつ独断的なきらいがあり、中立で客観的な主張をしているものを見つけるのは難しいと感じます。この参考サイトもそのような「匂い」はしますが、少なくとも感情論ではなく、コミュニティのエンゲージメント数や成長性、市場価値を他の言語と比較検証しているので、「こんな意見もあるのか」というスタンスで参照して頂ければと思います。 C++の生みの親であるBjarne Stroustrup氏は、プログラミング言語について以下のように述べています。 There are only two kinds of languages: the ones people complain about and the ones nobody uses. (世の中には二種類の言語しか存在しない。一つは人々がケチをつける言語、そしてもう一つは誰も使わない言語だ。) Bjarne Stroustrupより引用 前者はコミッターやデベロッパー、ユーザーがいる言語のことを指しています。 コミッターがいるということは、そのプログラミング言語はバージョンアップし続けていることになります。 例えば、Rubyの2018年のリリースバージョンをRuby Releasesを参考にまとめると下記の通りです。 * スペースの都合上、テーブルに掲載仕切れないものは「etc.」としました。 Release Version Release Date … Continue reading 自然言語学からみたプログラミング言語 Vol.2 – 言語の「死」-