SlideShare a Scribd company logo
1 of 61
Download to read offline
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?

More Related Content

What's hot

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
 

What's hot (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 to 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 to 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
 

More from 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
 

More from 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
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

Merb presentation at ORUG