Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp

987 views

Published on

Learn Languages 2017 in ODC の LT でお話させていただいた発表の資料です。

Published in: Technology
  • Be the first to comment

Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp

  1. 1. 従来言語で理解する 次世代言語の概念 Learn Languages 2017 in ODC 日本工学院専門学校 蒲田キャンパス 2017-08-20 @takano32 a.k.a. TAKANO Mitsuhiro / 高野光弘
  2. 2. 次世代の発想 次世代の発想は既存の発想の発展が多い 空飛ぶ車 車 + 飛行機 プログラミング言語にも同様の特徴が多くある
  3. 3. 従来が次世代だったころ Perl sh + sed + awk C++ C + オブジェクト指向 Java オブジェクト指向 + 仮想計算機
  4. 4. 次世代の言語についても 従来の言語にあった概念の 多くが参考になる
  5. 5. あくまで「こんなイメージ 」 本気度高いヒトは 石を投げないで下さい
  6. 6. サンプルはアンケート項目
  7. 7. Ruby Perl + オブジェクト指向 分かりやすい
  8. 8. Haskell ラムダ計算 + 圏論 + LISP 理解に苦しみがあるかもしれない LISP は従来の言語で関数型指向言語の代表格
  9. 9. JavaScript Java + LISP function が魔窟でもあり武器でもある
  10. 10. Scala Java + LISP + ML 型推論やパターンマッチは OCaml っぽい
  11. 11. Kotlin Java + Groovy + Scala Groovy は Ruby + Python + Smalltalk
  12. 12. Swift Scala + C++ + REPL(Read Evaluation Print Loop) REPL はインタラクティブな動作が特徴 Python を起動した直後とかが REPL
  13. 13. Erlang Prolog + Smalltalk 簡約していくことを意識すると書きやすい アクターモデル 小さなオブジェクトが分散して仕事をする
  14. 14. Elixir Erlang + Ruby Erlang のような堅牢性 可読性を重視 手軽に堅牢性を実現する試み
  15. 15. Rust Haskell + ML + Erlang 型がよくできている 並行性は軽量なタスクで構成
  16. 16. C# C + Java + LISP + COINS COINS は中間言語が特徴 X => 中間言語 => Z Y => 中間言語 => Z
  17. 17. Go C + Python + Erlang 構文チェックなどの厳格さ コードを正準系にする機能がある goroutine は軽量プロセスっぽく使える
  18. 18. だいたいこんなイメージ
  19. 19. 伝えたいこと
  20. 20. 次世代言語の概念 いきなり次世代言語を理解するのは難しい 過去にいろいろな問題解決の試みがある 理解できないものも分割すれば理解できる
  21. 21. まとめ この先生きのこるには 次世代言語の概念の理解 既存の言語の概念も有用 次世代の次を生きのこるには 次世代言語の概念をいまのうちに理解する 千里の道も一歩から 言語の歴史をさかのぼる 断片的な理解を集めて合体させれば理解できる
  22. 22. ご清聴ありがとうございました

×