言語の世界            ネットワーク応用通信研究所                楽天 技術研究所              Rubyアソシエーション               @yukihiro_matz             ...
プログラミング言語って?          言語ってなんだろう?言語の世界                  Powered by Rabbit 0.9.2
プログラミング言語って?        プログラム=手順書        手順書記述用人工言語言語の世界                Powered by Rabbit 0.9.2
プログラミング言語って?        プログラム=理想記述        思考表現用人工言語言語の世界                Powered by Rabbit 0.9.2
せめぎあうふたつの立場        機械のためか?        人間のためか?言語の世界             Powered by Rabbit 0.9.2
FORTRAN (1954)        FORmula TRANslator言語の世界                        Powered by Rabbit 0.9.2
FORTRAN (1954)        人間のため         数式でプログラムできるよう言語の世界                      Powered by Rabbit 0.9.2
FORTRAN (1954)        機械のため         速く計算できるためにはどんなことでも言語の世界                         Powered by Rabbit 0.9.2
FORTRAN (1954)        ループアンローリング        ベクトル化言語の世界                    Powered by Rabbit 0.9.2
FORTRAN (1954)        背景        コンピュータが遅かった言語の世界                     Powered by Rabbit 0.9.2
FORTRAN (1954)        背景        「言語の常識」がまだなかった言語の世界                     Powered by Rabbit 0.9.2
LISP (1958)        LISt Processor言語の世界                    Powered by Rabbit 0.9.2
LISP (1958)        人間のため         数学的概念からスタート         ラムダ計算言語の世界                     Powered by Rabbit 0.9.2
LISP (1958)        機械のため         IBM704計算機         car=content of address register         cdr=content of data register言語の...
LISP (1958)        人間のため         ガーベージコレクター言語の世界                     Powered by Rabbit 0.9.2
LISP (1958)        人間のため         Lispプログラマは値はなんでも知っている         が、コストについてはなにも知らない言語の世界                       Powered by Rab...
LISP vs FORTRAN         人間主義 vs 機械主義言語の世界                     Powered by Rabbit 0.9.2
勝者は?        Algol!言語の世界            Powered by Rabbit 0.9.2
漁夫の利        原始的すぎるFORTRAN        数学的すぎるLISP        求められたのはアルゴリズム記述言語の世界                   Powered by Rabbit 0.9.2
新たな伝統の誕生         Algolは滅びぬ!        何度でもよみがえるさ言語の世界                 Powered by Rabbit 0.9.2
Algol属        Algol → PL/I        Algol → Pascal言語の世界                    Powered by Rabbit 0.9.2
Algol属        Ada, Eiffel, C, C++, Java,...言語の世界                              Powered by Rabbit 0.9.2
Lispへの揺り戻し        Smalltalk, Scheme, Ruby,...言語の世界                             Powered by Rabbit 0.9.2
言語のカンブリア爆発        カンブリア爆発           古生代カンブリア紀の           間に突如として今日見           られる動物の「門」が出           そろった現象言語の世界           ...
言語のカンブリア爆発        言語のカンブリア爆発           1960年代後半から           1970年代前半までに           多種多様な言語が誕           生した現象言語の世界          ...
言語のカンブリア爆発        現在の「重要」な言語分類の基礎         システムプログラミング言語         C:1972         オブジェクト指向言語         Simula:1967         スクリプ...
言語のカンブリア爆発        「変な言語」も          配列指向言語          APL:1960         論理型言語         Prolog:1972         並列言語         アクターモデル...
つまり、どういうことか        キバヤシ           優れた言語のアイディ           アは1970年代までに           出揃っているのだよ!        MMRメンバー           なんだってーーっ!...
言語設計者受難の時代         どうせ既存のものの組         み合わせさ言語の世界                 Powered by Rabbit 0.9.2
そうは言っても        人気の言語はそれなりに新しい         Perl (1986)         Python (1990)         Ruby (1995)         PHP(1995)言語の世界        ...
そうは言っても        人気の言語はそれなりに新しい         Java (1995)         C# (2000)         Scala (2003)         Erlang (1986)言語の世界       ...
新しい?        とは言っても10年、20年言語の世界                   Powered by Rabbit 0.9.2
新しい?        言語の世界じゃ10年く        らいじゃまだまだはなた        れ小僧さ言語の世界                 Powered by Rabbit 0.9.2
新しい言語の動機        作りたかったから        新しいパラダイム        新しい環境        新しい制約言語の世界                Powered by Rabbit 0.9.2
新しいパラダイム        構造化プログラミング        オブジェクト指向プログラミング        関数型プログラミング言語の世界                     Powered by Rabbit 0.9.2
新しいパラダイム        ここ20年くらい登場してないなあ言語の世界                  Powered by Rabbit 0.9.2
新しいパラダイム        過去のパラダイムの組み合わせ言語の世界                Powered by Rabbit 0.9.2
新しいパラダイム        既存のパラダイムの組み合わせ         並列+関数型         オブジェクト指向+関数型         並列+論理型言語の世界                    Powered by Rabbi...
既存のパラダイムの組み合わせ        バランスの良い組み合わせ言語の世界                  Powered by Rabbit 0.9.2
新しい環境        新しいOS        新しいCPU        新しいアプリケーション言語の世界                 Powered by Rabbit 0.9.2
新しいアプリケーション        Web        MapReduce言語の世界                  Powered by Rabbit 0.9.2
新しい制約        CPU数        メモリ量        データ量        アクセス量言語の世界                  Powered by Rabbit 0.9.2
どこまでが言語か        文法        ライブラリ        アーキテクチャ言語の世界                   Powered by Rabbit 0.9.2
どこまでが言語か        デザインパターン        コミュニティ        エコシステム言語の世界                Powered by Rabbit 0.9.2
どこまでが言語か        思想        人格言語の世界                   Powered by Rabbit 0.9.2
         温故知新言語の世界          Powered by Rabbit 0.9.2
         歴史から学ぶ言語の世界            Powered by Rabbit 0.9.2
         歴史のパターン言語の世界          Powered by Rabbit 0.9.2
