<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Silver Bullet on Rails?</title>
	<atom:link href="http://compoundthinking.com/blog/index.php/2005/10/18/silver-bullet-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://compoundthinking.com/blog/index.php/2005/10/18/silver-bullet-on-rails/</link>
	<description>Thinking about programming in new ways</description>
	<lastBuildDate>Wed, 28 Jul 2010 19:00:53 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Mark Ramm</title>
		<link>http://compoundthinking.com/blog/index.php/2005/10/18/silver-bullet-on-rails/#comment-8</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Thu, 20 Oct 2005 15:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=8#comment-8</guid>
		<description>&lt;B&gt;anonymous, &lt;/B&gt; &lt;BR/&gt;&lt;BR/&gt;I think you are right on the money on counts 1 through 4.  &lt;BR/&gt;&lt;BR/&gt;Once you get used to duck typing, automatic casting, and dynamic objects you&#039;ll you use them more and more.  In particular it drives me crazy in Java when I can&#039;t just subistitute another file type object in place of a file. &lt;BR/&gt;&lt;BR/&gt;In Ruby it&#039;s easy to start using files, and then just replace them with some other object which has all the same methods as files when you discover that you that extra something.   But in Java, when you discover the need for that extra functinality, you will feel like you made a mistake and have to go back and change everything.   &lt;BR/&gt;&lt;BR/&gt;I&#039;m not certian how much code this saves, and it is hard to make apples to apples comparisons because Java, Python and Ruby all have different standard libraries which have a significant impact on the number of lines of code you generate.   That said, I would not be supprised if you could drop a third of your code just by dropping variable declarations, using duck typing, and reducing the number of casts. &lt;BR/&gt;&lt;BR/&gt;I am new enough to Ruby not to have a very good feel for how much code blocks can save me.  But so far it seems like it is significant. &lt;BR/&gt;&lt;BR/&gt;--Mark Ramm</description>
		<content:encoded><![CDATA[<p><b>anonymous, </b> </p>
<p>I think you are right on the money on counts 1 through 4.  </p>
<p>Once you get used to duck typing, automatic casting, and dynamic objects you&#8217;ll you use them more and more.  In particular it drives me crazy in Java when I can&#8217;t just subistitute another file type object in place of a file. </p>
<p>In Ruby it&#8217;s easy to start using files, and then just replace them with some other object which has all the same methods as files when you discover that you that extra something.   But in Java, when you discover the need for that extra functinality, you will feel like you made a mistake and have to go back and change everything.   </p>
<p>I&#8217;m not certian how much code this saves, and it is hard to make apples to apples comparisons because Java, Python and Ruby all have different standard libraries which have a significant impact on the number of lines of code you generate.   That said, I would not be supprised if you could drop a third of your code just by dropping variable declarations, using duck typing, and reducing the number of casts. </p>
<p>I am new enough to Ruby not to have a very good feel for how much code blocks can save me.  But so far it seems like it is significant. </p>
<p>&#8211;Mark Ramm</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bonevich</title>
		<link>http://compoundthinking.com/blog/index.php/2005/10/18/silver-bullet-on-rails/#comment-7</link>
		<dc:creator>bonevich</dc:creator>
		<pubDate>Wed, 19 Oct 2005 23:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=8#comment-7</guid>
		<description>Also consider that many of the articles and authors touting a &quot;10x speed&quot; over other web development platforms are using the basic built-in features of Rails.  I have been playing with Rails and Ruby for a month or so now, and getting to the point where I want to go beyond simple CRUD and scaffold generated controllers, etc.  Out on that fringe you run into many of the same problems - business logic and where it lives, etc. - and things slow down a bit.  Part of that is learning curve, I am certain, and in general Ruby and Rails do speed things up, but not exponentially so.</description>
		<content:encoded><![CDATA[<p>Also consider that many of the articles and authors touting a &#8220;10x speed&#8221; over other web development platforms are using the basic built-in features of Rails.  I have been playing with Rails and Ruby for a month or so now, and getting to the point where I want to go beyond simple CRUD and scaffold generated controllers, etc.  Out on that fringe you run into many of the same problems &#8211; business logic and where it lives, etc. &#8211; and things slow down a bit.  Part of that is learning curve, I am certain, and in general Ruby and Rails do speed things up, but not exponentially so.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://compoundthinking.com/blog/index.php/2005/10/18/silver-bullet-on-rails/#comment-6</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 19 Oct 2005 17:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/?p=8#comment-6</guid>
		<description>I just finished my first Ruby program.  I&#039;m very familiar w/ Java and C++, and I&#039;ve dabbled with Objective C.  The program is modest, only about 160 lines of code, but it was a nice way to get familiar with the language.&lt;BR/&gt;&lt;BR/&gt;I&#039;m curious why a &quot;dynamic language&quot; results in less code than other languages.  I&#039;m assuming you&#039;re contrasting dynamically typed languages (e.g., Ruby and Objective C) with statically typed languages (e.g.,  Java and C++).&lt;BR/&gt;&lt;BR/&gt;1. One obvious way is that there are no declarations of variables or parameters.  So actual names of types appear in the code far less often.&lt;BR/&gt;&lt;BR/&gt;2. Also, when one wants to employ polymorphism with disparate classes, it would require the creation of an interface (Java&#039;s term) to link them.  With Ruby&#039;s &quot;duck typing&quot; creating the interface isn&#039;t required.&lt;BR/&gt;&lt;BR/&gt;3. And prior to J2SE 1.5, using any of the collection classes would often require a cast on retrieval.  Or to put it more generally, casts aren&#039;t required at all in a dynamically typed language.&lt;BR/&gt;&lt;BR/&gt;4. One benefit Ruby has is the ability to treat blocks of code as data, and pass them around.  I don&#039;t believe this is a necessary capability of a dynamically typed language, so perhaps this item does not belong here.  But in Java, if one wants objects with different behaviors to method calls (and not just different data), it would require the creation of a class for each.  In Ruby, the differing behavior is data, and thereby can be stored in a variable.&lt;BR/&gt;&lt;BR/&gt;My first question is whether that list can be expanded.&lt;BR/&gt;&lt;BR/&gt;My second question is whether the differences listed really add up to all that much extra code?</description>
		<content:encoded><![CDATA[<p>I just finished my first Ruby program.  I&#8217;m very familiar w/ Java and C++, and I&#8217;ve dabbled with Objective C.  The program is modest, only about 160 lines of code, but it was a nice way to get familiar with the language.</p>
<p>I&#8217;m curious why a &#8220;dynamic language&#8221; results in less code than other languages.  I&#8217;m assuming you&#8217;re contrasting dynamically typed languages (e.g., Ruby and Objective C) with statically typed languages (e.g.,  Java and C++).</p>
<p>1. One obvious way is that there are no declarations of variables or parameters.  So actual names of types appear in the code far less often.</p>
<p>2. Also, when one wants to employ polymorphism with disparate classes, it would require the creation of an interface (Java&#8217;s term) to link them.  With Ruby&#8217;s &#8220;duck typing&#8221; creating the interface isn&#8217;t required.</p>
<p>3. And prior to J2SE 1.5, using any of the collection classes would often require a cast on retrieval.  Or to put it more generally, casts aren&#8217;t required at all in a dynamically typed language.</p>
<p>4. One benefit Ruby has is the ability to treat blocks of code as data, and pass them around.  I don&#8217;t believe this is a necessary capability of a dynamically typed language, so perhaps this item does not belong here.  But in Java, if one wants objects with different behaviors to method calls (and not just different data), it would require the creation of a class for each.  In Ruby, the differing behavior is data, and thereby can be stored in a variable.</p>
<p>My first question is whether that list can be expanded.</p>
<p>My second question is whether the differences listed really add up to all that much extra code?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
