Merb

From Wikipedia, the free encyclopedia

Template:Short description Script error: No such module "other uses".

Page Module:Infobox/styles.css has no content.

Merb: No code is faster than no code[1][2]
[[Programmer|Original authorTemplate:Pluralize from text]]Ezra Zygmuntowicz
[[Programmer|DeveloperTemplate:Pluralize from text]]Ezra Zygmuntowicz & Yehuda Katz
Template:Infobox software/simple
Written inRuby
EnginePage Template:Plainlist/styles.css has no content.Template:EditAtWikidata
Operating systemCross-platform
TypeWeb application framework
LicenseMIT License
Websitehttp://www.merbivore.com
RepositoryPage Template:Plainlist/styles.css has no content.

Script error: No such module "Check for conflicting parameters".

Merb is a discontinued model–view–controller web framework in Ruby, notable as a precursor to Rails 3. It brought increased focus on speed and modularity to Rails 3.[4][5] The name Merb is a contraction of "Mongrel" and "Erb".[6]

Precursor to and merge with Rails 3

Merb began as a "clean-room" implementation[7] of the Rails controller stack but grew to incorporate several ideas that deviated from Rails's spirit and methodology at the time, most notably component modularity, extensible API design, and vertical scalability. It was developed by Ezra Zygmuntowicz and Yehuda Katz. Most of these capabilities were added to Rails during the Rails 3/Merb merger.[8][9] Merb was first released at the 2008 RubyConf[10] and development has since stopped; Rails 3, therefore, serves as both the successor to Rails 2 and the successor to Merb.

Differences from Ruby on Rails

Merb's design attempted to address several criticisms of Rails 2:

  • lack of component modularity (monolithic design)
  • lack of an extensible API
  • lack of vertical scalability

Modularity

Merb itself encompassed only the controller layer in MVC architecture, and used a suite of complementary, optional plugins together to assemble applications. The primary integration points were the web server interface, the model layer, the view layer, and controller extensions and add-ons. Merb's default application stack incorporated Datamapper for models, ERB for views, and Rack and Mongrel as the web server layer.[11][12]

Well-defined API

Before the Merb / Rails 3 merge, Rails lacked a well-defined, documented, public API for extensions and plug-ins, leading to issues when Rails changes broke monkey-patches performed by plug-ins. With the Rails 3 / Merb merge, Rails gained a defined public API with a test suite,[9] giving users and plugin developers a clearer, more stable API to build against, reducing plugin breakage from release to release.[8]

Performance and scalability

Some early versions of Rails received bad publicity for lack of performance, frequently due to developer confusion about ActiveRecord queries. David Heinemeier Hansson, the creator of Rails, stated that Merb re-wrote many core Rails pieces to be faster,[8] and incorporated those changes from Merb in the Rails 3 merge, promising users that "Rails 3 will get all the performance attention that the Merb guys are known for".[8]

References

Page Template:Reflist/styles.css has no content.

  1. ^ Page Module:Citation/CS1/styles.css has no content.Zygmuntowicz, Ezra. "No Code is Faster Than No Code". Twitter. Retrieved 2 April 2015.
  2. ^ Page Module:Citation/CS1/styles.css has no content.Grosenbach, Geoffrey. "Origin of, "No code is faster than no code."". Twitter. Ezra Zygmuntowicz. Retrieved 2 April 2015.
  3. ^ Page Module:Citation/CS1/styles.css has no content."1.1.3". GitHub.
  4. ^ Page Module:Citation/CS1/styles.css has no content.Boone, Paul (18 Sep 2008). "Rails/Merb performance comparison (on mongrel, jruby, tomcat, glassfish)". mindbucket.com. Archived from the original on 14 July 2011.
  5. ^ Page Module:Citation/CS1/styles.css has no content."Ruby on Rails 3.0 Release Notes". Ruby on Rails Guides. Retrieved 18 July 2020.
  6. ^ Page Module:Citation/CS1/styles.css has no content.Zygmuntowicz, Ezra (18 Oct 2006). "ANN: Merb, Mongrel+Erb". osdir.com]. Archived from the original on 2009-12-31.
  7. ^ Page Module:Citation/CS1/styles.css has no content.Zygmuntowicz, Ezra (23 Dec 2008). "Merb *is* Rails".
  8. ^ a b c d Page Module:Citation/CS1/styles.css has no content.Hansson, David Heinemeier (23 Dec 2008). "Merb gets merged into Rails 3!". weblog.rubyonrails.org. Retrieved 18 July 2020.
  9. ^ a b Page Module:Citation/CS1/styles.css has no content.Katz, Yehuda (23 Dec 2008). "Rails and Merb Merge". yehudakatz.com.
  10. ^ Page Module:Citation/CS1/styles.css has no content.Aimonetti, Matt (9 Nov 2008). "Merb 1.0 released". Merbist.
  11. ^ Page Module:Citation/CS1/styles.css has no content."merb-core gem dependencies". 23 Mar 2010.
  12. ^ Page Module:Citation/CS1/styles.css has no content."merb gem dependencies". 23 Mar 2010.

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.