Just A Summary : The "Yes is No" Problem http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem.rss en-us 40 Piers Cawley Practices Punditry Comment on The "Yes is No" Problem by Vince P. <i>Then, a few weeks ago, I watched a couple of screencasts of experienced Smalltalk developers doing their thing and… wow.</i><br><br> <p>Do you have a link to those screencasts you can email me? I&#8217;m curious what all the fuss has been about as well. Even having done some SmallTalk, I never did see the magic. Thanks!</p> <p>-Vince</p> Wed, 04 Apr 2007 13:39:28 -0500 urn:uuid:a249571d-5dfd-4c36-8482-a6eb26b38e9a http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-187 Comment on The "Yes is No" Problem by Jan <p>Can I ask which smalltalk screencasts you found impressive?</p> Wed, 04 Apr 2007 15:33:57 -0500 urn:uuid:63e7d7ca-0902-41a1-b621-6bd96623f69e http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-188 Comment on The "Yes is No" Problem by Dave <p>Welcome to SmallTalk :)</p> <p>Once you enter&#8230;</p> Wed, 04 Apr 2007 17:46:44 -0500 urn:uuid:a7cc6c84-7d44-4a6a-99b1-d91ec536ba74 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-189 Comment on The "Yes is No" Problem by Jonathan Allen <p>Why do you need this ability? Is it impossible to pick the real algorythm to be used at design time?</p> Wed, 04 Apr 2007 20:39:53 -0500 urn:uuid:16164104-4ce4-4d50-84d1-1fbbf2b05773 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-190 Comment on The "Yes is No" Problem by Piers Cawley <p>Johnathan: It&#8217;s not impossible to tell. ActiveRecord needs them all, but the various different behaviours can be thought of as layers on top of some basic functionality. If your language supports them, you could use Traits (Smalltalk) or Roles (Perl 6) to layer the behaviour, but Ruby doesn&#8217;t have that, so Mixins it is.</p> <p>Layering the behaviour in this way also enables reuse in a way that having one big hunk o&#8217; code doesn&#8217;t; I can (and do) write classes in such a way that I can layer ActiveRecord::Validations on top (it&#8217;s often useful to do this for objects that are going to end up serialized inside an ActiveRecord based object, especially if you&#8217;re generating them from form data and want to give feedback on entered data).</p> <p>Everyone else: If I could remember which ones and their URLs I&#8217;d&#8217;ve added them to the body of the post. I shall hunt through my browser history at some point.</p> Thu, 05 Apr 2007 01:47:08 -0500 urn:uuid:d8b3a117-5c93-4d0c-b1fe-0d31aef2cd2d http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-191 Comment on The "Yes is No" Problem by Bill de hÓra <p>&#8220;Having taken the time to explain why dynamic modification of classes can be a problem, I should point out that I don&#8217;t think it&#8217;s really a problem in practice. Sure, you can do Very Bad Things with it, but so what?&#8221;</p> <p>You really, really need to look at a big codebase that does this and has done so over many years. One example is Zope2.</p> <p>Zope2 also has a shell/codebrowse environment, but try running dir() on a Plone page object inside it. Watch the screen scroll through many hundreds of methods, over a thousand in some cases. It&#8217;s food and drink to the &#8220;scripting languages don&#8217;t scale&#8221; crowd.</p> <p>I&#8217;ve always said that the worst case scenario for Rails is that it evolves in something like Zope, because at Zope&#8217;s core is an object web publisher, which did 8 years ago what Rails does today.</p> <p>Given enough time, dynamic modification and class monkey patching are entropic, or rather, beg serious questions about sustainability. All languages present tradeoffs.</p> Thu, 05 Apr 2007 11:54:04 -0500 urn:uuid:7dd72011-5612-4c59-b6f7-945579ca1169 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-195 Comment on The "Yes is No" Problem by Phil Toland <p>I don&#8217;t know if these are the screencasts you mentioned, but here are a few that I have recently watched:</p> <ol> <li><a href="http://onsmalltalk.com/programming/smalltalk/screencast-how-to-build-a-blog-in-15-minutes-with-seaside/" rel="nofollow">How to build a blog in 15 minutes with Seaside</a></li> <li><a href="http://onsmalltalk.com/programming/smalltalk/screencast-how-to-package-smalltalk-code-with-monticello/" rel="nofollow">How to Package Smalltalk Code with Monticello</a></li> <li><a href="http://gilesbowkett.blogspot.com/2007/01/seaside-screencasts.html" rel="nofollow">Seaside Screencasts by Giles Bowkett</a></li> <li><a href="http://video.google.com/videoplay?docid=-9059529534041031582" rel="nofollow">Web apps: Why bother?</a></li> </ol> Thu, 05 Apr 2007 11:49:16 -0500 urn:uuid:1378765b-fad7-4066-8918-6e6a2c26af4e http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-194 Comment on The "Yes is No" Problem by Piers Cawley <p>Bill: About the only thing I&#8217;d disagree with in your discussion of Zope as a system whose codebase got bad is your implication that it was ever anything <em>but</em> bad. It&#8217;s a framework I&#8217;ve disliked since I first saw it.</p> <p>And bear in mind that I&#8217;m praising <em>Smalltalk</em> &#8211; when I check in my local Squeak image, I see that &#8216;Object&#8217; has around 500 methods sorted into something like 60 message protocols. And that&#8217;s not counting class methods or anything inherited from the ProtoObject class. It could probably stand to be slimmed down some (there&#8217;s quite a bit of cruft kicking around in Squeak), but it&#8217;s still manageable.</p> <p>It&#8217;s not about method counts, it&#8217;s about care and clarity. I have issues with Rails in some areas, but profusion of methods isn&#8217;t one of them. I&#8217;d like to see the way mixins are layered to build the core classes documented more clearly, but within any module it&#8217;s usually clear what&#8217;s going on &#8211; methods tend to be named well and each mixin concentrates on doing one thing, so it tends to be understandable on its own terms.</p> <p>Phil: Ah&#8230; thanks for those links. I&#8217;d not seen Avi&#8217;s last one, but the rest are all familiar.</p> Thu, 05 Apr 2007 12:43:52 -0500 urn:uuid:96d88f70-f2f4-4772-b224-fd4b91771330 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-196 Comment on The "Yes is No" Problem by Daniel Berger <p>Would something like the &#8216;use&#8217; module solve your issue? I based it somewhat on Curtis Poe&#8217;s traits module:</p> <p><a href="http://rubyforge.org/frs/download.php/8825/use-1.2.0.tar.gz" rel="nofollow">http://rubyforge.org/frs/download.php/8825/use-1.2.0.tar.gz</a></p> Thu, 05 Apr 2007 15:12:00 -0500 urn:uuid:0f058ab0-3330-4f84-9f30-db3ae3c925bc http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-197 Comment on The "Yes is No" Problem by Piers Cawley <p>Frankly, I don&#8217;t think it is an issue; it&#8217;s a capability. I was trying to explain why some people think it&#8217;s a problem.</p> Fri, 06 Apr 2007 04:16:18 -0500 urn:uuid:eea39fb1-5401-4e0e-8fc4-c42781853e39 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-198 Comment on The "Yes is No" Problem by Mauro Cicio I have two more points to support your position on the 80 columns issue. <ul> <li>respecting this old rule has an interesting side effect: it makes the figures spitted out by rake stats much more reliable and meaningful.</li> <li>the old 80 columns terminal DO exists, often in production environments on &#8220;ruggedized&#8221; machines (typical situation of banks, telecommunication companies, etc.).</li> </ul> Wed, 09 Apr 2008 07:53:15 -0500 urn:uuid:06c9b7fe-c7db-4319-9c19-f4651d6abcbf http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-1376 Comment on The "Yes is No" Problem by James Robertson <p>You can also see screencasts and videos on Smalltalk at the Cincom Smalltalk site:</p> <ul> <li><a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_daily" rel="nofollow">Screencasts</a></li> <li><a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=smalltalk_videos" rel="nofollow">Videos</a></li> <li><a href="http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=podcasts" rel="nofollow">Podcasts</a></li> </ul> Wed, 02 Jul 2008 08:54:29 -0500 urn:uuid:8f3da6bb-0fe5-4af0-98bf-4aa5ae8972b8 http://www.bofh.org.uk/articles/2007/04/04/the-yes-is-no-problem#comment-1411