歴史の振り子        集中 vs 分散言語の世界              Powered by Rabbit 0.9.2
歴史の振り子        性能 vs 生産性言語の世界               Powered by Rabbit 0.9.2
歴史の振り子        静的 vs 動的言語の世界              Powered by Rabbit 0.9.2
歴史の振り子        正確さ vs 柔軟さ言語の世界                Powered by Rabbit 0.9.2
未来の言語         APL言語の世界           Powered by Rabbit 0.9.2
APL        APLによるライフゲーム言語の世界                  Powered by Rabbit 0.9.2
未来の言語        Whitespace言語の世界                Powered by Rabbit 0.9.2
Whitespace        Whitespaceによるhello world言語の世界                          Powered by Rabbit 0.9.2
未来の言語        新しいぶどう酒は新し        い皮袋に              [「マタイ 9:17」より引用]言語の世界                     Powered by Rabbit 0.9.2
旧来の言語        古いぶどう酒は古い皮        袋に言語の世界                Powered by Rabbit 0.9.2
未来の言語        大規模分散        高抽象度言語の世界              Powered by Rabbit 0.9.2
未来へのパラメータ        データ量        アクセス量        CPU数言語の世界                Powered by Rabbit 0.9.2
データ量        ビッグデータ言語の世界               Powered by Rabbit 0.9.2
アクセス量        クラウド        ソーシャルゲーム言語の世界                  Powered by Rabbit 0.9.2
CPU数        マルチコア        クラウド言語の世界                  Powered by Rabbit 0.9.2
未来の言語         Erlang         Node.js         R         SQL        の発展形言語の世界                     Powered by Rabbit 0.9.2
Erlang        分散        アクターモデル言語の世界                 Powered by Rabbit 0.9.2
Node.js        大量アクセス        非同期I/O言語の世界                  Powered by Rabbit 0.9.2
R        統計・解析        ビッグデータ連携 (R-ODM)言語の世界                      Powered by Rabbit 0.9.2
SQL        宣言的データ取得        高抽象度        Hive言語の世界                Powered by Rabbit 0.9.2
言語の楽しさ        プログラミングの楽しさ言語の世界                 Powered by Rabbit 0.9.2
言語の楽しさ        言語=プログラミング言語の世界                Powered by Rabbit 0.9.2
言語の楽しさ        言語実装=プログラミング言語の世界                  Powered by Rabbit 0.9.2
言語の楽しさ        言語実装=プログラミング総合芸術言語の世界                 Powered by Rabbit 0.9.2
言語の楽しさ        言語設計=プログラミング言語の世界                  Powered by Rabbit 0.9.2
言語の楽しさ        言語設計=発想をプログラミング言語の世界                 Powered by Rabbit 0.9.2
言語の楽しさ        We program you!言語の世界                     Powered by Rabbit 0.9.2
         Enjoy Programming!言語の世界                        Powered by Rabbit 0.9.2
