プログラミング言語の歴史
プログラミング言語の歴史
流れを追うのも面白いが、それらが何を解決するために生まれたのかを知りたいmrsekut.icon
その辺の論文も読みたい
各言語の詳細はできるだけ個別ページに書くmrsekut.icon
ここでは3行ぐらいに抑えたい
1801
ジャカード織機
「しょっき」と読むmrsekut.icon
布を織る機械を、パンチカードによってパターンの指示をしていた
1842
解析機関をCharles Babbageが計画
後にAda Lovelaceがその文章を加筆翻訳した。最初のプログラマ
1936
ラムダ計算をAlonzo ChurchとStephen Cole Kleeneが提案
Haskellのような関数型の言語へつながる
チューリングマシンをAlan Turingが提案
ノイマン型コンピュータなどにつながる
1943
ENIAC coding systemをArthur Walter Burksが考案
プログラミングができるコンピュータ
17,468本の真空管を使い、幅は24m
このでかいコンピュータのあちこちの端子にケーブルをつなぎ替えることでプログラミングしてた
1944
Harvard Mark I
https://ja.wikipedia.org/wiki/Harvard_Mark_I
https://www.wizforest.com/gear/ascc/
EDVAC
Electronic Discrete Variable Automatic Computer
https://ja.wikipedia.org/wiki/EDVAC
1945
MEMEX
ハイパーテキストの元ととなったシステムの概念
1946年
SSEC
https://www.wizforest.com/OldGood/ssec/
1948
Plankalkülの論文をKonrad Zuseが発表
「ぷらんかるきゅーる」、名前がかっこいい..mrsekut.icon
Plankalkülの設計自体は1942~1945
1949
C-10という言語もあった
EDSACが開発される
Electronic Delay Storage Automatic Calculator
紙テープに穴を開けてデータを表現し、これを読み込むコンピュータ
入力の紙テープは1列に5個の穴がある
ブラウザ上で動くEDSACシミュレータを公開しました - 西尾泰和のはてなダイアリー
アセンブリ言語
EDSACのため
https://ja.wikipedia.org/wiki/アセンブリ言語#歴史
1952
Autocode
Alick Glennieが開発
コードを機械語にコンパイルする言語としては初
つまり「初めてコンパイルされた言語」
https://en.wikipedia.org/wiki/Autocode
1954
FORTRANをJohn Backusが考案
高級言語としては最初
1958
ALGOL58
構造化プログラミングの生まれ
ほんまに?mrsekut.icon
アルゴリズムの研究開発用に開発された
多くの言語に影響を与えた
Lisp
John McCarthy
最古の関数型言語
メタプログラミングでの拡張のしやすさで研究分野で普及
1959
RPG
IBM製
1960
COBOL
アメリカ国防総省主導のGrace Hopperが開発
自然言語としての英語に寄せた
事務所利用言語として専門家でなくても扱えるものとして設計
ATM、クレカ処理、電話システム、病院や政府、自動車、交通信号など
1962
Simula I, Simula67
Simulaの元となる言語
1964
BASIC
最初は、ダートマス大学の「ダートマスBASIC」
John George Kemeny、Thomas Eugene Kurtzが開発
後にMicroSoft製のMicrosoft BASICが誕生
Bill GatesとPaul Allenが開発
1965
PL/IをIBMが開発
科学技術計算のFORTRANと、事務処理のCOBOLという感じだったが、それを一つの言語でカバー
言語仕様が膨大で大型機械でしか広まらなかった
1966
BCPL
言語処理系のフロントエンドとバックエンドが別れた最初
現在のコンパイラ技術の基礎の確立
Martin Richards
BやC言語に影響を与えた
ISWIM
関数型言語
1967
LOGO
Simula
オブジェクト指向の基本概念をもつ最初の言語
「オブジェクト指向」という言葉はまだないが、起源
元はシミュレーション用言語として開発、後に汎用言語となった
1968
Forth発表
FLEX Machine
PAL
1969
PascalをNiklaus Wirthが開発
教育用に使われていた
フランスの哲学者のパルカルが語源
初期のappleのソフトウェア開発に使用されていた
1970
Bをベル研究所でKenneth Lane Thompsonが開発
IRを生成してインタプリタを実行する
1972
CをDennis MacAlistair Ritchieらが開発
Unixを書き換えるために開発
OSを書くための言語なので、余計なチェックをせず高速な言語として設計された
「プログラマは間違えない」という前提の下で使える言語
Prolog
論理プログラミング言語
人工知能の研究とエキスパートシステムの実現のために使われていた
Smalltalk-72開発開始
XEROXのパロアルト研究所
Alan Key、Adele Goldberg、Dan Ingallsが開発
DynabookであるAltoのOSという位置づけで開発されていた
「オブジェクト指向」の考え方を世に広めた
SASL
関数型言語
1973
Alto
1974
CLU
ML
開発者はRobin Milner
定理証明系言語のLogic for Computable Functionsの推論規則を記述する言語として設計された
型推論がある
型推論の最初ではないよな?、型付きラムダ計算とかあるし #??
1975
Scheme言語
限りなくシンプルな方向性を尖らしたLisp方言
1976
Mesa
XEROX
1977
FP
John Backus
発表は1977年だが、MLよりも早い時期にあったらしい ref
awkコマンド
スクリプト言語の最初
開発者の3人の頭文字より命名
SQL
IBMのDonald D. ChamberlinとRaymond F. Boyceが開発
DBのクエリ言語として
Ada
米国国防総省が主導
ジェネリックプログラミング、例外機構の最初
高度な型の体型を持つ #気になる
1978
MATLABをCleve Molerが開発
Matix Laboratory
数値計算、研究、教育などに使用されている
1981
KRC
関数型言語
1983
C++をベル研究所のBjarne Stroustrupが開発
C言語にオブジェクト指向を導入
Objective-C
Brad CoxとTome Loveが開発
1984
PostScript
電子印刷
Common Lisp
拡張のしやすさで方言が乱立するLispの最小公倍数的存在を目指した
仕様が巨大すぎることでも有名
1985
Eiffel
Miranda
1986
「Object-Oriented」という言葉が論文上で使われ始めたのはこの辺から
ref 「オブジェクト指向プログラミング」その起源からの検証
Object Pascal
アップルコンピュータ
1987
Perl
CGI
Self
prototype指向の言語はここが起源 #??
Clean
1988
Mathematica
Stephen Wolframが開発
数理処理システム
1990
Turbo Pascal
Python
Guido van Rossumの話も参考
「Jupyter」の「pyt」
Haskell 1.0
A History of Haskell: being lazy with classというHaskellの開発者らが書いた論文がある
Standard ML
1991
Visual Basic
Microsoft
GUIを扱える
Oak言語
後のJava
Coq
CoCから改名
1993
RubyをMatzが開発
Lua
Delphi
WindowsのGUIアプリケーション開発言語
VBA
1995
JavaをSun Microsystemsが開発
https://dzone.com/articles/a-short-history-of-java
https://en.wikibooks.org/wiki/Java_Programming/History
JavaScript
Netscape NavigatorのためにBrendan Eichが開発
もともとはLiveScriptという名前だったが、Javaの人気に肖って今の名になった
ブラウザ戦争の話は闇が深くて有名mrsekut.icon
ECMAScriptの標準化が1997年
PHP/FIをRasmus Lerdorfが開発
後のPHP
Limbo
Rob Pike
https://ja.wikipedia.org/wiki/Limbo
1996
SuperCollider
R
「Jupyter」の「r」
George Ross IhakaとRobert Clifford Gentlemanがオークランド大学で開発
由来はこの二人の名前のR
統計に用いられる
OCaml
Objective Camlという名前だった
1997
REBOL
1998
Erlang
OSS化
1999
Agda
2000
C#
MicroSoft製
Visual BasicのシンプルさとC++の計算能力を組み合わせることを目的として開発
いろいろな面でJavaに似てる
2002
Io
プロトタイプ指向の言語
2003
Scala
Martin Odersky
オブジェクト指向と関数型のマルチパラダイム
JVM上で動作する
Groovy
James Strachanが開発
JVM上で動作するRubyに影響を受けた
2005
F#
MS
2007
D
そういえば誰が作ったんだ?
Cの代替として作られた
Idris
Clojure
2008
Nim
2009
GoをGoogleが開発
大規模ソフトウェアに発生しうる問題に対処するために開発
2010
Rust
Mozilla
線形型
2011
Dart
Google
JSの代替品として開発?
Kotlin
JetBrains製
2012
Julia
「Jupyter」の「Ju」
動的型付けがベースだが、静的型付けの良さも入れた
Elixir
Elm
Evan Czaplickiが修士論文で作った
もともとはFRPの言語
TypeScript
MS
JavaScriptのスーパーセットして開発
/keroxp/TypeScriptは過去最高のプログラミング言語だと思う
2013
PureScript
2014
SwiftをAppleが開発
Objective-Cからオブジェクト指向は残して、Cから引き継いだ部分を刷新
Hack
PHPの漸進的型付けの言語
Facebook
2015
Zig
2019/6/23
V
これはリアルタイムで観測したmrsekut.icon
initial commit
2020
Ante
今のリポジトリのinitial commitは2020/8/12になっている
が、Twitterで辿れば2017年にはシェアされているし、GitHubのNetworkで辿ると2015/8のもある
2022
CarbonをGoogleが公開
7/20
C++の後継という立ち位置
2023
Mojo
栄枯盛衰
https://www.youtube.com/watch?v=Og847HVwRSI
https://www.youtube.com/watch?v=jBksc8SdUF8
大作だ、すごいmrsekut.icon*4
各言語の派生関係を見える化した記事
プログラミング言語の歴史を見える化してみた | taisablog
これすごいmrsekut.icon
O'Reilly Mediaの言語の派生図
https://www.cs.toronto.edu/~gpenn/csc324/PLhistory.pdf
参考
プログラミング言語年表 - Wikipedia
最初に「プログラミング言語」という言葉が使われ始めたのは一体いつなのか? - GIGAZINE
「Programming Language」という言葉の起源
A History of Computer Programming Languages
http://stap.ait.kyushu-u.ac.jp/~zhao/course/2019/2019-L11-Functional%20Programming%20Languages-students%20(20190627).pdf
http://www.aoky.net/articles/james_iry/brief-incomplete-and-mostly-wrong.htm
https://homepages.inf.ed.ac.uk/wadler/topics/history.html
Philip Wadler
https://gigazine.net/news/20180416-art-of-writing-software/
ソフトウェア開発がもたらしてきた功績の歴史をひもとくムービー
https://sakumaga.sakura.ad.jp/entry/2020/10/29/120000
ちょまどさん
Some History of Functional Programming Languages
オブジェクト指向プログラミングの歴史