<?xml version="1.0"?>
<rss version="0.91">
  <channel>
    <title>Squeak People diary for chadfowler</title>
    <description>Squeak People diary for chadfowler</description>
    <link>http://people.squeakfoundation.org/person/chadfowler/</link>
    <item>
      <title>15 Jan 2004</title>
      <pubDate>Thu, 15 Jan 2004 05:40:19 -0700</pubDate>
      <link>http://people.squeakfoundation.org/person/chadfowler/diary.html?start=0</link>
      <description>
This is my Squeak-specific diary.  I don't expect anyone to read it.  My apologies to those who do.  I'm just going to braindump/take notes as I explore Squeak.  It's very possible that this will be my last post.  I'm like that.  I won't pay any attention to the quality of what I post here, since it's called a &quot;Diary&quot;.  

&lt;p&gt; &lt;p&gt; My &quot;Hello World&quot; project is to create a Ruby to Squeak compiler.  This is as stupid a first project as it sounds.  Fortunately, I've got some pretty high quality help (thanks, Avi).

&lt;p&gt; &lt;p&gt; I'll be using these notes as I work on this project as part of the trial run of the &lt;a href=&quot;http://wiki.cs.uiuc.edu/MFA&quot; &gt;Software MFA&lt;/a&gt; program at the University of Illinois.

&lt;p&gt; &lt;p&gt; The obvious thing to mention about Squeak (and, I assume, Smalltalk in general) is that everything seems to be ultra-consistent in contrast with other environments I've used.  I've always felt that &lt;a href=&quot;http://www.ruby-lang.org&quot; &gt;Ruby&lt;/a&gt; had this feature going for it, but Squeak is consistent to the extreme.  It's consistent (and therefore intuitive--to me) to the point that on the very rare occasion that it's *not* consistent, it's much more frustrating than when, say, Java isn't consistent with itself.  At the Software MFA program residency, Andy Schneider did a talk on &quot;Similarity&quot; and the role it plays in software development.  Consistency, though usually ideal, can be dangerous.  The consumer of consistent behavior can grow lazy very quickly.  And then, when something unexpected comes along, the lazy consumer doesn't know what to do with it.  One thing I continue to like about the extreme programming philosophy is that it is centered around preparing itself for surprises.  &quot;If $x is usually hard, do it all the time and make it easy.&quot;  I wonder how a programming language/environment might learn from this with regard to consistency and how to prepare the end user/programmer for inconsistencies.

&lt;p&gt; &lt;p&gt; I haven't really talked about my compiler project yet, but the theraflu is kicking in and I should sleep.  

</description>
    </item>
  </channel>
</rss>