Upcoming SlideShare
Loading in...5
×

言語の世界

6,404

Published on

デブサミ12

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,404
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
89
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

言語の世界

  1. 1. 言語の世界 ネットワーク応用通信研究所 楽天 技術研究所 Rubyアソシエーション @yukihiro_matz まつもとゆきひろ Yukihiro "Matz" Matsumoto言語の世界 Powered by Rabbit 0.9.2
  2. 2. プログラミング言語って? 言語ってなんだろう?言語の世界 Powered by Rabbit 0.9.2
  3. 3. プログラミング言語って? プログラム=手順書 手順書記述用人工言語言語の世界 Powered by Rabbit 0.9.2
  4. 4. プログラミング言語って? プログラム=理想記述 思考表現用人工言語言語の世界 Powered by Rabbit 0.9.2
  5. 5. せめぎあうふたつの立場 機械のためか? 人間のためか?言語の世界 Powered by Rabbit 0.9.2
  6. 6. FORTRAN (1954) FORmula TRANslator言語の世界 Powered by Rabbit 0.9.2
  7. 7. FORTRAN (1954) 人間のため 数式でプログラムできるよう言語の世界 Powered by Rabbit 0.9.2
  8. 8. FORTRAN (1954) 機械のため 速く計算できるためにはどんなことでも言語の世界 Powered by Rabbit 0.9.2
  9. 9. FORTRAN (1954) ループアンローリング ベクトル化言語の世界 Powered by Rabbit 0.9.2
  10. 10. FORTRAN (1954) 背景 コンピュータが遅かった言語の世界 Powered by Rabbit 0.9.2
  11. 11. FORTRAN (1954) 背景 「言語の常識」がまだなかった言語の世界 Powered by Rabbit 0.9.2
  12. 12. LISP (1958) LISt Processor言語の世界 Powered by Rabbit 0.9.2
  13. 13. LISP (1958) 人間のため 数学的概念からスタート ラムダ計算言語の世界 Powered by Rabbit 0.9.2
  14. 14. LISP (1958) 機械のため IBM704計算機 car=content of address register cdr=content of data register言語の世界 Powered by Rabbit 0.9.2
  15. 15. LISP (1958) 人間のため ガーベージコレクター言語の世界 Powered by Rabbit 0.9.2
  16. 16. LISP (1958) 人間のため Lispプログラマは値はなんでも知っている が、コストについてはなにも知らない言語の世界 Powered by Rabbit 0.9.2
  17. 17. LISP vs FORTRAN 人間主義 vs 機械主義言語の世界 Powered by Rabbit 0.9.2
  18. 18. 勝者は? Algol!言語の世界 Powered by Rabbit 0.9.2
  19. 19. 漁夫の利 原始的すぎるFORTRAN 数学的すぎるLISP 求められたのはアルゴリズム記述言語の世界 Powered by Rabbit 0.9.2
  20. 20. 新たな伝統の誕生 Algolは滅びぬ! 何度でもよみがえるさ言語の世界 Powered by Rabbit 0.9.2
  21. 21. Algol属 Algol → PL/I Algol → Pascal言語の世界 Powered by Rabbit 0.9.2
  22. 22. Algol属 Ada, Eiffel, C, C++, Java,...言語の世界 Powered by Rabbit 0.9.2
  23. 23. Lispへの揺り戻し Smalltalk, Scheme, Ruby,...言語の世界 Powered by Rabbit 0.9.2
  24. 24. 言語のカンブリア爆発 カンブリア爆発 古生代カンブリア紀の 間に突如として今日見 られる動物の「門」が出 そろった現象言語の世界 Powered by Rabbit 0.9.2
  25. 25. 言語のカンブリア爆発 言語のカンブリア爆発 1960年代後半から 1970年代前半までに 多種多様な言語が誕 生した現象言語の世界 Powered by Rabbit 0.9.2
  26. 26. 言語のカンブリア爆発 現在の「重要」な言語分類の基礎 システムプログラミング言語 C:1972 オブジェクト指向言語 Simula:1967 スクリプト言語 Shell:1971 関数型言語 ML:1972言語の世界 Powered by Rabbit 0.9.2
  27. 27. 言語のカンブリア爆発 「変な言語」も 配列指向言語 APL:1960 論理型言語 Prolog:1972 並列言語 アクターモデル:1973言語の世界 Powered by Rabbit 0.9.2
  28. 28. つまり、どういうことか キバヤシ 優れた言語のアイディ アは1970年代までに 出揃っているのだよ! MMRメンバー なんだってーーっ!!言語の世界 Powered by Rabbit 0.9.2
  29. 29. 言語設計者受難の時代 どうせ既存のものの組 み合わせさ言語の世界 Powered by Rabbit 0.9.2
  30. 30. そうは言っても 人気の言語はそれなりに新しい Perl (1986) Python (1990) Ruby (1995) PHP(1995)言語の世界 Powered by Rabbit 0.9.2
  31. 31. そうは言っても 人気の言語はそれなりに新しい Java (1995) C# (2000) Scala (2003) Erlang (1986)言語の世界 Powered by Rabbit 0.9.2
  32. 32. 新しい? とは言っても10年、20年言語の世界 Powered by Rabbit 0.9.2
  33. 33. 新しい? 言語の世界じゃ10年く らいじゃまだまだはなた れ小僧さ言語の世界 Powered by Rabbit 0.9.2
  34. 34. 新しい言語の動機 作りたかったから 新しいパラダイム 新しい環境 新しい制約言語の世界 Powered by Rabbit 0.9.2
  35. 35. 新しいパラダイム 構造化プログラミング オブジェクト指向プログラミング 関数型プログラミング言語の世界 Powered by Rabbit 0.9.2
  36. 36. 新しいパラダイム ここ20年くらい登場してないなあ言語の世界 Powered by Rabbit 0.9.2
  37. 37. 新しいパラダイム 過去のパラダイムの組み合わせ言語の世界 Powered by Rabbit 0.9.2
  38. 38. 新しいパラダイム 既存のパラダイムの組み合わせ 並列+関数型 オブジェクト指向+関数型 並列+論理型言語の世界 Powered by Rabbit 0.9.2
  39. 39. 既存のパラダイムの組み合わせ バランスの良い組み合わせ言語の世界 Powered by Rabbit 0.9.2
  40. 40. 新しい環境 新しいOS 新しいCPU 新しいアプリケーション言語の世界 Powered by Rabbit 0.9.2
  41. 41. 新しいアプリケーション Web MapReduce言語の世界 Powered by Rabbit 0.9.2
  42. 42. 新しい制約 CPU数 メモリ量 データ量 アクセス量言語の世界 Powered by Rabbit 0.9.2
  43. 43. どこまでが言語か 文法 ライブラリ アーキテクチャ言語の世界 Powered by Rabbit 0.9.2
  44. 44. どこまでが言語か デザインパターン コミュニティ エコシステム言語の世界 Powered by Rabbit 0.9.2
  45. 45. どこまでが言語か 思想 人格言語の世界 Powered by Rabbit 0.9.2
  46. 46.   温故知新言語の世界 Powered by Rabbit 0.9.2
  47. 47.   歴史から学ぶ言語の世界 Powered by Rabbit 0.9.2
  48. 48.   歴史のパターン言語の世界 Powered by Rabbit 0.9.2
  49. 49. 歴史の振り子 集中 vs 分散言語の世界 Powered by Rabbit 0.9.2
  50. 50. 歴史の振り子 性能 vs 生産性言語の世界 Powered by Rabbit 0.9.2
  51. 51. 歴史の振り子 静的 vs 動的言語の世界 Powered by Rabbit 0.9.2
  52. 52. 歴史の振り子 正確さ vs 柔軟さ言語の世界 Powered by Rabbit 0.9.2
  53. 53. 未来の言語 APL言語の世界 Powered by Rabbit 0.9.2
  54. 54. APL APLによるライフゲーム言語の世界 Powered by Rabbit 0.9.2
  55. 55. 未来の言語 Whitespace言語の世界 Powered by Rabbit 0.9.2
  56. 56. Whitespace Whitespaceによるhello world言語の世界 Powered by Rabbit 0.9.2
  57. 57. 未来の言語 新しいぶどう酒は新し い皮袋に [「マタイ 9:17」より引用]言語の世界 Powered by Rabbit 0.9.2
  58. 58. 旧来の言語 古いぶどう酒は古い皮 袋に言語の世界 Powered by Rabbit 0.9.2
  59. 59. 未来の言語 大規模分散 高抽象度言語の世界 Powered by Rabbit 0.9.2
  60. 60. 未来へのパラメータ データ量 アクセス量 CPU数言語の世界 Powered by Rabbit 0.9.2
  61. 61. データ量 ビッグデータ言語の世界 Powered by Rabbit 0.9.2
  62. 62. アクセス量 クラウド ソーシャルゲーム言語の世界 Powered by Rabbit 0.9.2
  63. 63. CPU数 マルチコア クラウド言語の世界 Powered by Rabbit 0.9.2
  64. 64. 未来の言語 Erlang Node.js R SQL の発展形言語の世界 Powered by Rabbit 0.9.2
  65. 65. Erlang 分散 アクターモデル言語の世界 Powered by Rabbit 0.9.2
  66. 66. Node.js 大量アクセス 非同期I/O言語の世界 Powered by Rabbit 0.9.2
  67. 67. R 統計・解析 ビッグデータ連携 (R-ODM)言語の世界 Powered by Rabbit 0.9.2
  68. 68. SQL 宣言的データ取得 高抽象度 Hive言語の世界 Powered by Rabbit 0.9.2
  69. 69. 言語の楽しさ プログラミングの楽しさ言語の世界 Powered by Rabbit 0.9.2
  70. 70. 言語の楽しさ 言語=プログラミング言語の世界 Powered by Rabbit 0.9.2
  71. 71. 言語の楽しさ 言語実装=プログラミング言語の世界 Powered by Rabbit 0.9.2
  72. 72. 言語の楽しさ 言語実装=プログラミング総合芸術言語の世界 Powered by Rabbit 0.9.2
  73. 73. 言語の楽しさ 言語設計=プログラミング言語の世界 Powered by Rabbit 0.9.2
  74. 74. 言語の楽しさ 言語設計=発想をプログラミング言語の世界 Powered by Rabbit 0.9.2
  75. 75. 言語の楽しさ We program you!言語の世界 Powered by Rabbit 0.9.2
  76. 76.   Enjoy Programming!言語の世界 Powered by Rabbit 0.9.2
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×