SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
merb
       &
  f l e x i b i l t y
p e r f o r m a n c e
Me
Matt
   Aimonetti                 Me

irc:   m a t t e t t i
http://github.com/mattetti
Matt
don’t work
 for Engine Yard

                   Matt
don’t work
 for Engine Yard

                   Matt
Consultant               Me
based in San Diego, CA
http://ma-agile.com/training
Blogs:
   http://merbist.com

   http://railsontherun.com
“It’s also worth mentioning that
there shouldn’t be doubt in
anybody’s mind at this point that
Ruby itself is slow. It’s great that
people are hard at work on faster
implementations of the language,
but right now, it’s tough.”


             Alex Payne, Twitter
I for one am scared of Ruby
because ... it's known to be
slow, so if you become The Next
MySpace, you'll be buying 5
times as many boxes as the .NET
guy down the hall.
              Joel Spolsky
Rails is for the vast majority of
web applications Fast Enough... I
just happen to care much more
about free developer cycles and
am willing to trade the former for
the latter.

          David Heinemeier
              Hansson
Ruby is so embarrassing.
Rails is slow
Ruby is slow
“The slowest programming
  language in the world”
What does the community
         say?
Hardware cost
       >
Development cost
¡we program faster!
¿srly?
benchmarks someone?
raw PHP:
 331 rps
raw PHP:
     331 rps
     cake PHP:
3.6 rps / 8 rps(eaccelerator)
raw PHP:
        331 rps
       cake PHP:
  3.6 rps / 8 rps (eaccelerator)



      code igniter:
21.5 rps / 98.2 rps     (eaccelerator)
raw PHP:
        331 rps
       cake PHP:
  3.6 rps / 8 rps (eaccelerator)



      code igniter:
21.5 rps / 98.2 rps     (eaccelerator)



        Rails:
        88 rps
Rails with 1 mongrel
              is
       pretty close to
the fastest PHP framework.
what about merb?
hello world benchmarks
      baseline results
Merb




merb requests per second
Merb        Static HTML




requests per second
Merb     Static HTML    PHP




  requests per second
Merb router     Merb controller   Sinatra   Rails   CakePHP




              requests per second
We don’t need to be embarrassed
Ruby might be slow at
fibonacci benchmarks
       who cares?
Ruby is fast at
real life web benchmarks
      that’s what matters!
stop saying Ruby is slow
      because that’s not true
what about merb?
because that’s why you’re here
merb is fast
merb is flexible
$ merb-gen app app-name

               merb stack
  merb-action-args           dm-core
    merb-assets            dm-aggregates
     merb-cache            dm-migrations
    merb-helpers           dm-timestamps
     merb-mailer             dm-types
     merb-slices           dm-validations
     merb-auth
merb-param-protection
  merb-exceptions
$ merb-gen very_flat app-name


                                        1 file

Merb::Router.prepare do
  match('/').to(:controller => 'very-flat-app', :action =>'index')
end

class VeryFlatApp < Merb::Controller
  def index
    quot;Hi, I am 'very flat' Merb application. I have everything in one single file
and well suited for dynamic stub pages.quot;
  end
end
$ merb-gen flat app-name


                      4 files
application.rb - controllers & actions
config/framework.rb - framework config
config/init.rb - app settings
views/view_name.html.erb - action view
$ merb-gen core app-name



same as merb stack app
   no dependencies
   when you don’t want DM
     when you use JRuby
when you want an opt-in solution
http://flickr.com/photos/ezzyponchi/283381271/   http://bonluxat.com




                     merb is modular
http://flickr.com/photos/24567277@N00/2374743628/
                                                   merb is agnostic
merb can be opinionated
merb   recycling
merb has an api
Merb has a bright future for the
  people who are not satisfied by the
         fixed ways in Rails.

   I think that Merb will give users
      more freedom in a Ruby-ish
         way of programming.



matz likes merb
$ sudo gem install merb --development

     $ merb-gen app my-first-app

     $ merb-gen resource article
      title:string,author:string



         getting started
merb 2.0
admin interface
e sy



rapid prototyping
swiftiply
e sy



rapid deployment
Ruby 1.9 + i18n/l10n
2.0 schedule?
in less than 12 months
questions?

Más contenido relacionado

La actualidad más candente

Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
Amal Raghav
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-mas
Andrew Grimm
 
Coldfusion
ColdfusionColdfusion
Coldfusion
Ram
 

La actualidad más candente (15)

Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
 
All I want for Matz-mas
All I want for Matz-masAll I want for Matz-mas
All I want for Matz-mas
 
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
 
Approaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the massesApproaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the masses
 
N tier web applications
N tier web applicationsN tier web applications
N tier web applications
 
Avoiding API Library Antipatterns
Avoiding API Library AntipatternsAvoiding API Library Antipatterns
Avoiding API Library Antipatterns
 
Opal chapter 4_a_new_hope
Opal chapter 4_a_new_hopeOpal chapter 4_a_new_hope
Opal chapter 4_a_new_hope
 
Opal - Ruby Style!! Ruby in the browser
Opal - Ruby Style!!  Ruby in the browserOpal - Ruby Style!!  Ruby in the browser
Opal - Ruby Style!! Ruby in the browser
 
Desert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming languageDesert Code Camp 2014: C#, the best programming language
Desert Code Camp 2014: C#, the best programming language
 
PHP Files: An Introduction
PHP Files: An IntroductionPHP Files: An Introduction
PHP Files: An Introduction
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
Webpack & EcmaScript 6 (Webelement #32)
Webpack & EcmaScript 6 (Webelement #32)Webpack & EcmaScript 6 (Webelement #32)
Webpack & EcmaScript 6 (Webelement #32)
 
Why PHP is (so much) more better than Ruby?
Why PHP is (so much) more better than Ruby?Why PHP is (so much) more better than Ruby?
Why PHP is (so much) more better than Ruby?
 
From java-to-ruby-book-summary
From java-to-ruby-book-summaryFrom java-to-ruby-book-summary
From java-to-ruby-book-summary
 
The Once And Future Script Loader (v2)
The Once And Future Script Loader (v2)The Once And Future Script Loader (v2)
The Once And Future Script Loader (v2)
 

Similar a Merb presentation at ORUG

Practical Intro Merb
Practical Intro MerbPractical Intro Merb
Practical Intro Merb
Paul Pajo
 
Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlers
nextlib
 
Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentation
web25
 
Flickr and PHP - Cal Henderson
Flickr and PHP - Cal HendersonFlickr and PHP - Cal Henderson
Flickr and PHP - Cal Henderson
kangaro10a
 
Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentation
eraz
 
Merb Presentation
Merb PresentationMerb Presentation
Merb Presentation
gueste4d7fc
 

Similar a Merb presentation at ORUG (20)

Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Practical Intro Merb
Practical Intro MerbPractical Intro Merb
Practical Intro Merb
 
Practical Intro Merb
Practical Intro MerbPractical Intro Merb
Practical Intro Merb
 
Merb Camp Keynote
Merb Camp KeynoteMerb Camp Keynote
Merb Camp Keynote
 
Merb + Nanite
Merb + NaniteMerb + Nanite
Merb + Nanite
 
Introducing Merb
Introducing MerbIntroducing Merb
Introducing Merb
 
Merb
MerbMerb
Merb
 
Merb The Super Bike Of Frameworks
Merb The Super Bike Of FrameworksMerb The Super Bike Of Frameworks
Merb The Super Bike Of Frameworks
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
Mongrel Handlers
Mongrel HandlersMongrel Handlers
Mongrel Handlers
 
Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentation
 
Intro to Merb
Intro to MerbIntro to Merb
Intro to Merb
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
When To Use Ruby On Rails
When To Use Ruby On RailsWhen To Use Ruby On Rails
When To Use Ruby On Rails
 
Flickr and PHP - Cal Henderson
Flickr and PHP - Cal HendersonFlickr and PHP - Cal Henderson
Flickr and PHP - Cal Henderson
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
 
Merb Plugins 101
Merb Plugins 101Merb Plugins 101
Merb Plugins 101
 
Flickr Architecture Presentation
Flickr Architecture PresentationFlickr Architecture Presentation
Flickr Architecture Presentation
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Merb Presentation
Merb PresentationMerb Presentation
Merb Presentation
 

Más de Matt Aimonetti

Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
Matt Aimonetti
 

Más de Matt Aimonetti (7)

Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
2D Video Games with MacRuby
2D Video Games with MacRuby2D Video Games with MacRuby
2D Video Games with MacRuby
 
Future Of Ruby And Rails
Future Of Ruby And RailsFuture Of Ruby And Rails
Future Of Ruby And Rails
 
Rails3: Stepping off of the golden path
Rails3: Stepping off of the golden pathRails3: Stepping off of the golden path
Rails3: Stepping off of the golden path
 
Macruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
 
MacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meetMacRuby - When objective-c and Ruby meet
MacRuby - When objective-c and Ruby meet
 
Lazy Indexing
Lazy IndexingLazy Indexing
Lazy Indexing
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Merb presentation at ORUG