<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Talk Like A Duck: Tag books</title>
    <link>http://talklikeaduck.denhaven2.com/articles/tag/books</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>In Ruby, it's not the dog, it's the tricks!</description>
    <item>
      <title>Another Take on Design Patterns</title>
      <description>&lt;iframe align = "right", src="http://rcm.amazon.com/e/cm?t=denhaven2com-20&amp;#38;o=1&amp;#38;p=8&amp;#38;l=as1&amp;#38;asins=0201184621&amp;#38;fc1=000000&amp;#38;IS2=1&amp;#38;lt1=_blank&amp;#38;lc1==E50707&amp;#38;bc1=000000&amp;#38;bg1=FFFFFF&amp;#38;f=ifr&amp;#38;npa=1" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;Most programmers these days are familiar with, or at least aware of the now classic
&lt;a href="http://www.amazon.com/gp/product/0201633612?ie=UTF8&amp;#38;tag=denhaven2com-20&amp;#38;linkCode=as2&amp;#38;camp=1789&amp;#38;creative=9325&amp;#38;creativeASIN=0201633612"&gt;&amp;#8220;Gang of Four&amp;#8221; book Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=denhaven2com-20&amp;#38;l=as2&amp;#38;o=1&amp;#38;a=0201633612" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;.&lt;/p&gt;
&lt;p&gt;One of the recurring arguments about design patterns is how they relate to individual programming languages.  The &amp;#8220;Gang of Four,&amp;#8221; Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, were by majority, proponents of strongly typed languages.  Ralph was the sole representative of Smalltalk and the rest of the dynamic object oriented languages.  As a result, The &lt;span class="caps"&gt;GOF&lt;/span&gt; book had and has more resonance with the C++ community and it&amp;#8217;s successors. Although there
are some Smalltalk examples in the book, many of the patterns express things which are easier, and in some cases
unnecessary to express in a dynamically typed language. I find this a bit ironic, since the whole patterns movement
seems to have started when Ward Cunningham and Kent Beck, two of the best known Smalltalkers, discovered the work of architect
Christopher Alexander and thought that his approach to building and municipal design could be translated to the 
design of software.&lt;/p&gt;
&lt;p&gt;As I was browsing today, I was reminded that there is another &amp;#8220;Design Patterns&amp;#8221; book, 
&amp;#8220;The Design Patterns Smalltalk Companion&amp;#8221; by Sherman Alpert, Bobby Woolf, and Kyle Brown. 
Which might be of interest to not just Smalltalkers
but also Rubyists, since it approaches the subject from they dynamic language point of view.  It&amp;#8217;s not easy to find, but &lt;a href="http://www.amazon.com/gp/product/0201184621?ie=UTF8&amp;#38;tag=denhaven2com-20&amp;#38;linkCode=as2&amp;#38;camp=1789&amp;#38;creative=9325&amp;#38;creativeASIN=0201184621"&gt;Amazon has a few copies in stock.&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=denhaven2com-20&amp;#38;l=as2&amp;#38;o=1&amp;#38;a=0201184621" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;&lt;/p&gt;
&lt;p&gt;Sherm was one of the researchers in the &lt;span class="caps"&gt;IBM&lt;/span&gt; User Interface Institute 
which was housed in the same building where
John Vlissides and Richard Helm of the &amp;#8220;GOF&amp;#8221; worked,
the &lt;span class="caps"&gt;IBM&lt;/span&gt; Watson Research center in 
Yorktown Heights, NY. I spent quite a bit of time with Sherman and the rest of the UI institute team under John T.
Richards back in the late-1980s to early 1990s.
Bobby and Kyle were OO consultants, who I also knew through Knowledge Systems Corp.&lt;/p&gt;  
&lt;p&gt;You never know what you might learn from the old Smalltalkers.&lt;/p&gt;</description>
      <pubDate>Tue, 19 Jun 2007 16:48:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:9e521199-e950-489b-8961-3be80d6b9dd8</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2007/06/19/another-take-on-design-patterns</link>
      <category>war_stories</category>
      <category>smalltalk</category>
      <category>best_practices</category>
      <category>design_patterns</category>
      <category>gang_of_four</category>
      <category>IBM</category>
      <category>books</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/432</trackback:ping>
    </item>
    <item>
      <title>Die Hard?</title>
      <description>&lt;p&gt;At the last meeting of the Agile &lt;span class="caps"&gt;RTP&lt;/span&gt; group, I won Michael T. Nygard&amp;#8217;s book &lt;a href="http://www.amazon.com/gp/product/0978739213?ie=UTF8&amp;#38;tag=denhaven2com-20&amp;#38;linkCode=as2&amp;#38;camp=1789&amp;#38;creative=9325&amp;#38;creativeASIN=0978739213"&gt;Release It!&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=denhaven2com-20&amp;#38;l=as2&amp;#38;o=1&amp;#38;a=0978739213" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; which I&amp;#8217;m reading as a background task. This morning I ran across this:&lt;/p&gt;
