Future
Rails3
     uby   Matt   Aimonetti
MIM me



Matt Aimonetti
“morally loose, cheese eating surrender monkey”
                                        Ted Han
+

=
FUTURE
time period commonly understood
      to contain all events
    that have yet to occur.
RAILS 3
the future of web development
EVOLUTION
AUDIENCE
           app developers
Rails      entrepreneurs
           designers

           app developers
Merb       ent...
AUDIENCE

              app developers
              entrepreneurs
Rails 3       enterprise
              plugin authors
 ...
PRINCIPLES
            programmer happiness
Rails       strong conventions
            fluent design
            app develo...
PRINCIPLES

               programmer happiness
               strong conventions
               fluent design
Rails 3
    ...
ATOMIC
STRUCTURE
ATOMIC NUCLEUS
                      neutron
   proton




            Rails 2
Rails 3




ATOMIC CLUSTER
ActiveModel
    ActionWorker                   + ORM

                                  ActiveResource
ActionPack

  Activ...
NEW
ROUTER
match ‘awesome/:action’
rack love
constraints/filters
constraints(:ip => /192.168.1.ddd/) do
  get 'admin', :to => "dashboard#index"
end
Rack Apps
intregration
namespace :facebook do
 use MyMiddleware
 match "/game", :to => SinatraApp
end




      Rack app intregration
mountable apps
class MyForum < Rails::Application




        rack entry point
ACTIVE
      WORKER
                   push_queue
Thumbnailer.new(path, user, :action => :process)
background process
UNOBTRUSIVE
 JAVASCRIPT
    html 5
html ❺ ‘data-*’ attributes
one js API
interface for all libs
ORM
AGNOSTICITY
Active_Record
still the    Active    common
default     Relation     API
Datamapper
  Legacy      multiple       query        various
repository   repository   optimization   datastores
Sequel
                           Highly
 Prepared
             Sharding   customizable   Perf
Statements
                ...
Couchrest/
mongomapper/
  your_ORM
     etc..
INTERNAL
CLEANUP
PERFORMANCE
RAILS 3
            in
              a l
          f
n   o t    SPEED BOOST
      hello world                             ...
Ru
       y                                                                  wo by
     em r
 er pe
j m                   ...
RUBY
 future
Ruby
            1.9.x
         IronRuby
1.8.7      JRuby
         MacRuby
         Rubinius
             2.0
Ruby 1.9.x

              better perf
1.9.x      better threading
                fibers
             official Ruby
        ...
in
              RAILS 3
               a l
          f
n   o t     BENCHMARKS
              Ruby 1.8.6                   ...
u tu re ?
               Ruby 2.0
¿ f
                     scalability
                    performance
  not              ...
IronRuby
           .NET integration
          VisualStudio 201?
0.9.1          Silverlight
            IIS web server
   ...
u tu re ?
               IronRuby
¿ f

          VisualStudio 201?
             better tools
             even better
    ...
JRuby

             java integration
1.4.0 RC1     native threads
               deployment
                   JVM
u tu re ?
               JRuby
¿ f

• java profiling/debugging tools
• better integration (hibernate..)
• .java file compila...
MacRuby
           Cocoa integration
            AOT compilation
0.5 RC1       performance
                  GCD
         ...
u tu re ?
               MacRuby
¿ f
        •iPhone
        •instrumentation
        •better dev tools
        •performan...
Rubinius

        ruby almost all the way
0.12      full introspection
            C extensions
u tu re ?
               Rubinius
¿ f

      •AOT compiler
      •very powerful debugger
      •real time profiler
      •p...
VOCÊ
 you
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Future Of Ruby And Rails
Upcoming SlideShare
Loading in...5
×

Future Of Ruby And Rails

5,001

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
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,001
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
114
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Future Of Ruby And Rails

  1. 1. Future Rails3 uby Matt Aimonetti
  2. 2. MIM me Matt Aimonetti
  3. 3. “morally loose, cheese eating surrender monkey” Ted Han
  4. 4. + =
  5. 5. FUTURE time period commonly understood to contain all events that have yet to occur.
  6. 6. RAILS 3 the future of web development
  7. 7. EVOLUTION
  8. 8. AUDIENCE app developers Rails entrepreneurs designers app developers Merb enterprise plugin authors
  9. 9. AUDIENCE app developers entrepreneurs Rails 3 enterprise plugin authors designers
  10. 10. PRINCIPLES programmer happiness Rails strong conventions fluent design app developers Merb flexibility modularity speed
  11. 11. PRINCIPLES programmer happiness strong conventions fluent design Rails 3 flexibility modularity speed
  12. 12. ATOMIC STRUCTURE
  13. 13. ATOMIC NUCLEUS neutron proton Rails 2
  14. 14. Rails 3 ATOMIC CLUSTER
  15. 15. ActiveModel ActionWorker + ORM ActiveResource ActionPack ActiveSupport ActionMailer Generators Rack middlewares Rails stack
  16. 16. NEW
  17. 17. ROUTER match ‘awesome/:action’
  18. 18. rack love
  19. 19. constraints/filters
  20. 20. constraints(:ip => /192.168.1.ddd/) do get 'admin', :to => "dashboard#index" end
  21. 21. Rack Apps intregration
  22. 22. namespace :facebook do use MyMiddleware match "/game", :to => SinatraApp end Rack app intregration
  23. 23. mountable apps
  24. 24. class MyForum < Rails::Application rack entry point
  25. 25. ACTIVE WORKER push_queue Thumbnailer.new(path, user, :action => :process)
  26. 26. background process
  27. 27. UNOBTRUSIVE JAVASCRIPT html 5
  28. 28. html ❺ ‘data-*’ attributes
  29. 29. one js API interface for all libs
  30. 30. ORM AGNOSTICITY
  31. 31. Active_Record still the Active common default Relation API
  32. 32. Datamapper Legacy multiple query various repository repository optimization datastores
  33. 33. Sequel Highly Prepared Sharding customizable Perf Statements SQL
  34. 34. Couchrest/ mongomapper/ your_ORM etc..
  35. 35. INTERNAL CLEANUP
  36. 36. PERFORMANCE
  37. 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. 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. 39. RUBY future
  40. 40. Ruby 1.9.x IronRuby 1.8.7 JRuby MacRuby Rubinius 2.0
  41. 41. Ruby 1.9.x better perf 1.9.x better threading fibers official Ruby recommended
  42. 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. 43. u tu re ? Ruby 2.0 ¿ f scalability performance not maintenabilty started multiple VMs selector namespace method combination etc..
  44. 44. IronRuby .NET integration VisualStudio 201? 0.9.1 Silverlight IIS web server Microsoft
  45. 45. u tu re ? IronRuby ¿ f VisualStudio 201? better tools even better integration performance
  46. 46. JRuby java integration 1.4.0 RC1 native threads deployment JVM
  47. 47. u tu re ? JRuby ¿ f • java profiling/debugging tools • better integration (hibernate..) • .java file compilation • better integration (server, mobile etc..) • performance
  48. 48. MacRuby Cocoa integration AOT compilation 0.5 RC1 performance GCD Apple support & tools OSX platform
  49. 49. u tu re ? MacRuby ¿ f •iPhone •instrumentation •better dev tools •performance •standardized •linux d •any C libs a se b i
  50. 50. Rubinius ruby almost all the way 0.12 full introspection C extensions
  51. 51. u tu re ? Rubinius ¿ f •AOT compiler •very powerful debugger •real time profiler •performance
  52. 52. VOCÊ you
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×