Ruby開発が教えてくれたこと
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Ruby開発が教えてくれたこと

  • 68,441 views
Uploaded on

CEDEC2011 9月8日招待講演

CEDEC2011 9月8日招待講演

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
68,441
On Slideshare
12,706
From Embeds
55,735
Number of Embeds
25

Actions

Shares
Downloads
90
Comments
0
Likes
22

Embeds 55,735

http://gigazine.net 51,377
http://ke-tai.org 2,606
http://news.livedoor.com 1,224
http://paper.li 254
http://boutofcontext.com 59
http://www.slideshare.net 38
http://www.gigazine.net 36
http://sapient.jp 27
http://webcache.googleusercontent.com 23
http://twinleaves.tumblr.com 22
http://us-w1.rockmelt.com 20
http://www.google.co.jp 11
http://s.deeeki.com 9
https://www.google.co.jp 8
http://sadayuki.kurano.name 6
http://www.hanrss.com 3
http://hatebutv.com 2
http://58.188.103.33 2
http://safe.tumblr.com 2
http://translate.googleusercontent.com 1
http://twitter.com 1
http://service.meltwaternews.com 1
http://cache.yahoofs.jp 1
http://www.google.ca 1
http://www.shiawa.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ruby開発が教えてくれたこと (財)Rubyアソシエーション (株)ネットワーク応用通信研究所 (株)楽天 技術研究所 Heroku [New] まつもと ゆきひろ @yukihiro_matz Powered by Rabbit 0.9.2
  • 2. プログラミングとの出会いポケットコンピュータPC-1210 1/71 Powered by Rabbit 0.9.2
  • 3. コンピュータでなにするかゲーム計算プログラミング言語 2/71 Powered by Rabbit 0.9.2
  • 4. 手段と目的手段としての言語目的としての言語手段のためには目的を選ばない 3/71 Powered by Rabbit 0.9.2
  • 5. Sapir-Whorf仮説言語は思考に影響を与える 制限を与える 発想を与える 4/71 Powered by Rabbit 0.9.2
  • 6. 言語の選択は重要生産性に直結 ストレス コスト 記法 5/71 Powered by Rabbit 0.9.2
  • 7. プログラミング言語Ruby 開発効率に注目 より簡単に より効率よく より気分よく 6/71 Powered by Rabbit 0.9.2
  • 8. 気分重要な要素プログラマの気分を重視 7/71 Powered by Rabbit 0.9.2
  • 9. プログラマの気分気分が良い時 思った通りに行く時 万能感 我慢しない時 悩まない時 8/71 Powered by Rabbit 0.9.2
  • 10. 思った通りに行く時常識が通用する予測が当たる期待が応えられる 9/71 Powered by Rabbit 0.9.2
  • 11. 万能感やりたいことができるやればできる簡単にできる 10/71 Powered by Rabbit 0.9.2
  • 12. 我慢しない時苦痛が少ない不合理を感じない 11/71 Powered by Rabbit 0.9.2
  • 13. 悩まない時海に向かって叫ばないクリアな世界観 12/71 Powered by Rabbit 0.9.2
  • 14. 気分の良いプログラミング簡潔万能感 13/71 Powered by Rabbit 0.9.2
  • 15. ブルックスの法則プログラマが一定時間に開発できるソフトウェア量は言語によらず一定である [「人月の神話」より引用] 14/71 Powered by Rabbit 0.9.2
  • 16. 簡潔さは力なりPaul Grahamプログラミング言語の進化 15/71 Powered by Rabbit 0.9.2
  • 17. 例題: 階乗factorial, or n! n以下の自然数すべての積 n! = 1×2×3×...×n 16/71 Powered by Rabbit 0.9.2
  • 18. 階乗(Java)class Sample { private static int fact(int n) { if (n == 1) return 1; return n * fact(n - 1); } public static void main(String[] argv) { System.out.println("6!="+fact(6)); }} 17/71 Powered by Rabbit 0.9.2
  • 19. 階乗(C)#include <stdio.h>intfact(int n){ if (n == 1) return 1; return n * fact(n - 1);}intmain(){ printf("6!=%dn", fact(6));} 18/71 Powered by Rabbit 0.9.2
  • 20. 階乗(Ruby)def fact(n) if n == 1 1 else n * fact(n - 1) endendprint "6!=", fact(6), "n" 19/71 Powered by Rabbit 0.9.2
  • 21. 階乗(Ruby)def fact(n) (1..n).inject(:*)endprint "6!=", fact(6), "n" 20/71 Powered by Rabbit 0.9.2
  • 22. 簡潔な表現get /foo, :agent => /Chrome/ do "Youre using Google Chrome"endget /foo do "Youre using non Chrome browsers"end 21/71 Powered by Rabbit 0.9.2
  • 23. 抽象化for (i=0; i<100; i++) { ...}100.times do ...end 22/71 Powered by Rabbit 0.9.2
  • 24. 人間の都合、機械の都合だれが主人か 人間? コンピュータ? 23/71 Powered by Rabbit 0.9.2
  • 25. 200!printf("12!=%dn", fact(12));printf("13!=%dn", fact(13));printf("14!=%dn", fact(14));printf("200!=%dn", fact(200));=> 12!=479001600 13!=1932053504 14!=1278945280 200!=0 24/71 Powered by Rabbit 0.9.2
  • 26. 200!print "200!=", fact(200), "n"=> 78865786736479050355236321393218506 22951359776871732632947425332443594 49963403342920304284011984623904177 21213891963883025764279024263710506 19266249528299311134628572707633172 37396988943922445621451664240254033 29186413122742829485327752424240757 39032403212574055795686602260319041 70324062351700858796178922222789623 70389737472000000000000000000000000 0000000000000000000000000 25/71 Powered by Rabbit 0.9.2
  • 27. プログラミング言語Ruby開発効率に注目より簡単により効率よくより気分よく 26/71 Powered by Rabbit 0.9.2
  • 28. 時代の要請にマッチ性能よりも生産性開発者の気分重視開発者に心地よい言語 27/71 Powered by Rabbit 0.9.2
  • 29. 設計者=ユーザー使う人の気持ちが分かる共感できる人のために共感できない? それもOK! 28/71 Powered by Rabbit 0.9.2
  • 30. プログラミングは楽しい創造する楽しみ対話の楽しみ知的刺激 29/71 Powered by Rabbit 0.9.2
  • 31. でも楽しくない直らないバグ迫る〆切炎上するプロジェクト 30/71 Powered by Rabbit 0.9.2
  • 32. 解決策コンピュータに仕事を押し付けるムーアの法則 31/71 Powered by Rabbit 0.9.2
  • 33. オープンソース どうしてRuby売らない んですか?日本のビル・ゲーツ(笑) 32/71 Powered by Rabbit 0.9.2
  • 34. Rubyの認知度Ruby開発開始(1993)一般公開(1995) 33/71 Powered by Rabbit 0.9.2
  • 35. Rubyの認知度最初の書籍(1999)最初の英語書籍(2000) 34/71 Powered by Rabbit 0.9.2
  • 36. Rubyの認知度Rubyで就職(1997)未踏ソフトウェア(2000)Ruby on Rails(2004)OSS貢献者賞(2005) 35/71 Powered by Rabbit 0.9.2
  • 37. Rubyの認知度2007 楽天技術研究所フェロー Rubyアソシエーション Ruby技術者認定試験 36/71 Powered by Rabbit 0.9.2
  • 38. Rubyの認知度2007 日経BP技術賞大賞 経済産業大臣表彰 37/71 Powered by Rabbit 0.9.2
  • 39. Rubyの認知度2009 松江市名誉市民 島根大学客員教授 ものづくり日本大賞 日本イノベーター大賞 38/71 Powered by Rabbit 0.9.2
  • 40. Rubyの認知度2010 日経BP チェンジメーカー2010 39/71 Powered by Rabbit 0.9.2
  • 41. Rubyの認知度 40/71 Powered by Rabbit 0.9.2
  • 42. キャズム論イノベーターアーリーアダプターアーリーマジョリティレートマジョリティラガード 41/71 Powered by Rabbit 0.9.2
  • 43. キャズムを越えた日イノベーター 技術者個人の興味・関心(1995-)アーリーアダプター ベンチャー・零細企業(1997-) 42/71 Powered by Rabbit 0.9.2
  • 44. キャズムを越えた日アーリーマジョリティ 中小企業・IT系企業(2007-)レートマジョリティ 大企業(2010-) 43/71 Powered by Rabbit 0.9.2
  • 45. キャズムの向こう側財団法人標準規格 44/71 Powered by Rabbit 0.9.2
  • 46. 財団法人Rubyアソシエーション 45/71 Powered by Rabbit 0.9.2
  • 47. 標準規格JISISO 46/71 Powered by Rabbit 0.9.2
  • 48. ローリングストーン転石苔生さず 47/71 Powered by Rabbit 0.9.2
  • 49. OSSコミュニティ生存戦略 変化を続ける 課題を提供し続ける 48/71 Powered by Rabbit 0.9.2
  • 50. Rubyの未来未来はどうなる? 49/71 Powered by Rabbit 0.9.2
  • 51. ムーアの法則LSIの集積度は2年で2倍になる 50/71 Powered by Rabbit 0.9.2
  • 52. CPU性能向上CPU性能向上 51/71 Powered by Rabbit 0.9.2
  • 53. CPU性能向上近年頭打ち物理的限界要求の飽和 52/71 Powered by Rabbit 0.9.2
  • 54. 未来への対応Web分散並列マルチコア 53/71 Powered by Rabbit 0.9.2
  • 55. 未来への技術クラウドMapReduce関数型分散アーキテクチャ 54/71 Powered by Rabbit 0.9.2
  • 56. 未来のRuby新しい環境への適応 より広汎 より高速 より分散 より堅固 55/71 Powered by Rabbit 0.9.2
  • 57. 広汎幅広い実行環境 スマートフォン PC スーパーコンピュータ 56/71 Powered by Rabbit 0.9.2
  • 58. HPC RubyRuby for High PerformanceComputing 型推論 コンパイル Cに匹敵する速度 57/71 Powered by Rabbit 0.9.2
  • 59. 軽量RubyLightweight Ruby 組み込み ソフトリアルタイム 58/71 Powered by Rabbit 0.9.2
  • 60. 広汎幅広い適用分野 組み込み Web HPC 59/71 Powered by Rabbit 0.9.2
  • 61. 高速YARVJIT最適化GC 60/71 Powered by Rabbit 0.9.2
  • 62. 分散並列・分散はより重要になる dRuby / Rinda MessagePack MapReduce 61/71 Powered by Rabbit 0.9.2
  • 63. 堅固より書きやすく キーワード引数 Classbox Enumerableプログラミング 62/71 Powered by Rabbit 0.9.2
  • 64. 軽量RubyRiteVM 63/71 Powered by Rabbit 0.9.2
  • 65. RiteVM文法:JIS/ISO準拠ライブラリ:ほぼJIS/ISO拠準 64/71 Powered by Rabbit 0.9.2
  • 66. RiteVMLuaっぽいRuby VM 65/71 Powered by Rabbit 0.9.2
  • 67. RiteVM組み込みAPIレジスタベースインクリメンタルGC 66/71 Powered by Rabbit 0.9.2
  • 68. RiteVMポータブルコアはC99のみ依存 67/71 Powered by Rabbit 0.9.2
  • 69. RiteVMコンポーネント構成 コンパイラ分離可能 minimal, standard, full 68/71 Powered by Rabbit 0.9.2
  • 70. RiteVM計画中 ファイバー(コルーチン) 非同期I/O 69/71 Powered by Rabbit 0.9.2
  • 71. RiteVM今後の予定2011/10 クローズドベータ2012/03 オープンベータ(MITライセンス?) 70/71 Powered by Rabbit 0.9.2
  • 72. ご清聴ありがとう ございました 71/71 Powered by Rabbit 0.9.2