<?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>DanielWaechter.com &#187; Smalltalk</title>
	<atom:link href="http://blog.danielwaechter.com/category/programming/smalltalk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.danielwaechter.com</link>
	<description>just another geek blog</description>
	<lastBuildDate>Fri, 11 Jul 2008 01:33:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Making Smalltalk (applications)</title>
		<link>http://blog.danielwaechter.com/programming/making-smalltalk-applications/</link>
		<comments>http://blog.danielwaechter.com/programming/making-smalltalk-applications/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 02:21:19 +0000</pubDate>
		<dc:creator>Daniel Waechter</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://blog.danielwaechter.com/programming/making-smalltalk-applications/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been playing with Smalltalk, specifically <a href="http://www.squeak.org/">Squeak</a>, for a while now, and I&#8217;ve been trying to come up with a project.  I&#8217;ve decided ultimately to build a simple Paint-by-Number game (<a href="http://www.webpbn.com/">example</a>), just to see how it works out.  I&#8217;m going to use TDD and continuous refactoring, after the fashion of <a href="http://squeak.preeminent.org/tut2007/html/index.html">this excellent tutorial</a>, and I&#8217;m going to build off of Damien Cassou&#8217;s <a href="http://damien.cassou.free.fr/squeak-dev/">squeak-dev image</a>.</p>
<p>This should be interesting.  Before encountering (Smalltalk-inspired) <a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> a few years ago and then (also Smalltalk-inspired) <a href="http://www.ruby-lang.org/en/">Ruby</a>, my primary experience with OOP had been C++ and Java &#8211; both of which had left a rather sour taste in my mouth.  Sure, I could see a few advantages, but they didn&#8217;t seem worth it &#8211; and now I realize why.  Most development in those languages is really OINO &#8211; OOP In Name Only.  People actually program procedurally, and create just as much (sometimes more!) spaghetti code as in traditional procedural languages!</p>
<p>One thing about Smalltalk that I think encourages &#8220;true&#8221; OOP development is the way that the development environment works.  In C++ and Java, the file and class are the units of account &#8211; but in Smalltalk, all you see is <i>one method at a time</i>.  I think this is an important observation; it actually encourages the developer to think more granularly, developing smaller and more targeted methods.  Methods are visually separated from the class definition from each other &#8211; even instance and class methods are completely visually separated.  My hypothesis is that this has a valuable psychological impact on design.</p>
<p>Interestingly, though, Ruby and Python developers still seem to do this.  Perhaps not with the tenacity that Smalltalk programmers seem to, but I don&#8217;t seem to find ridiculously long procedures-masquerading-as-methods in their applications as often.  Maybe it&#8217;s because of the nature of the communities, or maybe I just don&#8217;t have a large enough sampling of code.  In any case, it&#8217;s an observation.</p>
<p>So, we&#8217;ll see how I do with this little project.  I don&#8217;t imagine it should be too terribly difficult &#8211; the problem seems easily solved, at least from a distance.  But now my first decision &#8211; how do I store puzzles?</p>
<p>This may not be as trivial as it sounds.  The old-style Perl programmer in me wants to store it as a packed string.  The C programmer wants a multi-dimensional array.  The Lisper wants perhaps an array, perhaps a list of lists.  But what&#8217;s the Smalltalk Way?  A multi-dimensional array of &#8220;Cell&#8221; objects?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.danielwaechter.com/programming/making-smalltalk-applications/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 4/16 queries in 0.004 seconds using disk

Served from: blog.danielwaechter.com @ 2010-09-08 14:27:36 -->