Future Of Ruby And Rails

7,110 views

Published on

Presentation given to RailsSummit 2009 in Brazil. The presentation covers the plan for Rails3 and the different Ruby implementations.

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,110
On SlideShare
0
From Embeds
0
Number of Embeds
396
Actions
Shares
0
Downloads
115
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Future Of Ruby And Rails

  1. Future Rails3 uby Matt Aimonetti
  2. MIM me Matt Aimonetti
  3. “morally loose, cheese eating surrender monkey” Ted Han
  4. + =
  5. FUTURE time period commonly understood to contain all events that have yet to occur.
  6. RAILS 3 the future of web development
  7. EVOLUTION
  8. AUDIENCE app developers Rails entrepreneurs designers app developers Merb enterprise plugin authors
  9. AUDIENCE app developers entrepreneurs Rails 3 enterprise plugin authors designers
  10. PRINCIPLES programmer happiness Rails strong conventions fluent design app developers Merb flexibility modularity speed
  11. PRINCIPLES programmer happiness strong conventions fluent design Rails 3 flexibility modularity speed
  12. ATOMIC STRUCTURE
  13. ATOMIC NUCLEUS neutron proton Rails 2
  14. Rails 3 ATOMIC CLUSTER
  15. ActiveModel ActionWorker + ORM ActiveResource ActionPack ActiveSupport ActionMailer Generators Rack middlewares Rails stack
  16. NEW
  17. ROUTER match ‘awesome/:action’
  18. rack love
  19. constraints/filters
  20. constraints(:ip => /192.168.1.ddd/) do get 'admin', :to => "dashboard#index" end
  21. Rack Apps intregration
  22. namespace :facebook do use MyMiddleware match "/game", :to => SinatraApp end Rack app intregration
  23. mountable apps
  24. class MyForum < Rails::Application rack entry point
  25. ACTIVE WORKER push_queue Thumbnailer.new(path, user, :action => :process)
  26. background process
  27. UNOBTRUSIVE JAVASCRIPT html 5
  28. html ❺ ‘data-*’ attributes
  29. one js API interface for all libs
  30. ORM AGNOSTICITY
  31. Active_Record still the Active common default Relation API
  32. Datamapper Legacy multiple query various repository repository optimization datastores
  33. Sequel Highly Prepared Sharding customizable Perf Statements SQL
  34. Couchrest/ mongomapper/ your_ORM etc..
  35. INTERNAL CLEANUP
  36. PERFORMANCE
  37. RAILS 3 in a l f n o t SPEED BOOST hello world 3.02x render 2.59x partial 2.88x 10 partials 2.16x collection of 10 2.44x 103% 207% 310% Rails 3/Ruby 1.9 benchmarked against Rails 2.3.x/Ruby 1.8.7
  38. Ru y wo by em r er pe j m 20 rl d 09 1.9 k e 2.78x hello world 3.39x 2.49x render 3.38x 1.18x partial 4.9x 1.63x 10 partials 4x 6.27x collection 8x 200% 400% 600% 800% Ruby 1.8 Ruby 1.9
  39. RUBY future
  40. Ruby 1.9.x IronRuby 1.8.7 JRuby MacRuby Rubinius 2.0
  41. Ruby 1.9.x better perf 1.9.x better threading fibers official Ruby recommended
  42. in RAILS 3 a l f n o t BENCHMARKS Ruby 1.8.6 REE 1.87 Ruby 1.9.1 -4% hello world 17% 50% -3% render -10% 55% -10% partial 3% 24% -12% 10 partials -2% 77% -6% collection of 10 6% 35% -12% 7% 25% 43% 62% 80% % faster than Ruby 1.8.7 http://github.com/mattetti/rails-simple-benches
  43. u tu re ? Ruby 2.0 ¿ f scalability performance not maintenabilty started multiple VMs selector namespace method combination etc..
  44. IronRuby .NET integration VisualStudio 201? 0.9.1 Silverlight IIS web server Microsoft
  45. u tu re ? IronRuby ¿ f VisualStudio 201? better tools even better integration performance
  46. JRuby java integration 1.4.0 RC1 native threads deployment JVM
  47. u tu re ? JRuby ¿ f • java profiling/debugging tools • better integration (hibernate..) • .java file compilation • better integration (server, mobile etc..) • performance
  48. MacRuby Cocoa integration AOT compilation 0.5 RC1 performance GCD Apple support & tools OSX platform
  49. u tu re ? MacRuby ¿ f •iPhone •instrumentation •better dev tools •performance •standardized •linux d •any C libs a se b i
  50. Rubinius ruby almost all the way 0.12 full introspection C extensions
  51. u tu re ? Rubinius ¿ f •AOT compiler •very powerful debugger •real time profiler •performance
  52. VOCÊ you

×