<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>threehv &#187; merb</title>
	<atom:link href="http://www.3hv.co.uk/blog/tag/merb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.3hv.co.uk/blog</link>
	<description>precision engineering for your website</description>
	<lastBuildDate>Fri, 13 Jan 2012 16:18:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The curious case of beauty in Ruby (or Rails vs Merb part 2)</title>
		<link>http://www.3hv.co.uk/blog/2008/12/27/the-curious-case-of-beauty-in-ruby-or-rails-vs-merb-part-2/</link>
		<comments>http://www.3hv.co.uk/blog/2008/12/27/the-curious-case-of-beauty-in-ruby-or-rails-vs-merb-part-2/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 00:51:41 +0000</pubDate>
		<dc:creator>Rahoul Baruah</dc:creator>
				<category><![CDATA[Beautiful Code]]></category>
		<category><![CDATA[Designing Great Software]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Ruby on Rails and Software Development]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.3hv.co.uk/blog/?p=349</guid>
		<description><![CDATA[I&#8217;m sure you&#8217;ve all heard the Rails 3 announcement. When I first found out my initial reaction was &#8220;fuck me&#8220;. But shortly after I was filled with a feeling of dread and general unease. And I didn&#8217;t know why &#8230;. Firstly, a bit of history. I first tried programming on a Commodore Vic 20, and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure you&#8217;ve all heard the <a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3">Rails 3 announcement</a>.  When I first found out my initial reaction was &#8220;<a href="http://twitter.com/xbaz/status/1074944824">fuck me</a>&#8220;.  But shortly after I was filled with a feeling of <a href="http://twitter.com/xbaz/status/1076051798">dread and general unease</a>.  And I didn&#8217;t know why &#8230;.</p>
<p>Firstly, a bit of history.  </p>
<p>I first tried programming on a Commodore Vic 20, and then after that a C64.  C64 BASIC was very simple &#8211; if you wanted to do anything beyond PRINT statements you needed to POKE values into registers and control the hardware directly.  Great for learning how things actually worked.  And, to be fair, I was shit at it.  </p>
<p>But I do remember reading an article on a system called &#8220;Smalltalk&#8221; and its &#8220;Object Oriented Programming&#8221;.  Suddenly, programming made sense.  It read a bit like English.  You sent messages to the thing that knows how to answer your question.  It was like talking to people.  You ask Dave a <a href="http://www.eighteensixtyfive.co.uk">football</a> question.  You ask George a <a href="http://www.theresplendents.com">music</a> question.  Cos Dave knows crap all about music and George knows nothing about football.  </p>
<p>But, in those days, Smalltalk cost a fortune; there was no way a child like me could get hold of a Smalltalk environment.  So instead, I got hold of Turbo Pascal 6 With Objects (thanks Dad).  It was not Smalltalk but it read a bit like English and it had objects.  I played about with Turbo Pascal, went to university (where I didn&#8217;t do computing but did do some C++) and then got a job doing Delphi (Turbo Pascal for the 90s).  This object-oriented stuff really worked for me; I put a lot of effort into writing classes that had really simple public interfaces and with code that read like English.  And Pascal (the language underlying Delphi) was great for that.  Then I discovered Java, which meant I could write Delphi-like code but with having to deal with memory management.  I also discovered PHP, Python and Ruby.  None of which clicked with me; dynamic typing made me nervous (and PHP and Ruby seemed a bit ugly).  </p>
<p>However, I needed an ORM for a Delphi project and I thought I should try to copy an open source project.  Whilst searching I discovered Rails and thought &#8220;this is the one to copy&#8221;.  But a day into my &#8220;copy ActiveRecord into Delphi&#8221; plan I thought &#8220;this is just like Smalltalk&#8221;.  Why make an inferior copy when I can use something that&#8217;s not far off the Holy Grail.  Writing an application on Rails had the same effect on me as my original discovery of Smalltalk &#8211; it read like English, it felt fantastic.  So I gave up on Delphi and became a Rails programmer.  </p>
<p>What I liked about Rails was its emphasis on happiness.  When I wrote Rails code I felt like I was writing beautiful prose.  I would go back and refactor it until it read correctly.  This was not like pure Ruby, which was often ugly.  No; Rails had this idea about beauty in code that really got me excited.  It made me happy.  It also made decisions for me &#8211; put your code here, test it like this, set up your database this way.  But Rails had performance problems &#8211; so Merb was born.  A ground-up rewrite of many of Rails&#8217; ideas but with an emphasis on configurability and performance.  </p>
<p>Maybe it&#8217;s the <a href="http://engineyard.com">Engine Yard</a> connection (I turned Engine Yard down for a job because it didn&#8217;t &#8220;feel right&#8221;) &#8211; and now I work for <a href="http://www.brightbox.co.uk">Brightbox</a>, one of their competitors &#8211; but for some reason, every time I tried Merb I just couldn&#8217;t get into it.  It was weird.  Structurally and functionally it was the same as Rails &#8211; but it was Rails plus performance plus options.  And I didn&#8217;t like it.  I never got past the tutorials.  Merb emphasises clear and understandable code and was tested with RSpec (which I love).  Rails is hard to understand and uses Test::Unit (which is ugly).  But I love Rails and I can&#8217;t get into Merb.  I just couldn&#8217;t figure out why.  </p>
<p>Until today.  </p>
<p>Mr Hanson did a <a href="http://loudthinking.com/posts/37-bringing-merbs-providesdisplay-into-rails-3">blog post</a> on his first piece of Rails-Merb integration.  And something stood out at me.  As he was describing Merb&#8217;s provides/display functionality I noticed that I didn&#8217;t really &#8220;get it&#8221;.  <tt>provides</tt> made sense, but how does that relate to <tt>display</tt>.  Mr H addresses that directly: </p>
<blockquote><p>There were a couple of drawbacks with the provides/display duo, though, that we could deal with at the same time. The first was the lack of symmetry in the method names. The words &#8220;provides&#8221; and &#8220;display&#8221; doesn&#8217;t reflect their close relationship and if you throw in the fact that they&#8217;re actually both related to rendering, it&#8217;s gets even more muddy.</p></blockquote>
<p>And then he describes the Rails 3 version of the same functionality.  Instead of provides/display it becomes respond_to/respond_with.  In particular <tt>display @users</tt> becomes <tt>respond_with @users</tt>.  </p>
<p>It&#8217;s only a tiny thing.  Logically and functionally, they are exactly the same.  But DHH&#8217;s version has an emphasis <strong>on the words</strong> that are used.  How they couple together (display/provide versus respond_to/respond_with).  </p>
<p>And there is the reason that I was uneasy about Rails 3.  What if Rails lost this emphasis on the human factors &#8211; how the words mesh together &#8211; in the search of performance.  Merb is written functionally, Rails is written emotionally &#8211; Merb is about performance, Rails is about feelings.  </p>
<p>But DHH has made me feel much better about Rails 3 &#8211; he has shown that he will take Merb constructs and Railsify them, humanise them.  Because, although code is executed by computers, it is written, and more importantly, <em>read</em> by people like me.  </p>
<p>If you find this useful then please take a look at some of my other <a href="http://www.3hv.co.uk/blog">writing</a> &#8211; or recommend me on <a href="http://www.workingwithrails.com/person/8382-rahoul-baruah">Working with Rails</a>.  Cheers. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.3hv.co.uk/blog/2008/12/27/the-curious-case-of-beauty-in-ruby-or-rails-vs-merb-part-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Rails vs Merb (updated)</title>
		<link>http://www.3hv.co.uk/blog/2008/11/18/rails-vs-merb/</link>
		<comments>http://www.3hv.co.uk/blog/2008/11/18/rails-vs-merb/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 10:30:04 +0000</pubDate>
		<dc:creator>Rahoul Baruah</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.3hv.co.uk/blog/?p=320</guid>
		<description><![CDATA[What the fuck is this? Merb is launched and DHH suddenly has a load of &#8220;Rails Myths&#8221; posts up on his blog. Like this sly little dig: it shows the great power of being an full-stack framework Wycats responds with a slightly less sly dig: For the moment, these differences are the reason that Rails [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 560px"><a href="http://www.curtis.lassam.net/"><img alt="Ruby Programmers having a fight" src="http://curtis.lassam.net/comics/programmers.png" title="Programmers" width="550" height="770" /></a><p class="wp-caption-text">Ruby Programmers having a fight</p></div>
<p>What the fuck is <a href="http://www.reddit.com/r/ruby/comments/7d5u6/so_why_should_i_choose_merb_over_ruby_on_rails/">this</a>?  </p>
<p>Merb is launched and DHH suddenly has a load of &#8220;<a href="http://www.loudthinking.com/posts/29-the-rails-myths">Rails Myths</a>&#8221; posts up on his blog.  Like this sly little dig: </p>
<blockquote><p>
it shows the great power of being an full-stack framework
</p></blockquote>
<p>Wycats responds with a <a href="http://yehudakatz.com/2008/11/15/mythbusting-rails-is-not-a-monolith/">slightly less sly dig</a>: </p>
<blockquote><p>
For the moment, these differences are the reason that Rails will continue to dominate amongst developers seeking to build apps similar in scope to apps built by 37Signals. I suspect that Merb will pick up steam amongst developers looking to build innovative apps leveraging the latest and greatest Ruby techniques and libraries.
</p></blockquote>
<p>Zed <a href="http://www.zedshaw.com/blog/2008-11-13.html">responds angrily</a> to a mistake by DHH (which DHH <a href="http://www.loudthinking.com/posts/31-myth-2-rails-is-expected-to-crash-400-timesday">subsequently corrects</a>).  </p>
<p>I admit I&#8217;ve not had much time to look at Merb in detail; the times when I have played with it my impression has been &#8220;it&#8217;s much the same as Rails but done in a different (probably cleaner) way&#8221;.  I love the fact in Rails that everything comes in one bundle (apart from RSpec :-), I love the fact that Merb gives you choices (even though I don&#8217;t have the time to research those choices), I like the fact that the two frameworks are now feeding off each other.  </p>
<p>But the thing that impressed me most when I came to Rails was how nice and friendly the Ruby community was.  But, it would appear that that was an illusion and massive egos are in charge.  Discussion is good.  Adapting your ideas in the face of competition and change is good.  Having a massive pissing match because my framework is better than your framework is stupid.  I wish you would all just shut the fuck up.  </p>
<p>UPDATE: </p>
<p>And the <a href="http://hackety.org/2008/11/22/runningHot.html">fighting continues</a> &#8211; this time it&#8217;s _why versus Zed.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.3hv.co.uk/blog/2008/11/18/rails-vs-merb/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.201 seconds -->

