Merb Screenshot
   HOME

TheInfoList



OR:

Merb is a discontinued
model–view–controller Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are: * the model, the internal representat ...
web framework A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build a ...
in
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, notable as a precursor to Rails 3. It brought increased focus on speed and modularity to Rails 3. The name Merb is a contraction of "
Mongrel A mongrel, mutt, or mixed-breed dog is a dog that does not belong to one officially recognized breed, including those that result from intentional breeding. Although the term ''mixed-breed dog'' is sometimes preferred, many mongrels have no kn ...
" and "
Erb Erb, ERB or ErB may refer to: People * Edgar Rice Burroughs (1875–1950), American author * Erb of Gwent (–), king of Gwent and Glywysing Surname * Abraham Erb (1772–1830), American-born Canadian settler * Albrecht Erb (1628–1714), Aus ...
".


Precursor to and merge with Rails 3

Merb began as a "clean-room" implementation of the
Rails Rail or rails may refer to: Rail transport *Rail transport and related matters * Railway track or railway lines, the running surface of a railway Arts and media Film * ''Rails'' (film), a 1929 Italian film by Mario Camerini * ''Rail'' (1967 fi ...
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 An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
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. Merb was first released at the 2008
RubyConf Ruby Central, Inc., is a non-profit organization based in the United States, dedicated to support and advocacy for the Ruby programming language. Ruby Central is the parent organization of the annual International Ruby and Ruby on Rails Conferen ...
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 Rail or rails may refer to: Rail transport *Rail transport and related matters * Railway track or railway lines, the running surface of a railway Arts and media Film * ''Rails'' (film), a 1929 Italian film by Mario Camerini * ''Rail'' (1967 fi ...
2: * lack of component modularity (
monolithic A monolith is a monument or natural feature consisting of a single massive stone or rock. Monolith or monolithic may also refer to: Architecture * Monolithic architecture, a style of construction in which a building is carved, cast or excavated f ...
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 DataMapper is an object-relational mapper library written in Ruby that follows the active record pattern even though the name implies it follows the data mapper pattern In software engineering, the data mapper pattern is an architectural pattern. ...
for models, ERB for views, and
Rack Rack or racks may refer to: Storage, support and transportation * Amp rack, a piece of furniture in which amplifiers are mounted * Autorack or auto carrier, for transporting vehicles in freight trains * Baker's rack, for bread and other bake ...
and Mongrel as the web server layer.


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, giving users and plugin developers a clearer, more stable API to build against, reducing plugin breakage from release to release.


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 David Heinemeier Hansson, also known by his initials DHH, is a Danish software engineer, programmer, writer, entrepreneur, and racing driver. He is the creator of Ruby on Rails, a web framework written in Ruby. He is also a partner and chief t ...
, the creator of Rails, stated that Merb re-wrote many core Rails pieces to be faster, 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".


References


External links


Merbivore - Official Merb Site
{{Application frameworks Free computer libraries Free software programmed in Ruby Web frameworks Software using the MIT license