future of ruby and rails
DESCRIPTION
Presentation given to RailsSummit 2009 in Brazil. The presentation covers the plan for Rails3 and the different Ruby implementations.TRANSCRIPT
![Page 1: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/1.jpg)
Rails3uby
Matt Aim
onetti
Future
![Page 2: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/2.jpg)
MIMme
Matt Aimonetti
![Page 3: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/3.jpg)
“morally loose, cheese eating surrender monkey”Ted Han
![Page 4: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/4.jpg)
+
=
![Page 5: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/5.jpg)
![Page 6: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/6.jpg)
![Page 7: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/7.jpg)
![Page 8: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/8.jpg)
FUTUREtime period commonly understood
to contain all events that have yet to occur.
![Page 9: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/9.jpg)
![Page 10: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/10.jpg)
![Page 11: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/11.jpg)
![Page 12: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/12.jpg)
![Page 13: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/13.jpg)
RAILS 3the future of web development
![Page 14: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/14.jpg)
E V O L U T I O N
![Page 15: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/15.jpg)
A U D I E N C E
Rails
Merb
app developersentrepreneursdesigners
app developersenterpriseplugin authors
![Page 16: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/16.jpg)
Rails 3
app developersentrepreneursenterpriseplugin authorsdesigners
A U D I E N C E
![Page 17: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/17.jpg)
P R I N C I P L E S
Rails
Merb
programmer happinessstrong conventionsfluent design
app developersflexibilitymodularityspeed
![Page 18: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/18.jpg)
P R I N C I P L E S
Rails 3
programmer happinessstrong conventionsfluent designflexibilitymodularityspeed
![Page 19: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/19.jpg)
A T OM I C S T R U C T U R E
![Page 20: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/20.jpg)
A T OM I C N U C L E U S
protonneutron
Rails 2
![Page 21: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/21.jpg)
A T OM I C C L U S T E R
Rails 3
![Page 22: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/22.jpg)
ActiveModel+ ORM
ActionPack
ActionWorker
ActiveSupport
Generators
ActiveResource
ActionMailer
Rack middlewares
Rails stack
![Page 23: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/23.jpg)
![Page 24: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/24.jpg)
![Page 25: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/25.jpg)
NEW
![Page 26: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/26.jpg)
R O U T E Rmatch ‘awesome/:action’
![Page 27: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/27.jpg)
![Page 28: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/28.jpg)
![Page 29: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/29.jpg)
rack love
![Page 30: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/30.jpg)
constraints/filters
![Page 31: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/31.jpg)
constraints(:ip => /192\.168\.1\.\d\d\d/) do get 'admin', :to => "dashboard#index"end
![Page 32: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/32.jpg)
Rack Apps intregration
![Page 33: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/33.jpg)
Rack app intregration
namespace :facebook do use MyMiddleware match "/game", :to => SinatraApp end
![Page 34: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/34.jpg)
mountable apps
![Page 35: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/35.jpg)
rack entry point
class MyForum < Rails::Application
![Page 36: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/36.jpg)
A C T I V EWO R K E R
push_queueThumbnailer.new(path, user, :action => :process)
![Page 37: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/37.jpg)
background process
![Page 38: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/38.jpg)
U N O B T R U S I V EJ A V A S C R I P T
html 5
![Page 39: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/39.jpg)
html ❺ ‘data-*’ attributes
![Page 40: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/40.jpg)
![Page 41: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/41.jpg)
one js APIinterface for all libs
![Page 42: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/42.jpg)
O RM AGN O S T I C I T Y
![Page 43: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/43.jpg)
Active_Recordstill the default
ActiveRelation
common API
![Page 44: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/44.jpg)
Datamapper
Legacy repository
multiple repository
queryoptimization
various datastores
![Page 45: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/45.jpg)
Sequel
PreparedStatements Sharding
Highly customizable
SQLPerf
![Page 46: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/46.jpg)
Couchrest/mongomapper/
your_ORMetc..
![Page 47: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/47.jpg)
I N T E R N A LC L E A N U P
![Page 48: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/48.jpg)
P E R F O RMANCE
![Page 49: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/49.jpg)
hello world
render
partial
10 partials
collection of 10
103% 207% 310%
Rails 3/Ruby 1.9 benchmarked against Rails 2.3.x/Ruby 1.8.7
RAILS 3SPEED BOOST
3.02x
2.59x
2.88x
2.16x
2.44x
not final
![Page 50: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/50.jpg)
hello world
render
partial
10 partials
collection
200% 400% 600% 800%
8x
4x
4.9x
3.38x
3.39x
6.27x
1.63x
1.18x
2.49x
2.78x
スピードアップ 1.9
Ruby 1.8 Ruby 1.9
jeremy
kemper
Ruby world 2009
![Page 51: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/51.jpg)
RUBYfuture
![Page 52: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/52.jpg)
Ruby
1.8.7
1.9.xIronRuby
JRubyMacRubyRubinius
2.0
![Page 53: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/53.jpg)
Ruby 1.9.x
1.9.xbetter perf
better threadingfibers
official Rubyrecommended
![Page 54: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/54.jpg)
RAILS 3BENCHMARKS
Ruby 1.8.6 REE 1.87 Ruby 1.9.1
hello world
render
partial
10 partials
collection of 10
-12% 7% 25% 43% 62% 80%
35%
77%
24%
55%
50%
6%
-2%
3%
-10%
17%
-6%
-12%
-10%
-3%
-4%
% faster than Ruby 1.8.7
not final
http://github.com/mattetti/rails-simple-benches
![Page 55: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/55.jpg)
Ruby 2.0
not started
scalabilityperformancemaintenabiltymultiple VMs
selector namespacemethod combination
etc..
¿future?
![Page 56: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/56.jpg)
IronRuby
0.9.1
.NET integrationVisualStudio 201?
SilverlightIIS web server
Microsoft
![Page 57: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/57.jpg)
IronRubyVisualStudio 201?
better toolseven better integration
performance
¿future?
![Page 58: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/58.jpg)
JRuby
1.4.0 RC1
java integrationnative threads
deploymentJVM
![Page 59: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/59.jpg)
JRuby• java profiling/debugging tools•better integration (hibernate..)• .java file compilation•better integration (server,
mobile etc..)•performance
¿future?
![Page 60: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/60.jpg)
MacRuby
0.5 RC1
Cocoa integrationAOT compilation
performanceGCD
Apple support & toolsOSX platform
![Page 61: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/61.jpg)
MacRuby•iPhone•instrumentation•better dev tools•performance•standardized•linux•any C libs•C extensions
¿future?
biased
![Page 62: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/62.jpg)
Rubinius
0.12ruby almost all the way
full introspectionC extensions
![Page 63: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/63.jpg)
Rubinius
•AOT compiler•very powerful debugger•real time profiler•performance
¿future?
![Page 64: Future Of Ruby And Rails](https://reader034.vdocuments.mx/reader034/viewer/2022042714/5555a8e3d8b42a52568b47de/html5/thumbnails/64.jpg)
VOCÊyou