「不完全にしておよそ正しくないプログラミング言語小史」の版間の差分
(→関連項目) |
Administrator (トーク | 投稿記録) |
||
(3人の利用者による、間の4版が非表示) | |||
3行目: | 3行目: | ||
== 1801 == | == 1801 == | ||
− | [[ジョセフ・マリー・ジャカール]]が[[パンチカード]]を使った[[プログラム]]に対応した織機([[ジャカード織機]])によってタペストリーに"[[hello, world]]"と織り出す。しかし[[ラッダイト]] (当時のRedditer) たちは、[[テールリカージョン]]、[[並行処理]]、[[ | + | [[ジョセフ・マリー・ジャカール]]が[[パンチカード]]を使った[[プログラム]]に対応した織機([[ジャカード織機]])によってタペストリーに"[[hello, world]]"と織り出す。しかし[[ラッダイト]] (当時のRedditer) たちは、[[テールリカージョン]]、[[並行処理]]、[[大文字小文字]]の区別を欠いていたため、さほど感心しなかった。 |
== 1842 == | == 1842 == | ||
82行目: | 82行目: | ||
== 1995 == | == 1995 == | ||
− | [[ブレンダン・アイク]]が[[プログラミング言語]]設計においてかつて犯されたあらゆる誤りを取り上げ、さらにいくつかの誤りを新たに考案し、[[LiveScript]]を作る。後にこの[[言語]]は[[Java]]の人気にあやかるため[[JavaScript]] | + | [[ブレンダン・アイク]]が[[プログラミング言語]]設計においてかつて犯されたあらゆる誤りを取り上げ、さらにいくつかの誤りを新たに考案し、[[LiveScript]]を作る。後にこの[[言語]]は[[Java]]の人気にあやかるため[[JavaScript]]と改名された。さらにこの言語は皮膚病の人気にあやかるため[[ECMAScript]]と改名された<ref>ECMAScript(通称:ES)と突発性発疹(英語:exanthema subitum、通称:ES)</ref><ref>https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html</ref>。 |
== 1996 == | == 1996 == | ||
91行目: | 91行目: | ||
== 2003 == | == 2003 == | ||
− | 酔っていた[[ | + | 酔っていた[[マーティン・オーダスキー]]が、誰かのピーナッツバターが他の人のチョコレートと一緒になるというReese's Peanut Butter Cups(リーセス・ピーナツバター・カップス)<ref>http://www.youtube.com/watch?v=DJLDF6qZUX0</ref>の広告を見ていて着想を得、[[オブジェクト指向]]と[[関数型言語]]の両方の要素を統合した[[プログラミング言語]]「[[Scala]]」を作る。これは両方の陣営の怒りを買うことになり、それぞれが直ぐさま聖戦を宣言することとなった。 |
== 関連項目 == | == 関連項目 == | ||
105行目: | 105行目: | ||
* [http://www.aoky.net/articles/james_iry/brief-incomplete-and-mostly-wrong.htm 不完全にしておよそ正しくないプログラミング言語小史 James Iry / 青木靖 訳 2009年5月7日] - 和訳 | * [http://www.aoky.net/articles/james_iry/brief-incomplete-and-mostly-wrong.htm 不完全にしておよそ正しくないプログラミング言語小史 James Iry / 青木靖 訳 2009年5月7日] - 和訳 | ||
− | + | [[category: プログラミング言語]] | |
+ | |||
__NOTOC__ | __NOTOC__ |
2024年2月9日 (金) 09:57時点における最新版
これは「不完全にしておよそ正しくないプログラミング言語小史」に手を加えたものである。 オリジナルについては「#外部リンク」を参照。
1801[編集 | ソースを編集]
ジョセフ・マリー・ジャカールがパンチカードを使ったプログラムに対応した織機(ジャカード織機)によってタペストリーに"hello, world"と織り出す。しかしラッダイト (当時のRedditer) たちは、テールリカージョン、並行処理、大文字小文字の区別を欠いていたため、さほど感心しなかった。
1842[編集 | ソースを編集]
人類最初のプログラマーと言われるエイダ・ラブレスが、チャールズ・バレッジの作った仮想マシン「解析機関(analytical engine)」のマニュアルを書き、その中に記載されたソースコードが世界で最初のプログラムと言われるようになる。
彼女の努力は、プログラムを実行するコンピュータが実のところ存在しないというマイナーな問題のために頓挫した。後にエンタープライズアーキテクトたちはプログラムをUMLで書くために彼女のテクニックを再び学ぶことになる。
1936[編集 | ソースを編集]
アラン・チューリングが存在しうるあらゆるプログラミング言語を発明するが、特許化する前に英国情報部員(後の007)によって抹殺される。
1936[編集 | ソースを編集]
アロンゾ・チャーチも存在しうるあらゆるプログラミング言語を発明しているが、より巧みに行った。チャーチのラムダ計算はC言語にあまり似ていなかったために無視されることになった。この批判はC言語がまだ考案されていないにもかかわらず起きている。
1940年代[編集 | ソースを編集]
様々な「コンピュータ」が直接的な配線とスイッチによって「プログラム」される。技術者たちがそのようにしていたのは、タブか、スペースか、という論争を避けるためであった。
1957[編集 | ソースを編集]
ジョン・バッカスとIBMがFORTRANを作る。IBMとFORTRANには何も面白いところはない。青いネクタイを装着せずにFORTRANを書くのはシンタックスエラーとなる。
1958[編集 | ソースを編集]
ジョン・マッカーシーとポール・グレアムがLISPを考案する。戦後の戦略的括弧の備蓄不足による価格高騰のため、LISPが人気を得ることはなかった[1]。しかしその人気のなさにも関わらず、LISP (現在では “Lisp”、もしくは“Arc”と書かれる)は「マクロ」や「見下し」といった強力なプログラミングテクニックによって影響力ある言語であり続けている[2]。
1959[編集 | ソースを編集]
L・ロン・ハバードとの賭に負けた後、グレース・ホッパーとその他数名のサディストたちがCOBOL (Capitalization Of Boilerplate Oriented Language、大文字定型文指向言語)を考案する。後年、ホッパー少将のCOBOLの仕事に対する心得違いの性差別主義者による攻撃として、Rubyカンファレンスで反女性的な素材[3]が使われている。
1964[編集 | ソースを編集]
ジョン・ケメニーとトーマス・カーツがコンピュータサイエンティストでない人向けの非構造化言語BASICを作る。
1965[編集 | ソースを編集]
ケメニーとカーツは GO TO 1964
1970[編集 | ソースを編集]
ガイ・スティールとジェラルド・サスマンがSchemeを作る。彼らの仕事は一連の論文「究極のラムダ(Lambda the Ultimate[4])」シリーズへと繋がり、「究極の台所用品ラムダ」を生み出した。この論文は長期間続いたが結局は失敗に終わった深夜のインフォマーシャルの基礎となった。ラムダは広くは知られずにいたが、Javaがそれを持っていなかったため人気を博すようになった。
1970[編集 | ソースを編集]
ニクラウス・ヴィルトが手続き型言語Pascalを作る。馴染みのあるCの形式「x = x + y」ではなく「x := x + y」をPascalが使っていため、即座に批判に晒されることになった。この批判はCがまだ考案されていないにもかかわらず起きている。
1972[編集 | ソースを編集]
デニス・リッチーが前と後ろ同時に発射できる強力な銃を発明する。しかし彼はこの発明による死傷者の数に飽きたらず、CとUnixを発明した。
1972[編集 | ソースを編集]
アラン・カルメラウアーが論理型言語Prologを発明する。彼の目的は2歳児の知能を有する言語を作ることであった。彼はあらゆる問いに「ノー」と答えるPrologセッションを公表し、その目的が達成されたことを示した。
1973[編集 | ソースを編集]
ロビン・ミルナーがM&M型理論に基づく言語「ML」を考案する。MLは形式的定義セマンティクスを持つSMLを生んだ。形式的セマンティクスのための形式的セマンティクスについて問われたためにミルナーは頭が爆発した。
ML系のよく知られた他の言語には、OCaml、F#、Visual Basicがある。
1980[編集 | ソースを編集]
アラン・ケイがSmalltalkを作り、「オブジェクト指向」という言葉を考案する。その意味を問われた彼は、「Smalltalkのプログラムはオブジェクトだ」と言っている。オブジェクトは何からできているのかとの問いには「オブジェクトだ」と答えている。ではそのオブジェクトは何でできているのかと問われ、彼はこう答えている。「ずっと下まで全部オブジェクトなんだよ。亀に達するまでずっと[5]」
1983[編集 | ソースを編集]
決して走ることのないプログラムを作るエイダ・ラブレスの能力を称え、ジャン・イクビアと米国国防省がプログラミング言語「Ada」を作る。特筆すべきAdaプログラムがかつて完成したという証拠はないにもかかわらず、Adaは歴史家から成功した公共事業とみなされている。何千というさまよえる防衛関係請負業者を救っているからである。
1983[編集 | ソースを編集]
ビョーン・ストラウストラップが耳にしたことのあるあらゆるものをCに詰め込んでC++を作る。出来上がった言語はあまりに複雑であったため、プログラムは未来に送って人工知能Skynetでコンパイルする必要があった。莫大なビルド時間を要したのである。
Skynetがそのようなサービスを行っている動機は明らかでないが、未来のスポークスパーソンは、「そんなこと気にしなくていいぜ、ベイビー」と、オーストリア訛りのある単調な口調で答えている。Skynetは体裁を装ったバッファオーバーランに過ぎないのではないかと予想する向きもある。
1986[編集 | ソースを編集]
ブラッド・コックスとトム・ラブがObjective-Cを作り、「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。現代の歴史家は2人が失読症ではないかと疑っている。
1987[編集 | ソースを編集]
ラリー・ウォールが居眠りしたとき、額がキーボードを打った。目覚めたラリー・ウォールは、モニターに表示されている文字列がランダムなものではなく、神が自らの予言者ラリー・ウォールに設計することを望んだプログラミング言語のサンプルプログラムであると確信した。そしてPerlが生まれた。
1990[編集 | ソースを編集]
サイモン・ペイトン・ジョーンズ、ポール・ヒューダック、フィリップ・ワドラー、ジョン・ ヒューズ、ならびに動物の倫理的扱いを求める人々によって構成される委員会により、遅延評価を行う純粋な関数型言語「Haskell」が作られる。副作用の制御に使われるモナドの複雑さのため、Haskellには抵抗を持つ人々がいる。ワドラーは批判を和らげるために、こう語っている。「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」
1991[編集 | ソースを編集]
オランダ人のプログラマ、グイド・ヴァンロッサムが謎の手術を受けるためアルゼンチンに渡ると、頭に大きな傷跡を付けて戻り、Pythonを考案する。支持者集団からは「終身独裁者」と呼ばれ、「やり方はひとつだけである」と世界に向けて宣言している。ポーランドでは不安視されている。
1995[編集 | ソースを編集]
ラスマス・ラードフが近所のイタリアンレストランでスパゲティ料理がWorld Wide Webを理解する優れたモデルであることに気づき、Webアプリケーションはこのメディアを模倣すべきであると思い至る。そしてナプキンの裏でPHP (Programmable Hyperlinked Pasta、プログラム可能なハイパーリンクされたパスタ)を設計した。PHPのドキュメンテーションは現在に至るまでナプキンに書かれている。
1995[編集 | ソースを編集]
オーストラリアがモヒカン刈りの戦士とティナ・ターナーの疾走する砂漠になるという漠然とした啓示の実現を回避するため、ユキヒロ・“Mad Matz[6]”・マツモトがRubyを作る。この言語は後に本当の作者であるデビッド・ハイネマイヤ・ハンソン(DHH)によりRuby on Railsと改名された。[MatzがRubyという言語を作ったというくだりは間違いだから次に改訂するときに取った方がいいよ == DHH]
1995[編集 | ソースを編集]
ブレンダン・アイクがプログラミング言語設計においてかつて犯されたあらゆる誤りを取り上げ、さらにいくつかの誤りを新たに考案し、LiveScriptを作る。後にこの言語はJavaの人気にあやかるためJavaScriptと改名された。さらにこの言語は皮膚病の人気にあやかるためECMAScriptと改名された[7][8]。
1996[編集 | ソースを編集]
ジェームズ・ゴスリンがJavaを作る。Javaは比較的冗長な構文を持ち、ガベージコレクションを行い、シングルディスパッチを使う、クラスベースで静的型付けのオブジェクト指向言語で、実装を単一継承しインタフェースを多重継承する。SunはJavaの新規性を大々的に宣伝した。
2001[編集 | ソースを編集]
アンダース・ヘルスバーグがC#を作る。C#は比較的冗長な構文を持ち、ガベージコレクションを行い、シングルディスパッチを使う、クラスベースで静的型付けのオブジェクト指向言語で、実装を単一継承しインタフェースを多重継承する。MicrosoftはC#の新規性を大々的に宣伝した。
2003[編集 | ソースを編集]
酔っていたマーティン・オーダスキーが、誰かのピーナッツバターが他の人のチョコレートと一緒になるというReese's Peanut Butter Cups(リーセス・ピーナツバター・カップス)[9]の広告を見ていて着想を得、オブジェクト指向と関数型言語の両方の要素を統合したプログラミング言語「Scala」を作る。これは両方の陣営の怒りを買うことになり、それぞれが直ぐさま聖戦を宣言することとなった。
関連項目[編集 | ソースを編集]
参考文献[編集 | ソースを編集]
- ↑ コンピュータサイエンスにとって幸いだったのは、中括弧と山括弧の供給は十分にあったことである。
- ↑ Verity Stob “Catch as catch can”より。
- ↑ http://www.thefword.org.uk/blog/2009/05/women_in_tech_t
- ↑ http://lambda-the-ultimate.org/
- ↑ http://en.wikipedia.org/wiki/Turtles_all_the_way_down#Origin
- ↑ http://www.madmaxmovies.com/
- ↑ ECMAScript(通称:ES)と突発性発疹(英語:exanthema subitum、通称:ES)
- ↑ https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html
- ↑ http://www.youtube.com/watch?v=DJLDF6qZUX0
外部リンク[編集 | ソースを編集]
- One Div Zero: A Brief, Incomplete, and Mostly Wrong History of Programming Languages - オリジナル(英文)
- 不完全にしておよそ正しくないプログラミング言語小史 James Iry / 青木靖 訳 2009年5月7日 - 和訳