Ruby Past, Present, Future

2,460 views

Published on

Highlights from a presentation by Adam Fine about Ruby's past, present and future.

Published in: Technology, Education
  • Be the first to comment

Ruby Past, Present, Future

  1. Ruby – Past, Present, Future Adam Fine
  2. Birth <ul><li>February 24, 1993‏ </li></ul><ul><li>1 st release December 1995‏ </li></ul><ul><li>Yukihiro Matsumoto (''Matz'') ‏ </li></ul>
  3. Influences <ul><li>Lisp </li></ul><ul><li>Smalltalk </li></ul><ul><li>Perl </li></ul>
  4. <ul><li>Lisp – everything is an expression </li></ul><ul><li>Smalltalk – everything is an object </li></ul><ul><li>Perl – everything should be possible </li></ul>Fundamentals
  5. Characteristics <ul><li>Dynamic </li></ul><ul><li>Reflective </li></ul><ul><li>High level </li></ul><ul><li>Multi-paradigm </li></ul><ul><li>Feature-full (closures, continuations) ‏ </li></ul><ul><li>Portable </li></ul>
  6. Implementation <ul><li>Single pass C interpreter </li></ul><ul><li>Written by a small group of volunteers </li></ul><ul><li>Led by Yukihiro Matsumoto </li></ul>
  7. Progression <ul><li>Gain popularity throughout Japan </li></ul><ul><li>1999: Ruby overtakes Python's mindshare in Japan </li></ul><ul><li>Thriving Japanese community </li></ul><ul><li>But no English docs </li></ul><ul><li>Very few users outside Japan </li></ul>
  8. 2000‏ <ul><li>Ruby starts spreading outside Japan </li></ul><ul><li>Pragmatic Programmers: Dave Thomas and Andy Hunt </li></ul><ul><li>2001: ''Programming Ruby'' (the PickAxe) - first major documentation in English </li></ul><ul><li>Documents Ruby 1.6‏ </li></ul>
  9. Just Yesterday <ul><li>Mainly used for high-level scripting and web </li></ul><ul><li>Many interesting Web ideas and approaches:‏ </li></ul><ul><li>Borges, Wee, Iowa, Cerise, cgikit, mod_ruby </li></ul>
  10. Ruby 1.8‏ <ul><li>Released August 4 th 2003‏ </li></ul><ul><li>Language cleanup, less Perlish </li></ul><ul><li>Implementation improvements </li></ul>
  11. Rails <ul><li>Released July 2004‏ </li></ul><ul><li>David Heinemeier Hansson chose Ruby </li></ul><ul><li>Very small codebase </li></ul><ul><li>A lot of functionality </li></ul><ul><li>Attracts major attention </li></ul>
  12. Today
  13. 1.8, 1.9, 2.0‏ <ul><li>1.8: Production branch </li></ul><ul><li>1.9: Development, experimental branch </li></ul><ul><li>2.0: What 1.9 will mature into </li></ul><ul><li>YARV </li></ul>
  14. YARV <ul><li>Lead Developer Koichi Sasada </li></ul><ul><li>December 31, 2006: merged into the Ruby repository </li></ul><ul><li>Bytecode-compiled </li></ul>
  15. Rubinius <ul><li>Modelled after the Smalltalk-80 virtual machine </li></ul><ul><li>Transparent </li></ul><ul><li>Highly reflective </li></ul><ul><li>Self-hosting, self-extensible </li></ul><ul><li>Optimizable </li></ul>
  16. JRuby <ul><li>Platform: the JVM </li></ul><ul><li>A working interpreter, compiler in the works </li></ul><ul><li>Better performance than MRI (CRuby) ‏ </li></ul><ul><li>Integrates with Java </li></ul><ul><li>Benefits from the Java codebase </li></ul>
  17. The DLR and IronRuby <ul><li>Platform: the CLR </li></ul><ul><li>Optimized compilation, significant performance gains </li></ul><ul><li>But currently vaporware </li></ul><ul><li>Doubts about extent of dynamic feature support </li></ul>
  18. XRuby <ul><li>Platform: the JVM </li></ul><ul><li>Compiles to JVM bytecode </li></ul><ul><li>Performance currently better than the JRuby interpreter </li></ul><ul><li>Integration with the Java codebase </li></ul><ul><li>Rails by the end of the year?‏ </li></ul>
  19. The Future <ul><li>The Rails benchmark </li></ul><ul><li>Ruby 2.0: re-design vs. backward compatibility </li></ul><ul><li>New implementations, new ideas, new applications </li></ul>
  20. Thank you for listening

×