<story><title>The Rails Doctrine</title><url>http://rubyonrails.org/doctrine</url></story><parent_chain><item><author>jshen</author><text>I think this is wrong. Nearly all of us build on top of things we don&amp;#x27;t understand. I don&amp;#x27;t understand the physics of a harddisk, or the pipelining of a CPU, or some of the low level OS functionality.&lt;p&gt;The issue is when do each of us, as individuals and&amp;#x2F;or teams, really need to understand more. And perhaps more importantly, when does it make business sense to leverage magic to get to market faster, build cheaper, or find market fit before worrying about building the most robust thing possible.</text></item><item><author>glossyscr</author><text>&amp;gt; Too much magic happening everywhere, a gazillion of built-in methods, weird shit happening all over the place&lt;p&gt;Couldn&amp;#x27;t agree more on this. Magic is good if you understand the underlying stuff but if you don&amp;#x27;t and you are once offtrack you are lost. Maybe it&amp;#x27;s also a matter of taste. However the hype and traction DHH could build when RoR started was quite impressive.</text></item><item><author>sauere</author><text>Funny, everything in this post is exactly why i prefer Python(+Django&amp;#x2F;Flask) over Ruby(+Rails). Too much magic happening everywhere, a gazillion of built-in methods, weird shit happening all over the place, all that combined with all the syntactic sugar Ruby offers.&lt;p&gt;Granted, it might look &amp;quot;beautiful&amp;quot; in the eyes of a experienced RoR developer, but personally i find it just makes code very hard to read. Just my 2 cents.</text></item></parent_chain><comment><author>zaphar</author><text>I think this concern gets lost in translation sometimes. It&amp;#x27;s not that you need to understand everything but you do need to know that there is a layer underneath. And it needs to be possible to follow a trail to and through that layer to debug things. Most of the time I &lt;i&gt;don&amp;#x27;t&lt;/i&gt; need to understand the physics of a harddisk. But I know a hard disk operates under certain pysical laws. When I encounter something happening wrong it has on occasion been useful to be able to follow the trail all the way down to that disk and debug at that level.&lt;p&gt;Ruby&amp;#x27;s freewheeling philosophy however means that even when you are the &lt;i&gt;author&lt;/i&gt; of the code some other code might have reached in and changed something out from under you. Not only do you not know there is another layer somewhere doing stuff that impacts you you can&amp;#x27;t even reliably follow a path to find that layer and debug it. As long as &lt;i&gt;everyone&lt;/i&gt; does everything perfectly this is a wonderful world to live in. But the first time someone breaks the rules and impacts you and you lose a week or more unnecessarily you&amp;#x27;ll understand the distaste that ruby fosters in some people.&lt;p&gt;It&amp;#x27;s more about being able to discover what you need to know that it is possessing full knowledge of everything you need to know.</text></comment>
<story><title>The Rails Doctrine</title><url>http://rubyonrails.org/doctrine</url></story><parent_chain><item><author>jshen</author><text>I think this is wrong. Nearly all of us build on top of things we don&amp;#x27;t understand. I don&amp;#x27;t understand the physics of a harddisk, or the pipelining of a CPU, or some of the low level OS functionality.&lt;p&gt;The issue is when do each of us, as individuals and&amp;#x2F;or teams, really need to understand more. And perhaps more importantly, when does it make business sense to leverage magic to get to market faster, build cheaper, or find market fit before worrying about building the most robust thing possible.</text></item><item><author>glossyscr</author><text>&amp;gt; Too much magic happening everywhere, a gazillion of built-in methods, weird shit happening all over the place&lt;p&gt;Couldn&amp;#x27;t agree more on this. Magic is good if you understand the underlying stuff but if you don&amp;#x27;t and you are once offtrack you are lost. Maybe it&amp;#x27;s also a matter of taste. However the hype and traction DHH could build when RoR started was quite impressive.</text></item><item><author>sauere</author><text>Funny, everything in this post is exactly why i prefer Python(+Django&amp;#x2F;Flask) over Ruby(+Rails). Too much magic happening everywhere, a gazillion of built-in methods, weird shit happening all over the place, all that combined with all the syntactic sugar Ruby offers.&lt;p&gt;Granted, it might look &amp;quot;beautiful&amp;quot; in the eyes of a experienced RoR developer, but personally i find it just makes code very hard to read. Just my 2 cents.</text></item></parent_chain><comment><author>Eridrus</author><text>&amp;gt; I don&amp;#x27;t understand the physics of a harddisk, or the pipelining of a CPU, or some of the low level OS functionality.&lt;p&gt;I think the key difference is that you don&amp;#x27;t &lt;i&gt;need&lt;/i&gt; to know how that works. I think there&amp;#x27;s a question of how leaky the abstraction is and how often you need to look behind the curtain.</text></comment>