64
Rails3 uby Matt Aimonetti Future

Future Of Ruby And Rails

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Future Of Ruby And Rails

Rails3uby

Matt Aim

onetti

Future

Page 2: Future Of Ruby And Rails

MIMme

Matt Aimonetti

Page 3: Future Of Ruby And Rails

“morally loose, cheese eating surrender monkey”Ted Han

Page 4: Future Of Ruby And Rails

+

=

Page 5: Future Of Ruby And Rails
Page 6: Future Of Ruby And Rails
Page 7: Future Of Ruby And Rails
Page 8: Future Of Ruby And Rails

FUTUREtime period commonly understood

to contain all events that have yet to occur.

Page 9: Future Of Ruby And Rails
Page 10: Future Of Ruby And Rails
Page 11: Future Of Ruby And Rails
Page 12: Future Of Ruby And Rails
Page 13: Future Of Ruby And Rails

RAILS 3the future of web development

Page 14: Future Of Ruby And Rails

E V O L U T I O N

Page 15: Future Of Ruby And Rails

A U D I E N C E

Rails

Merb

app developersentrepreneursdesigners

app developersenterpriseplugin authors

Page 16: Future Of Ruby And Rails

Rails 3

app developersentrepreneursenterpriseplugin authorsdesigners

A U D I E N C E

Page 17: Future Of Ruby And Rails

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

P R I N C I P L E S

Rails 3

programmer happinessstrong conventionsfluent designflexibilitymodularityspeed

Page 19: Future Of Ruby And Rails

A T OM I C S T R U C T U R E

Page 20: Future Of Ruby And Rails

A T OM I C N U C L E U S

protonneutron

Rails 2

Page 21: Future Of Ruby And Rails

A T OM I C C L U S T E R

Rails 3

Page 22: Future Of Ruby And Rails

ActiveModel+ ORM

ActionPack

ActionWorker

ActiveSupport

Generators

ActiveResource

ActionMailer

Rack middlewares

Rails stack

Page 23: Future Of Ruby And Rails
Page 24: Future Of Ruby And Rails
Page 25: Future Of Ruby And Rails

NEW

Page 26: Future Of Ruby And Rails

R O U T E Rmatch ‘awesome/:action’

Page 27: Future Of Ruby And Rails
Page 28: Future Of Ruby And Rails
Page 29: Future Of Ruby And Rails

rack love

Page 30: Future Of Ruby And Rails

constraints/filters

Page 31: Future Of Ruby And Rails

constraints(:ip => /192\.168\.1\.\d\d\d/) do get 'admin', :to => "dashboard#index"end

Page 32: Future Of Ruby And Rails

Rack Apps intregration

Page 33: Future Of Ruby And Rails

Rack app intregration

namespace :facebook do use MyMiddleware match "/game", :to => SinatraApp end

Page 34: Future Of Ruby And Rails

mountable apps

Page 35: Future Of Ruby And Rails

rack entry point

class MyForum < Rails::Application

Page 36: Future Of Ruby And Rails

A C T I V EWO R K E R

push_queueThumbnailer.new(path, user, :action => :process)

Page 37: Future Of Ruby And Rails

background process

Page 38: Future Of Ruby And Rails

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

html ❺ ‘data-*’ attributes

Page 40: Future Of Ruby And Rails
Page 41: Future Of Ruby And Rails

one js APIinterface for all libs

Page 42: Future Of Ruby And Rails

O RM AGN O S T I C I T Y

Page 43: Future Of Ruby And Rails

Active_Recordstill the default

ActiveRelation

common API

Page 44: Future Of Ruby And Rails

Datamapper

Legacy repository

multiple repository

queryoptimization

various datastores

Page 45: Future Of Ruby And Rails

Sequel

PreparedStatements Sharding

Highly customizable

SQLPerf

Page 46: Future Of Ruby And Rails

Couchrest/mongomapper/

your_ORMetc..

Page 47: Future Of Ruby And Rails

I N T E R N A LC L E A N U P

Page 48: Future Of Ruby And Rails

P E R F O RMANCE

Page 49: Future Of Ruby And Rails

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

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

RUBYfuture

Page 52: Future Of Ruby And Rails

Ruby

1.8.7

1.9.xIronRuby

JRubyMacRubyRubinius

2.0

Page 53: Future Of Ruby And Rails

Ruby 1.9.x

1.9.xbetter perf

better threadingfibers

official Rubyrecommended

Page 54: Future Of Ruby And Rails

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

Ruby 2.0

not started

scalabilityperformancemaintenabiltymultiple VMs

selector namespacemethod combination

etc..

¿future?

Page 56: Future Of Ruby And Rails

IronRuby

0.9.1

.NET integrationVisualStudio 201?

SilverlightIIS web server

Microsoft

Page 57: Future Of Ruby And Rails

IronRubyVisualStudio 201?

better toolseven better integration

performance

¿future?

Page 58: Future Of Ruby And Rails

JRuby

1.4.0 RC1

java integrationnative threads

deploymentJVM

Page 59: Future Of Ruby And Rails

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

MacRuby

0.5 RC1

Cocoa integrationAOT compilation

performanceGCD

Apple support & toolsOSX platform

Page 61: Future Of Ruby And Rails

MacRuby•iPhone•instrumentation•better dev tools•performance•standardized•linux•any C libs•C extensions

¿future?

biased

Page 62: Future Of Ruby And Rails

Rubinius

0.12ruby almost all the way

full introspectionC extensions

Page 63: Future Of Ruby And Rails

Rubinius

•AOT compiler•very powerful debugger•real time profiler•performance

¿future?

Page 64: Future Of Ruby And Rails

VOCÊyou