<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel>
    <title>Software will save us: Comments</title>
    <link>http://www.netalive.org/swsu/</link>
    <description>Comments posted to entries at "Software will save us".</description>
    <dc:language>en-us</dc:language>
    <dc:date>2008-06-23T04:45:49+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.2" />
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>

    <item>
      <title>Re: You don&apos;t know jack about thread-safety (by Henning Koch)</title>
      <link>http://www.netalive.org/swsu/archives/2006/12/you_dont_know_jack_about_threadsafety_1.html#c7767</link>
      <description></description>
      <guid isPermaLink="false">126#c7767@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>The problems and patterns discussed in the book are not specific to Java (the example I posted probably isn't either).</p>

<p>All code examples are in Java though. Since Java ships with more concurrency related helper classes than other languages you might find some of the examples difficult to translate.</p>]]></content:encoded>
      <dc:date>2006-12-28T15:27:00+00:00</dc:date>
    </item>
    <item>
      <title>Re: You don&apos;t know jack about thread-safety (by Brian Goetz)</title>
      <link>http://www.netalive.org/swsu/archives/2006/12/you_dont_know_jack_about_threadsafety_1.html#c7775</link>
      <description></description>
      <guid isPermaLink="false">126#c7775@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>I second Henning's motion.  <br />
</p>]]></content:encoded>
      <dc:date>2006-12-30T06:48:49+00:00</dc:date>
    </item>
    <item>
      <title>Re: You don&apos;t know jack about thread-safety (by Henning Koch)</title>
      <link>http://www.netalive.org/swsu/archives/2006/12/you_dont_know_jack_about_threadsafety_1.html#c7776</link>
      <description></description>
      <guid isPermaLink="false">126#c7776@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>You heard the man :)</p>]]></content:encoded>
      <dc:date>2006-12-30T08:06:09+00:00</dc:date>
    </item>
    <item>
      <title>Re: Whoops! Open classes not cool after all! (by Aristotle Pagaltzis)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/whoops_open_classes_not_cool_after_all.html#c10586</link>
      <description></description>
      <guid isPermaLink="false">129#c10586@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Whoa dude, you’re alive.</p>

<p>Actually, Perl thankfully doesn’t suffer too much from this; not nearly as much as Ruby, anyway. It’s probably because the language isn’t OO from top to bottom so you can’t do some of the unspeakable things Rubyistas are doing.</p>

<p>And I do think it’s necessary that a language allow re-opening classes… but good grief, it just shouldn’t be used in regular code! The facility is there to permit metaprogramming and possibly for when you’re on a deadline and have to deal with a brokenly designed library, in which case it gives you a bad coping strategy rather than no coping strategy.</p>

<p>But it boggles my mind that the problems with wanton exploitation of open classes aren’t blindingly, searingly obvious. I mean, Rake stuffs a kitchensink of filesystem methods into Object, which breaks Net::SFTP’s reliance on method_missing to delegate methods to the right backend module, which leads Assaf Arkin to conclude that method_missing should be avoided. What the …?</p>

<p>People need to find ways to get private method semantics out of their favourite language, and use them.</p>]]></content:encoded>
      <dc:date>2007-03-20T23:18:38+00:00</dc:date>
    </item>
    <item>
      <title>Re: Whoops! Open classes not cool after all! (by Henning Koch)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/whoops_open_classes_not_cool_after_all.html#c10594</link>
      <description></description>
      <guid isPermaLink="false">129#c10594@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Agreed on open classes saving the deadline.</p>

<p>Rest of the comment distilled into another entry.</p>]]></content:encoded>
      <dc:date>2007-03-21T10:32:08+00:00</dc:date>
    </item>
    <item>
      <title>Re: Names are important (by James Booker)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/names_are_important_1.html#c10600</link>
      <description></description>
      <guid isPermaLink="false">130#c10600@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>As usual a superb post and to the point. I'm primarily a PHP programmer for the web (I dabble in Perl rarely) and hate the fact there's no namespaces. PHP takes this even further - library functions aren't named in a standard way (i'm talking the standard libraries here) - it's no wonder there's so much messy PHP code out there - the language itself doesn't encourage good practice (type-less anyone?)</p>

<p>In fact, I think the typeless nature of PHP is the single worst thing about it. And something I use with glee! &lt;/hypocrite&gt;</p>