&lt;blockquote&gt;Interpreted languages such as Java and Ruby almost never crash. Sure they get application errors, but it&amp;#8217;s relatively rare to see the interpreter or virtual machine crash. I still remember when a rogue pointer in C could reduce the whole machine to a navel-gazing heap.&lt;/blockquote&gt;
&lt;p&gt;I remember &amp;#8220;back in the day&amp;#8221; when there were endless arguments between the C++ and Smalltalk advocates. The C++ folks would often quote Bjarne Strroustrup&amp;#8217;s fear of flying in an airplane whose flight control system was written in Smalltalk, and threw a &amp;#8220;message not understood&amp;#8221; exception. &lt;/p&gt;
&lt;p&gt;Those of us in the Smalltalk camp found this amusing, since the alternative was a system crash caused by an invalidpointer.&lt;/p&gt;
&lt;p&gt;Now maybe Nygard framing rogue pointers in C as a memory means that the problem has been solved, but I seem to recall having seen it recently.&lt;/p&gt;
&lt;h2&gt;It&amp;#8217;s Not Just The Language Stupid&lt;/h2&gt;
&lt;iframe align = "right", src="http://rcm.amazon.com/e/cm?t=denhaven2com-20&amp;#38;o=1&amp;#38;p=8&amp;#38;l=as1&amp;#38;asins=0978739213&amp;#38;fc1=E50707&amp;#38;IS2=1&amp;#38;lt1=_blank&amp;#38;lc1=E50707&amp;#38;bc1=000000&amp;#38;bg1=FFFFFF&amp;#38;npa=1&amp;#38;f=ifr" style="width:120px;height:240px;" scrolling="no" marginright="0" marginheight="0" marginleft="8" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;One point here is that pet-features such as strong vs. dynamic typing or garbage collection vs. allegedly more performant&lt;a name="#fn_ref1" href="#fn1"&gt;[1]&lt;/a&gt; manual memory management aren&amp;#8217;t panaceas. They &lt;strong&gt;can&lt;/strong&gt; have a major effect on aspects such as easo of development, or tweaking out the last bit of performance, sometimes in non-intuitive ways.&lt;/p&gt;
&lt;p&gt;Making robust software requires more than just choosing a language, it requires craftmanship, adherence to best practices for the chosen language(s) and technologies, and a realistic understanding of the challenges at hand.&lt;/p&gt;
&lt;h2&gt;Release It!&lt;/h2&gt;
&lt;p&gt;And that&amp;#8217;s where we come back Nygard&amp;#8217;s book. Although I assume that most of my readers are Rubyists, and Nygard is a Java guru, there is much of value here for anyone concerned with producing robust software that can stand up to the real world.&lt;/p&gt;
&lt;p&gt;Based on what I&amp;#8217;ve read sofar, and skimming the rest, I can recommend it.  If you&amp;#8217;re interested you can buy it directly from the Pragmatic Programmers, or via the &lt;a href="http://www.amazon.com/gp/product/0978739213?ie=UTF8&amp;#38;tag=denhaven2com-20&amp;#38;linkCode=as2&amp;#38;camp=1789&amp;#38;creative=9325&amp;#38;creativeASIN=0978739213"&gt; amazon.com&lt;/a&gt; link.  The later would help feed the duckdogs who run this site, and lower my distraction from their gowling stomachs.&lt;/p&gt;
&lt;/hr&gt;
&lt;p&gt;&lt;a name="fn1 href="#fn_ref1"&gt;[1] &lt;/a&gt;The &amp;#8220;allegedly&amp;#8221; will no doubt be explained in further posts here.&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 12 Jun 2007 11:24:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:5691c3b7-ccb5-486e-8b19-0d5dab46aeb5</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2007/06/12/die-hard</link>
      <category>ruby</category>
      <category>war_stories</category>
      <category>smalltalk</category>
      <category>C</category>
      <category>books</category>
      <category>robustness</category>
    </item>
  </channel>
</rss>
