#はじめに
プログラミング言語ができた背景をさらっと理解したいと思ったのと実際にどんな言語があるのかを改めて知っておきたいと思ったから会話方式でまとめました。
登場する人物は完全フィクションです。
参考資料:プログラミング言語年表
追記(2019/06/21)
○TypeScript追記しました。
○Groovy追記しました。
○FORTRANに1954年に考案された旨を追記しました。
○LISP、ALGOL58、COBOLについて年号を修正しました。
○会話で登場する"きゅ〜ぶ"とは自分のことです。
(Twitterでも積極的に発信してるのでこちらもよかったらよろしくお願いします。)
きゅ〜ぶ(Twitter)
##1940年代以前
チャールズ・バベッジ(イギリスの数学者)「コンピュータ作るで! 計画立てたで、後は文書化してくれ」
ルイジ・ルナブレア(イタリアの数学者)「書いたで、後は頼むわ」
エイダ・ラブレス(イギリスの貴族の女性)「(ゴリゴリ...) できたで」
きゅ〜ぶ「プログラミング最初に書いたのって女性だったんか・・・(びっくり)」
##1940年代
####1943年 プランカルキュール (Plankalkül)
コンラート・ツーゼ(ドイツの土木技術者)「ワイが研究目的で作った言語やで」
##1950年代後半-1960年代半ば
####1957年 FORTRAN(1954年に考案)
ジョン・バッカス(アメリカの数学者)「ワイが1954年から開発して完成させたやで」
きゅ〜ぶ「ワイが聞いたことある言語の中では一番古い言語やで。 FORTRANが初の高級言語なんやな」
####1958年 ALGOL58
ヨーロッパ「アメリカのFORTRANに対抗して作ったやで」
きゅ〜ぶ「へー、C言語とかPascalが影響を受けた構造化プログラミングの考え方を取り入れた最初の言語なんやな」
####1958年 LISP
ジョン・マッカーシー(アメリカの計算機科学者)「ポーランド記法を用いた言語やで」
きゅ〜ぶ「最古の関数型言語なんやな、人工知能とかでもまだ使われてるところがあるんやな」
####1959年 RPG
IBM「作ったやで」
####1959年 COBOL
J.Sammet「ワイらがアメリカ国防総省主導で作ったんやで」
きゅ〜ぶ「COBOLってこんな昔にできたんか・・・、60周年やんけ」
きゅ〜ぶ「COBOLもFORTRANと一緒で初期の高級言語の一つなんやな」
####1964年 BASIC
米ダートマス大学「ワイらが手続き型プログラミング言語として作ったんやで」
####1966年 PL/I
IBM「科学技術計算はFORTRAN、事務処理はCOBOLと用途分けしてたが一つの言語でカバーできるように作ったやで」
##1960年代後半-1970年代
####1966年 BCPL
マーティン・リチャーズ「B言語やC言語に影響与えた言語作ったやで」
####1967年 Simula
クリステン・ニガード、オルヨハン・ダール(ノルウェー計算センター)「オブジェクトの概念を持つ言語を作ったんやで」
####1968年 Forth
チャールズ・ムーア「ワイが作ったのは組み込み向けに使われてたらしいで」
####1969年 Pascal
ニクラウス・ヴィルト(スイスのチューリッヒ大学)「代表的な構造化言語やで、教育用の言語として使われてたらしいで」
####1970年 B言語
ケン・トンプソン(ベル研究所)「中間コード生成してインタプリタ実行するんやで」
####1972年 C言語
デニス・リッチー(アメリカの計算機科学者)「今でも幅広く使われてるなんて嬉しいんやで」
きゅ〜ぶ「C言語にはいつもお世話になってます。。。」
きゅ〜ぶ「自分がC言語を仕事で使い出したのが2016年だから44年前に作られた言語を触ったのかあ。」
きゅ〜ぶ「C言語の力ってすげー」
####1972年 Prolog
アラン・カルメラウアー、フィリップ・ルーセル「ワイらが作った言語は、人工知能の研究とエキスパートシステムの実現のために使われたらしいで」
####1970年代前半 Smalltalk
XEROX「オブジェクト指向を初めて取り入れたんやで」
####1974年 ML
エディンバラ大学「型推論機能付きの関数型言語を作ったやで」
####1977年 awk
開発者3人「我々の頭文字からつけた名前なんやで。 スクリプト言語の走りになったらしいんやで」
####1977年 SQL
エドガー・F・コッド(イングランド生まれの計算機科学者)「IBMと一緒にデータベースを管理するための言語として作ったやで」
きゅ〜ぶ「SQLもこんなに古い言語なのに今でもたくさん普通に使われてるし、すごいなあ・・・」
####1979年 Ada
アメリカ国防総省「ジェネリックプログラミングとか例外処理とか先進的な考えを取り入れた言語やで」
##1980年代
####1983年 C++
C++「C言語にオブジェクト指向を導入した言語やで。 色々やりすぎて複雑化してごめんよ〜。てへぺろ☆(・ω<)」
きゅ〜ぶ「ホンマやで。。。 最初vectorとか動的配列とか意味がわからなすぎて困ったわ。 しばらくはやりたくないで・・・」
####1983年 Objective-C
ブラッド・コックス「C++と同じでオブジェクト指向を持ったC言語の上位互換やけど、SmallTalkのオブジェクトシステムをC言語にそのまま取り付けた形やでC++ほど複雑ではないで」
きゅ〜ぶ「今はSwiftが使われているところが多いけど昔はiOSはObjective-Cやったもんなあ・・・」
####1984年 PostScript
PostScript「プリンターとかに描画したり、ページ記述で使われてたんやで」
####1985年 Eiffel
バートランド・メイヤー(フランス)「オブジェクト指向を取り入れて強い静的型付けが特徴やで」
####1987年 Perl
ラリー・ウォール(アメリカ)「主にCGIで使われてるんやで」
きゅ〜ぶ「最近はほとんどPHPになってきてるけど昔はWebアプリケーションでもPerlが結構使われてたよなあ・・・」
####1988年 Mathematica
スティーブン・ウルフラム(アメリカ)「数的処理システムとして作ったやで」
##1990年代
####1990年 Python
グイド・ヴァンロッサム(アメリカ)「オブジェクト指向のスクリプト言語として作ったやで、欧米で広く使われてるらしいで」
きゅ〜ぶ「Pythonってこんな昔なんか・・・ 使われるようになったのつい最近だからてっきりもっと最近の言語だと・・・」
####1990年 Haskell
ハスケル・カリー(アメリカ)「Haskellって名前はワイの名前が由来になってるらしいで。純粋な関数型プログラミング言語として作られたらしいんやで」
####1991年 Microsoft Visual Basic
マイクロソフト「Windows専用のGUIアプリケーション開発言語やで。 BASICとは関係ないんやで」
####1993年 Ruby(1995年に発表)
Matz(まつもとゆきひろ)「Perlのように使えればとオブジェクト指向スクリプト言語として作ったのがRubyなんやで」
きゅ〜ぶ「Ruby、自分と同じ誕生日で親近感が湧くやで、これからも日本人としてRuby言語を盛り上げていくんやで」
####1993年 Lua
Lua「C言語のホストプログラムを支えるためにできたんやで」
####1993年 Delphi
ポーランド「Pascalの血を引いたやで。 VBと一緒でWindows専用のGUIアプリケーション開発言語やで。」
####1995年 Java
サン・マイクロシステムズ「構文はC言語に似てるけど内容は全く別物やで。 今でもたくさん使ってくれて感謝やで。(フレームワークで良いのでないかな・・・)」
きゅ〜ぶ「Javaは今でもまだ案件数が多いし、SIerの研修もJavaが多いんやで。 これからもいろんなシステムやアプリケーションでお世話になるんやで」
####1995年 PHP/FI
ラスマス・ラードフ(カナダ)「最初はPHP/FIを開発したんやで。 これがのちに改良されてPHPって呼ばれるようになったんやで。 CやJavaに似た構文やけど動的型付けは強いんやで。 後はHTMLに埋め込みができるやで」
きゅ〜ぶ「PHPはこれからたくさんお世話になる気がするんやで。 これからもよろしくやで」
####1996年 SuperCollider
SuperCollider「音響の合成に特化した言語やで」
####1997年 JavaScript(ECMAScript)
ブレンダン・アイク(アメリカ)「機能は全然違うけどワイがネットスケープコミュニケーションズにいた時、Javaを作ったサン・マイクロシステムズと業務提携してたのがあってJavaScriptって名前になったんやで。 もともとはLiveScriptやで。 ECMAScriptとして標準化されて、今でも多くのWebブラウザで使われて感謝やで」
きゅ〜ぶ「JavaScriptってそういう理由で今の名前になったんや。。。 機能としての関連はないけど背景はやっぱあったんやなあ・・・」
####1998年 Erlang
エリクソン(スウェーデン)「並行処理指向で作った言語やで」
##2000年代
####2002年 Cシャープ
マイクロソフト「Javaの影響受けて、C++とJavaの中間の特徴を持った言語やで」
きゅ〜ぶ「ほー、Cの影響は名前的に影響受けてると思ってはいたけどJavaもなんか。。。 次の案件でお世話になるんやで」
####2003年 Scala
マーティン・オーダスキー「オブジェクト指向と関数型言語を組み合わせたマルチパラダイムな言語やで」
####2007年 D言語
D言語「C言語の置き換え用に作られた言語なんやで! おい、Cそこどけや」
C言語「すまんな、D。。。 まだお前の出番はない」
####2009年 Go
Google「C言語の伝統に則ったコンパイル言語やで。 Gopherっていうマスコット・キャラクターもおるで」
きゅ〜ぶ「おー、GoってCから移行しやすそうだなあ。。。 機会があったら触ってみたいなあ」
##2010年代
####2010年 Rust
Mozilla「Rust作ったで。 お前らC言語・C++から乗り替えろや」
C、C++「すまんな、まだワイらはいけるでお前の出る幕はないんやで」
####2011年 Dart
Google「Dart作ったで。 お前らJavaScriptから乗り替えろや」
JavaScript「すまんな、まだワイはいけるでお前の出る幕はないんやで」
####2012年 Julia
Julia「Pythonみたいに動的型付け言語がベースだけどC言語などの静的型付け言語の良さも取り入れてるんやで。 もっと使ってくれてもええんやで」
####2014年 Swift
アップル「Objective-Cからオブジェクト指向は残して、C言語から引き継いだ部分を刷新したんやで。 コンパイラ言語だけどインタプリタとしてスクリプトも実行できるんやで」
きゅ〜ぶ「Swiftってこんなに最近なのか、Macが普及してきたのも最近っちゃ最近だけど・・・」
####2014年 Hack
Facebook「PHPをベースにしたんやで。 PHPとも連携できるやで。 漸進的型付き言語っていう呼ばれ方してるでみんなも使ってクレメンス」
##番外編
####1996年 R言語
R言語「統計の分析とかデータ解析に使えるんやで。 数学的な考えが必要だから文系出身者に俺を使いこなすことは難しいと思うんやで」
####2003年 Groovy
Groovy「Javaはワイが面倒みたるわ、ワイは動的型付け言語でKotlinやScalaの静的型付け言語とも差別化できとるやで、良かったら使ってみてや」
####2011年 Kotlin
ジェットブレインズ「静的型付けのオブジェクト指向プログラミング言語やで。 最近はAndroidでJavaからKotlinに移行してくれるのが多くて感謝やで。 サーバーサイドでもたまに採用してくれてるみたいで嬉しいんやで」
####2012年 Elm
Elm「2019年にわざわざ学ばなくてもいいプログラミング言語第一位に輝いたんがワイやで。 プログラミング経験の浅いフロント学びたい人にはオススメなんやで。」
####2012年 Elixir
Elixir「Erlangの仮想環境上で動くんやで。 拡張性が高いのも強みだで。 みんなも使ってみてくれよな」
####2012年 TypeScript
マイクロソフト「JavaScriptのスーパーセットやで。 みんなJavaScriptからTypeScriptに乗り換えるんやで」
JavaScript「いや型とかクラス定義とかいらんやろ」
jQuery「TypeScriptでもワイは使えるし別に変えてもええんやで。 でもワイは使ってクレメンス」
##まとめ
きゅ〜ぶ「結構歴史を追ってくとどういう背景でできたのかとか普通に見てて面白かったやで」
きゅ〜ぶ「まだ探ってみると色々あるみたいやけど今回はこのくらいにしておくんやで」
最後にも言いますが今回の会話は全てフィクションです。