<p>Oh by the way - nice to see more frequent posting here again.</p>]]></content:encoded>
      <dc:date>2007-03-21T13:49:03+00:00</dc:date>
    </item>
    <item>
      <title>Re: Why you should stop blogging (by Aristotle Pagaltzis)</title>
      <link>http://www.netalive.org/swsu/archives/2006/07/why_you_should_stop_blogging.html#c10606</link>
      <description></description>
      <guid isPermaLink="false">124#c10606@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Finally, stay away from World of Warcraft. Guess you don’t know to take your own advice, huh?</p>]]></content:encoded>
      <dc:date>2007-03-21T16:58:11+00:00</dc:date>
    </item>
    <item>
      <title>Re: Why you should stop blogging (by Henning Koch)</title>
      <link>http://www.netalive.org/swsu/archives/2006/07/why_you_should_stop_blogging.html#c10607</link>
      <description></description>
      <guid isPermaLink="false">124#c10607@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Do as I say, not as I do.</p>]]></content:encoded>
      <dc:date>2007-03-21T17:09:49+00:00</dc:date>
    </item>
    <item>
      <title>Re: Names are important (by Aristotle Pagaltzis)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/names_are_important_1.html#c10608</link>
      <description></description>
      <guid isPermaLink="false">130#c10608@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>In case of doing OO in Perl, though, note the handy aliased module. (The way it works is actually so trivial that you don’t need the module, but using it lets you write the same thing in an intention-revealing fashion.)</p>]]></content:encoded>
      <dc:date>2007-03-21T17:14:58+00:00</dc:date>
    </item>
    <item>
      <title>Re: Names are important (by Henning Koch)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/names_are_important_1.html#c10612</link>
      <description></description>
      <guid isPermaLink="false">130#c10612@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Very nice module. I remember trying to write something similar some years ago but gave up in frustration.</p>]]></content:encoded>
      <dc:date>2007-03-21T18:14:44+00:00</dc:date>
    </item>
    <item>
      <title>Re: Whoops! Open classes not cool after all! (by Jack Diederich)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/whoops_open_classes_not_cool_after_all.html#c11779</link>
      <description></description>
      <guid isPermaLink="false">129#c11779@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Python allows this too but with some restrictions.  1) Types written in C (which includes core types) cannot be amended.  If you want something almost like a bultin subclass it and use that.<br />
2) Types written in python can be manipulated at runtime.  Doing this is called "monkey patching" it is frowned on (for the reasons you describe). Just subtype the thing if you need different behavior.<br />
</p>]]></content:encoded>
      <dc:date>2007-05-04T22:17:48+00:00</dc:date>
    </item>
    <item>
      <title>Re: Names are important (by Bruce Sutherland)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/names_are_important_1.html#c12028</link>
      <description></description>
      <guid isPermaLink="false">130#c12028@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>"You can import reallylongmodulename as shortcut to alias reallylongmodulename into shortcut. Nice"</p>

<p>I didn't know about that (I've only scratched the surface of python). I don't think I'd like to see it in Java though. It is essentially a macro, and although it is limited to a single specific use, the purist in me says "No". Using it would nullify the benefits of the unique package based naming convention for Java which you described.</p>

<p>Also I can see it being abused in horrible ways. Perhaps if it were limited such that it were ONLY allowed in cases where two classes of the same name are imported.</p>

<p>Given the relative rarity of class naming conflicts in Java (in my experience anyway. I almost always give my classes names with at least two words), a little verbosity in differentiating types where they appear (variable declarations and function headers mostly, perhaps the odd cast) it doesn't seem like a big deal. My two cents.</p>]]></content:encoded>
      <dc:date>2007-05-14T04:48:52+00:00</dc:date>
    </item>
    <item>
      <title>Re: Names are important (by Bruce Sutherland)</title>
      <link>http://www.netalive.org/swsu/archives/2007/03/names_are_important_1.html#c12053</link>
      <description></description>
      <guid isPermaLink="false">130#c12053@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Come to think of it, I can think of one way you could achieve something like "import reallylongmodulename as shortcut" in java.</p>

<p>You could declare an inner class which extends the class with the really long name.</p>

<p>To use your example with the AWT List and the List data structure:</p>

<p></p>

<p>package my.domain.my.package;</p>

<p>public class MyClass<br />
{<br />
    public class AWTList extends java.awt.List{};<br />
    public class UtilList extends java.util.List{};<br />
 <br />
    ... rest of class code<br />
}</p>]]></content:encoded>
      <dc:date>2007-05-15T02:49:53+00:00</dc:date>
    </item>
    <item>
      <title>Re: Instant autocomplete in Eclipse (by Jonas)</title>
      <link>http://www.netalive.org/swsu/archives/2005/04/instant_autocom.html#c12424</link>
      <description></description>
      <guid isPermaLink="false">91#c12424@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>The reason for the delay is that on slower computers, the instant autocomplete makes eclipse all but unusable.</p>

<p>At least, that's how it is on mine :)</p>

<p>/Jonas</p>]]></content:encoded>
      <dc:date>2007-05-31T00:48:11+00:00</dc:date>
    </item>
    <item>
      <title>Re: Setter methods make kittens cry (by Doug Pardee)</title>
      <link>http://www.netalive.org/swsu/archives/2008/06/setter_methods_make_kittens_cry_1.html#c21675</link>
      <description></description>
      <guid isPermaLink="false">138#c21675@http://www.netalive.org/swsu/</guid>
      <content:encoded><![CDATA[<p>Fully agree with the point of this article, but I have to nitpick that the reference to the Builder pattern is incorrect. The Builder pattern is about something else (abstracting the interface for the object building so that a variety of concrete types can be built using a single build sequence).</p>]]></content:encoded>
      <dc:date>2008-06-23T04:45:49+00:00</dc:date>
    </item>


  </channel>
</rss>
