Rubinius and Ruby | A Love Story

1,937 views
1,809 views

Published on

Published in: Self Improvement, Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,937
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
22
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Rubinius and Ruby | A Love Story

  1. 1. Rubinius & Ruby A Love Story
  2. 2. Shane Becker@veganstraightedge
  3. 3. Evan Phoenix @evanphx
  4. 4. Brian Ford @brixen
  5. 5. http://rubini.us @rubinius
  6. 6. The Next 45 Minutesof your lifeWhy We CareWhy You (Should)CareDeveloping with ToolsQuestion & Answer Time
  7. 7. Why We Care
  8. 8. Why We Care A Bit of History
  9. 9. A Bit of History 2002 Evan started using Ruby
  10. 10. A Bit of History 2006 Evan started to figure out how to improve Ruby
  11. 11. A Bit of History 2006Experimented with cleaning up and improvements in MRI 1.8.2
  12. 12. A Bit of History 2006 Realize that Ruby needed a fresh start
  13. 13. A Bit of History 2006 Started Rubinius
  14. 14. A Bit of History 2006 Started Rubinius on Honeymoon in Bali
  15. 15. Why We Care The Ruby Language
  16. 16. The RubyLanguageRubinius is a faithful implementation ofthe Ruby Language
  17. 17. The Ruby Language Rubinius is a drop-inreplacement for MRI 1.8.7
  18. 18. Why We CareDrop-in Replacement
  19. 19. Drop-inReplacementFull method compatibility via RubySpec
  20. 20. Drop-inReplacementMajor C-API compatibility
  21. 21. Drop-inReplacementMajor C-API compatibility with some caveats
  22. 22. Why We Care Improve Ruby
  23. 23. Improve Ruby Ruby should be goodenough to use as its own underpinnings
  24. 24. Improve RubyMRI’s core (Array, Hash, etc) contains no Ruby
  25. 25. Improve RubyStrive for scalability and performance for the Ruby language
  26. 26. Why We Care Performance
  27. 27. PerformanceMRI’s implementation of Ruby is slow
  28. 28. Performance Prevalence of C extensionsdemonstrate MRI’s slowness
  29. 29. Performance Strive to bring Ruby itself up to speed
  30. 30. Why We Care Fast Ruby
  31. 31. Fast RubyUse established techniques to make Ruby itself fast
  32. 32. Fast RubyEstablished Techniques Compile Ruby to machine code
  33. 33. Fast RubyEstablished Techniques Profit!
  34. 34. Why We Care Faster Ruby for All
  35. 35. Faster Ruby for AllCapable of running Ruby code
  36. 36. Faster Ruby for AllCapable of running Ruby code up to 100x faster than MRI
  37. 37. Faster Ruby for AllHelps change Ruby’s standing in the programming world
  38. 38. Why We CareManage Memory Better
  39. 39. ManageMemory BetterVery fast object allocation
  40. 40. ManageMemory Better All objects are extremely lightweight
  41. 41. ManageMemory Better All objects are extremely lightweight 56 bytes vs 500 bytes
  42. 42. ManageMemory Better Compact and release memory to OS
  43. 43. Why We CareBetter Memory Usage
  44. 44. BetterMemory Usage MRI’s GC is broken
  45. 45. BetterMemory Usage MRI’s GC is broken Conservative garbage collection is flawed
  46. 46. BetterMemory UsageRubinius has a better way
  47. 47. Why We CareReal World Memory Usage
  48. 48. Real World MemoryMade for Ruby applications
  49. 49. Real World MemoryMade for Ruby applications Ruby is objects
  50. 50. Real World Memory Made for Ruby applicationsRubinius is made for objects
  51. 51. Real World MemoryMade for Ruby applications LOTS of objects
  52. 52. Why We CareReal World Memory Usage An Experiment
  53. 53. An Experiment10.million.times do create 101 objects save 1 of themend
  54. 54. An Experimenthttps://gist.github.com/1008305
  55. 55. MBs300025002000 MRI15001000 500 0
  56. 56. An Experiment 10,000,000 times Create 101 objects Save one of them
  57. 57. An Experiment1,010,000,000 objects created 10,000,000 objects saved
  58. 58. MBs300025002000 MRI15001000 500 Rubinius 0
  59. 59. Real World MemoryLove your objects
  60. 60. Developingwith Tools
  61. 61. BetterTechnologyFor Running Ruby
  62. 62. BetterTechnologyFor Writing Ruby
  63. 63. Debugging We All Do It
  64. 64. PDDp-Driven Debugging
  65. 65. <screencast> p-Driven Debugging
  66. 66. StepsLocateInstrumentRepeat
  67. 67. Good ToolsGo With The Flow
  68. 68. Good ToolsSave Time & Effort
  69. 69. <screencast>Debugger Debugging
  70. 70. StepsLocateRunExplore
  71. 71. DebunkingExposing The Falseness
  72. 72. TestingA Cherished Tool
  73. 73. Testing Don’t Need NoStinkin’ Debugger
  74. 74. Debugginggem install rbx-trepanning
  75. 75. ProfilingRefining Code
  76. 76. ProfilingGood Judgment
  77. 77. <screencast> Profiling
  78. 78. ProfilingMind The Gap
  79. 79. Jump Into Rubinius
  80. 80. Ruby Swaprvm install rbx-2.0.0pre
  81. 81. Ruby Swaprbx -S bundle install
  82. 82. Ruby Swaprbx -S rails s
  83. 83. Deploying On AppCloud
  84. 84. <screencast> On AppCloud http://ey.io/rbxdeploy
  85. 85. Deploying On AppCloudhttp://ey.io/rbxdeploy
  86. 86. Why You(should) Care
  87. 87. Why You Care You love Ruby
  88. 88. Why You Care You love Ruby We love Ruby too!
  89. 89. Why You Care You want Ruby used in more places for more things
  90. 90. Why You CareYou want Ruby used more We do too!
  91. 91. Use Ruby™
  92. 92. Rubinius & Ruby A Love Story
  93. 93. Shane Becker@veganstraightedge
  94. 94. Evan Phoenix @evanphx
  95. 95. Brian Ford @brixen
  96. 96. http://rubini.us @rubinius
  97. 97. http://engineyard.com @engineyard
  98. 98. Questions &AnswersTime
  99. 99. NEXT TIME onEngine Yard webinars… JRuby Jam Session featuring Nick Seiger Thursday, September 15, 2011 11:00-11:50am PDT Register: engineyard.com/developer/events

×