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.

で、次は何がくるの? - 第2回 TIS Matsuri

6,564 views

Published on

社内イベント向けのスライドです。Clojureモノノフを増やすために若干の他言語比較がありますが、ディスりの意図は決してございません。

Published in: Technology
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

で、次は何がくるの? - 第2回 TIS Matsuri

  1. 1. で、次は何がくるの? で、次は何がくるの? kawasima
  2. 2. Technology Trends
  3. 3. Post Javaの時代 Java8? Scala? NodeJS? Ruby? Kotlin? Groovy? Ceylon? Go?
  4. 4. Different cars, same road 注) Rich Hickeyのスライドに大いに煽り成分を加えてあります。要は表面的な違いしかないってことです。 ● ● ● ● 多重継承もMix-inもインタフェースも大した違 いなんてねーよ 動的型付けだろうが、静的型付けだろうが、 ダメプログラマはゴミコードを書く 文末セミコロンもインデントスタイルもブ ロックも、個人の趣味でしかないって クロージャもインナークラスも大差ないっ て。Java8ラムダに何期待してんの? http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf
  5. 5. マルチコア と クラウド たくさんあるコンピュータを いかに使いこなすか? Matz ( https://engineer.type.mag.jp/article/matz )
  6. 6. Concurrencyへの対応 シンプルさにどれだけ配慮できているかが重要 ● ● レースコンディションは複雑さに起因して発 生するものである。 状態とふるまいとアイデンティティと時間軸 が組み合わさる、現在のオブジェクト指向は 暗黙的な複雑さの源泉である。
  7. 7. シンプルとは One role One task One concept One dimension https://github.com/richhickey/slides/blob/master/simplicitymatters.pdf
  8. 8. シンプルとイージーは違う イージーとは、「少ない手数でやりたいことを 実現する」ということ。 – apt-get / yum – gem install https://github.com/richhickey/slides/blob/master/simplicitymatters.pdf
  9. 9. 時代はイミュータブル Concurrency and Parallelism Versionable API Git Immutable Infrastructure Immutable database
  10. 10. イミュータブル is シンプル これがマルチコア / クラウド 時代には 最も重要な概念になってくる
  11. 11. イミュータブル時代の プログラミング言語
  12. 12. Clojure
  13. 13. Clojure is simple Clojure Scala http://java.dzone.com/articles/my-scala-vs-clojure-impression
  14. 14. Clojure is LISP シンプルさを追求したがゆえのLISPという選択肢 プログラム = データ (同図像性) 関数型で状態をもたない
  15. 15. LISP or Not Lisp 世の中の言語は2種類しかない。 LISPか、LISPでないか
  16. 16. Clojure runs on JVM SIerが気にするJavaとの接続性 (javax.swing.JOptionPane/showMessageDialog nil “Hello World”) http://clojure.org/getting_started
  17. 17. Clojure is イミュータブル コレクションもすべてイミュータブル (def my-map {:fred “ethel”}) (assoc my-map :ricky “lucy”) => {:ricky “lucy”, :fred “ethel”} my-map => {:fred “ethel”}
  18. 18. 他言語のイミュータブルへの取組み どっちもできるよ。 var ミュータブル val イミュータブル 使う側が選べてほら便利! freezeメソッド呼べばイミュータブルにできるか らー irb(main):001:0> map = {:a => 1, :b => {:c => 3}}.freeze => {:a=>1, :b=>{:c=>3}} irb(main):002:0> map[:b][:c] = "A" => "A" irb(main):003:0> map => {:a=>1, :b=>{:c=>"A"}}
  19. 19. SIerで使いにくい多様なイミュータブル 非同期アクセスされる可能性のあるコレクションは イミュータブルな型を使うこと。 イミュータブルなコレクションとは、List, Stream, Vector, Stack, Queue, Range, HashMap, TreeSet, TreeMap, …である。 よくわからなければ、Vectorを使うこと。 こんなコーディング規約ができることが想像される。
  20. 20. 思想のレベルでイミュータブル そもそもイミュータブルな型しかない ミュータブルな感じで使いたいときは、 参照(ref)を作って、参照先の値を切り替える
  21. 21. イミュータブルなモデル アイデンティティと状態の分離 Epochal Time Model Pure Function F F 1984 State 2000 State 2014 State Identity Value http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf
  22. 22. 性能面での配慮 コレクションに要素追加するたび、新しいコ レクションが作られていたら、メモリ喰うし 遅いんじゃないの?
  23. 23. Bit-Partitioned Hash Tries 変更のあった部分木だけ新たに作り、それ以外は共有する 変更も削除も検索もO(1) 5 0 1 2 7 3 4 4 5 6 http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf
  24. 24. Refsモデル 状態はイミュータブルなデータへの参照として扱う value @foo :b “ethel” :c 42 17 :e foo “fred” :d Identity :a 6 http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf
  25. 25. STM 参照の切り替えはロックなしに実行される Ref v0 v2 v1 Transaction v0 F V1' Ref copy v0 value Commit 成功 v0でないので Commit 失敗 F V1' v1 F V2'
  26. 26. Clojureのはじめかた LightTable いま世界でもっともナウいエディタ
  27. 27. イミュータブル時代の Webフレームワーク
  28. 28. Darzana https://github.com/kawasima/darzana/
  29. 29. Webサイト運用の課題 ● ● ● Viewテンプレートを書き換えるだけなのに、 サーバ再起動が必要になる。(Java) ちょっとした変更でも開発者の手が必要。 サイト運用者で変更可能にしたいけど、リテ ラシー的にバージョン管理ができない問題
  30. 30. 特長 ● ViewもControllerも再起動いらずのデプロイ – ● サイト運用者が簡単に安全にViewや Controllerを編集できる – ● それでいて性能はJavaと同等 それでいて、熟練プログラマにもやさしい 変更は自動的にGitでバージョン管理される – それでいて、コマンドラインでのgit操作も可能
  31. 31. API First ● データソースはWeb APIを前提とする。 – イミュータビリティが保ちやすい ● – 複数バージョンを使いわける ナウいから
  32. 32. Architecture Jetty Tomcat HttpKit Ring Compojure Handlebars Template API Executor Darzana router API Redis
  33. 33. Template ● テンプレートにはHandlebarsテンプレートを 利用する。 – 将来的にクライアントサイドでもレンダリングが 可能に!
  34. 34. Router ● いわゆるコントローラ ● URLに対応してコンポーネントブロックを呼び出す – API実行 (非同期並列実行が可能) – テンプレートレンダリング – セッション格納 – エラーハンドリング – A/B testing
  35. 35. Darzanaにおけるアプリケーションの変更 ● 必ずブランチを作って編集 – ● 当然ブラウザから操作可能 動作確認後、masterにマージする – 当然ブラウザから操作可能
  36. 36. Demo
  37. 37. 試してみるには Dockerのイメージあります – JavaもClojureもDarzanaもセットアップ済み – VMWareがあれば、会社のマシンでもすぐに試せ る。 – http://index.docker.io/ で「darzana」で検索!
  38. 38. さあ次世代の開発を体験してみよう!

×