<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Thu, 11 Mar 2004 16:38:07 GMT -->
<rss version="2.0">
	<channel>
		<title>Jon Israelson: Programming</title>
		<link>http://radio.weblogs.com/0124580/categories/programming/</link>
		<description>General programming issues, thoughts and ideas.</description>
		<language>en-us</language>
		<copyright>Copyright 2004 Jon Israelson</copyright>
		<lastBuildDate>Thu, 11 Mar 2004 16:38:07 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>jai89@attbi.com</managingEditor>
		<webMaster>jai89@attbi.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>23</hour>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<description>&lt;A href=&quot;http://www.vanderburg.org/cgi-bin/glv/blosxom/Software/Languages/java_interrupt.rdoc&quot;&gt;Java as Baby Step&lt;/A&gt;. James Robertson thinks that &lt;A href=&quot;http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;amp;entry=3256208279&quot;&gt;Java is an interruption&lt;/A&gt; in the forward progress of software development. It&amp;#146;s nice to see this meme spread a bit; I&amp;#146;ve thought the same thing since 1996 or so. During &amp;#145;95 and &amp;#145;96, watching Java start to gain traction, I was amazed by the ignorance and ire surrounding many of what I considered Java&amp;#146;s best features: 
&lt;UL&gt;
&lt;LI&gt;the virtual machine 
&lt;LI&gt;garbage collection 
&lt;LI&gt;methods &quot;virtual&quot; (in C++ parlance) by default 
&lt;LI&gt;a singly-rooted class hierarchy &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I came to view Java as a baby step that would serve primarily to soften up developers&amp;#146; attitudes toward these things, thus shortening the leap required to adopt even better languages like Lisp, Smalltalk, and their ilk. I don&amp;#146;t think I was alone in believing that, but I didn&amp;#146;t hear anyone else saying it for a while. &lt;/P&gt;
&lt;P&gt;It is nice to see people returning to serious language research again. Efforts like the &lt;A href=&quot;http://www.dreamsongs.com/Feyerabend/Feyerabend.html&quot;&gt;Feyerabend Project&lt;/A&gt; and more practically focused offshoots like OOPSLA&amp;#146;s &lt;A href=&quot;http://www.oopsla.org/2004/ShowPage.do?id=CallOnward&quot;&gt;Onward!&lt;/A&gt; track and the &lt;A href=&quot;http://prog.vub.ac.be/~wdmeuter/PostJava04/&quot;&gt;Post-Java Workshops&lt;/A&gt; (as well as increasing grass-roots interest in languages like Ruby, Haskell, Squeak, Oz, and even an ongoing Lisp revival) give me hope that we&amp;#146;ll be ready to take a larger step soon. &lt;/P&gt;
&lt;P&gt;[&lt;A href=&quot;http://www.vanderburg.org/cgi-bin/glv/blosxom&quot;&gt;Glenn Vanderburg: Blog&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;I&apos;m with Glenn and James on this:&amp;nbsp; I think that Java&apos;s success was in part due to it&apos;s packaging of the features that Glenn listed above in a form that was easy for C developers to swallow.&amp;nbsp; All of those features had been around for years in various other languages, but those languages didn&apos;t resonate well with the general IT population for a variety of reasons.&amp;nbsp; Java acted as the sugar coating that made accepting those features fairly easy, but in my opinion Java has not added any significant new concepts to the world of programming languages.&amp;nbsp; It&apos;s time for something better.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/03/11.html#a127</guid>
			<pubDate>Thu, 11 Mar 2004 16:38:07 GMT</pubDate>
			<source url="http://www.vanderburg.org/cgi-bin/glv/blosxom?flav=rss">Glenn Vanderburg: Blog</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=127&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F03%2F11.html%23a127</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html&quot;&gt;Job Scheduling in Java&lt;/A&gt;. Scheduling recurring execution of a piece of code is a common task for Java developers. The Timer class has its place, but as Dejan Bosanac explains, developers with more sophisticated requirements might want to check out the Quartz API. [&lt;A href=&quot;http://www.onjava.com/&quot;&gt;O&apos;Reilly Network Articles&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/03/11.html#a125</guid>
			<pubDate>Thu, 11 Mar 2004 15:58:37 GMT</pubDate>
			<source url="http://www.oreillynet.com/cs/xml/query/q/295?x-ver=1.0">O&apos;Reilly Network Articles</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=125&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F03%2F11.html%23a125</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.pragprog.com/pragdave/Tech/Ruby/PoignantGuide.rdoc&quot;&gt;Why&apos;s Poignant Guide&lt;/A&gt;. A few months back, &lt;A href=&quot;http://www.whytheluckystiff.net/&quot;&gt;why the lucky stiff&lt;/A&gt; offered up a great &lt;A href=&quot;http://pragprog.com/pragdave/Practices/SyckWarranty.rdoc&quot;&gt;warranty&lt;/A&gt;. Now he&amp;#146;s at it again, tis time giving us the first glimpse of what looks like a &lt;A href=&quot;http://poignantguide.net/ruby/&quot;&gt;pretty unique approach&lt;/A&gt; to learning a computer language, in this case Ruby. It&amp;#146;s one of those sites that&amp;#146;s hard to stop reading: I hope we can convince him to produce a print version for the Pragmatic Bookshelf. [&lt;A href=&quot;http://www.pragprog.com/pragdave&quot;&gt;PragDave&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/02/18.html#a123</guid>
			<pubDate>Wed, 18 Feb 2004 22:03:50 GMT</pubDate>
			<source url="http://www.pragprog.com/pragdave/index.rss">PragDave</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=123&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F02%2F18.html%23a123</comments>
			</item>
		<item>
			<description>IBM has released an &lt;A href=&quot;http://www-306.ibm.com/autonomic/index.shtml&quot;&gt;Autonomic Computing Toolkit&lt;/A&gt; for Java (and that integrates with &lt;A href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse&lt;/A&gt;).</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/02/17.html#a120</guid>
			<pubDate>Tue, 17 Feb 2004 21:41:47 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=120&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F02%2F17.html%23a120</comments>
			</item>
		<item>
			<description>&lt;P&gt;Yahoo has an &lt;A href=&quot;http://story.news.yahoo.com/news?tmpl=story&amp;amp;cid=1620&amp;amp;e=1&amp;amp;u=/sv/20040217/tc_sv/new3deffectcouldbeabrightspotforsun&quot;&gt;interesting story&lt;/A&gt; about how Sun&apos;s &lt;A href=&quot;http://wwws.sun.com/software/looking_glass/&quot;&gt;Project Looking Glass&lt;/A&gt; got its start as the personal project of one developer with a cool idea.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/02/17.html#a119</guid>
			<pubDate>Tue, 17 Feb 2004 14:41:44 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=119&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F02%2F17.html%23a119</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://martinfowler.com/bliki/DomainSpecificLanguage.html&quot;&gt;Martin Fowler on Domain Specific Languages&lt;/A&gt;. &lt;A href=&quot;http://martinfowler.com/bliki/DomainSpecificLanguage.html&quot;&gt;Martin Fowler on DSLs&lt;/A&gt;... 
&lt;P&gt;&lt;I&gt;I&apos;ve always used the analogy of creating a DSL to help think about building up a design - developing classes and methods with an eye to making them be a DSL. As much as possible I do this within the language I&apos;m using, but if I can&apos;t I&apos;m very ready to switch to code generation. At ThoughtWorks we&apos;ve used code generation and similar techniques widely on our larger systems. The point at which I pull the separate language DSL lever is clearly different between languages. I never really felt the need in Smalltalk to use a separate language, while it&apos;s quite common in C++/Java/C#.&lt;/I&gt; [&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/02/13.html#a118</guid>
			<pubDate>Fri, 13 Feb 2004 22:31:14 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=118&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F02%2F13.html%23a118</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://weblog.infoworld.com/udell/2004/02/11.html#a915&quot;&gt;Udell: Programs that write programs&lt;/A&gt;. Worth a look.
&lt;P&gt;Jon Bentley in &lt;I&gt;Bumper-Sticker Computer Science&lt;/I&gt; quotes Dick Sites as saying &lt;B&gt;I&apos;d rather write programs to write programs than write programs&lt;/B&gt;.
&lt;P&gt;For some reason I remembered this quote as saying &lt;I&gt;I&apos;d rather write programs to write programs to write programs than write programs to write programs&lt;/I&gt;.
&lt;P&gt;But maybe that&apos;s just me...
&lt;P&gt;[&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/02/13.html#a117</guid>
			<pubDate>Fri, 13 Feb 2004 22:29:27 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=117&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F02%2F13.html%23a117</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.artima.com/intv/simplest.html&quot;&gt;The Simplest Thing That Could Possibly Work&lt;/A&gt;. Ward Cunningham talks with Bill Venners about complexity that empowers versus complexity that creates difficulty, simplicity as the shortest path to a solution, and coding the simplest thing when you&apos;re stuck. [&lt;A href=&quot;http://www.artima.com/&quot;&gt;Artima Articles&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/01/21.html#a113</guid>
			<pubDate>Wed, 21 Jan 2004 14:59:33 GMT</pubDate>
			<source url="http://www.artima.com/newatartima.rss">Artima Articles</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=113&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F01%2F21.html%23a113</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.pragprog.com/pragdave/Practices/MechPolicy.rdoc&quot;&gt;Mechanism and Policy&lt;/A&gt;. I&amp;#146;ve been reading Eric Raymond&amp;#146;s &quot;The Art of Unix Programming&quot; (a good book that could have been great had he managed to find a more balanced voice). In the section on user interfaces, he reminds his readers of the decision of the designers of the X windowing system not to impose look-and-feel constraints on X applications. The designers say that X supports &quot;mechanism, not policy.&quot; 
&lt;P&gt;The X windowing system provides the underlying graphical user interface for most Unix systems (the Mac is a notable exception, as we&amp;#146;ll see). Perhaps surprisingly, X itself offers almost no user-level features. Instead, it concentrates on providing a set of low-level primitives for drawing windows and filling those windows with graphics and text. &lt;/P&gt;
&lt;P&gt;In order to make X usable, you need to supply an application program called a &quot;window manager.&quot; This hooks in to X and handles events: for example, X may create a window, but the window manager can decide where to place it on the screen. To fill windows with widgets (standard interface components) you need another layer of software, the various X toolkits. &lt;/P&gt;
&lt;P&gt;The designers of X felt that building a lot of behavior and standard interaction models into X would limit the user of X. Instead, they provided a (fairly low-level) API, and allowed their users to build any style of interface they wanted. They provide the &lt;EM&gt;mechanism,&lt;/EM&gt; but enforce no policies on how that mechanism is used. &lt;/P&gt;
&lt;P&gt;By contrast, the windowing systems from Microsoft and Apple (as well as those from Be and NeXT) were rich in policy. The windowing systems imposed a number of look-and-feel constraints and behavioral similarities between applications. There were even documents for application designers dictating just &lt;EM&gt;how&lt;/EM&gt; their applications should look and react. &lt;/P&gt;
&lt;P&gt;So what are the tradeoffs? Raymond says: &lt;/P&gt;
&lt;DL&gt;
&lt;DT&gt;
&lt;DD&gt;&lt;EM&gt;The difference in approach &lt;/EM&gt;[between X and Mac/Windows]&lt;EM&gt; ensured that X would have a long-run evolutionary advantage by remaining adaptable as new discoveries were made about human factors in interface design&amp;#151;but it also ensured that the X world would be divided by multiple toolkits, a profusion of window managers, and many experiments in look and feel.&lt;/EM&gt; &lt;/DD&gt;&lt;/DL&gt;
&lt;P&gt;Ignoring the interesting spin on &quot;evolutionary advantage&quot; (I don&amp;#146;t often see X applications edging out Windows and Mac ones on my client&amp;#146;s desktops), the point is a good one. By keeping the underlying framework free of particular implementation decisions, you make it more flexible. This flexibility is a two-edged sword. One the one hand, it allows multiple competing ideas to duke it out: the winners will be selected by their users, and not just by developers (perhaps this is what he meant by evolution). But on the other hand, it also leads to the fragmentation he describes. &lt;/P&gt;
&lt;P&gt;But he&amp;#146;s also being disingenuous here: the reality is that it isn&amp;#146;t the X windowing system itself that&amp;#146;s adapting at all. Instead, it&amp;#146;s the efforts of hundreds of people writing the stuff on top of X that has provided the ongoing evolving interfaces he describes. Underneath the covers, X is basically the same old X. In some way, you could say that all their efforts were expended making up for stuff that X didn&amp;#146;t provide itself. &lt;/P&gt;
&lt;P&gt;So, by providing policy, the designers of Windows and Mac interfaces have provided their end-users with a consistent look and feel, and a base set of application behaviors. By instead focusing on mechanism and ignoring policy, the designers of X allowed developers to experiment, but gave the users of X applications a very inconsistent interface experience. Arguing one approach is better than the other is pretty pointless: they&amp;#146;re just different. &lt;/P&gt;
&lt;P&gt;What can we learn here when it comes to applications and designs? &lt;/P&gt;
&lt;P&gt;When I first started thinking about this, I was reminded of the audience discussions that sometimes erupt when I talk about &lt;A href=&quot;http://www.nakedobjects.org&quot;&gt;Naked Objects&lt;/A&gt;. A Naked Objects application exposes the core business objects of an application directly to the end user. They can manipulate these in any way the objects allow: there is no overall application GUI imposing a certain way of doing things. A Naked Objects system provides mechanism, but little in the way of policy. When I describe this, some folks have a strong reaction against the idea. &quot;Without high-level policy imposed by the GUI (scripting, or series of modal dialogs that have to be filled in in a proscribed order) how can we ensure our users do everything that needs to be done?&quot; they ask. And its a good question. Experienced users, folks who understand the domain, love Naked Object systems because they get the control and flexibility they need to get the job done. But inexperienced users can be confounded by that same flexibility&amp;#151;&quot;what should I do now?&quot;. (In a way, this also relates back to the Dreyfus model of skills acquisition: beginners need to be guided, while experts need to be left alone to get on with their jobs.) &lt;/P&gt;
&lt;P&gt;In the Naked Objects world, it turns out that there&amp;#146;s a compromise. Because the Naked Objects are themselves just Java business objects, there&amp;#146;s nothing stopping you putting a more conventional view and controller on top of them, converting your Naked Objects application into a conventional GUI or Struts-style app. And, because the objects are the same beneath the covers, you could probably arrange to run both the Naked Objects and conventional application at the same time. The conventional application would have less flexibility and functionality, but would be easier for casual users. The Naked Objects system would have full flexibility for more experienced users. &lt;/P&gt;
&lt;P&gt;In a way, this seems like the OSX way of doing things. Apple have taking a Unix operating system and wrapped it with a fantastic user interface. Not only does this interface work at the application level, but it also gives you the ability to do most of the administration of a box without dropping to the command line or editing files. I love this: I&amp;#146;ve spent all too many years administering Unix boxes the hard way. But what I love just as much is that when I need to, I can still get down and dirty. It&amp;#146;s the best of both worlds: regular users get a great, easy-to-use interface, but power users get to strip away the facade and work down at the lower levels. &lt;/P&gt;
&lt;P&gt;Increasingly, I think the &quot;one-size-fits-all&quot; mentality is going to break down. We need to think about delivering our application functionality using multiple modalities, each targeted at specific user communities. Mechanism &lt;EM&gt;versus&lt;/EM&gt; policy is one axis we need to consider, and one that&amp;#146;s relatively easily addressed in a well-designed application. We don&amp;#146;t need to decide up front whether to deliver one or the other; instead we need to work out how to provide both. &lt;/P&gt;[&lt;A href=&quot;http://www.pragprog.com/pragdave&quot;&gt;PragDave&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2004/01/09.html#a111</guid>
			<pubDate>Fri, 09 Jan 2004 22:11:20 GMT</pubDate>
			<source url="http://www.pragprog.com/pragdave/index.rss">PragDave</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=111&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2004%2F01%2F09.html%23a111</comments>
			</item>
		<item>
			<description>&lt;P&gt;&lt;A href=&quot;http://www.solarmetric.com&quot;&gt;SolarMetric&lt;/A&gt; has release version 3.0 of &lt;A href=&quot;http://www.solarmetric.com/Software/Kodo_JDO/&quot;&gt;Kodo&lt;/A&gt;, their JDO implementation.&amp;nbsp; I used Kodo on my last project and really liked it.&amp;nbsp; Its ability to reverse engineer a database schema into a set of classes saved us a huge amount of time and effort.&lt;/P&gt;
&lt;P&gt;This &lt;A href=&quot;http://www.solarmetric.com/Software/Documentation/latest/docs/relnotes.html&quot;&gt;release adds&lt;/A&gt; a lot of very cool new features that address a lot of the shortcomings that I encountered with version 2.5.&amp;nbsp; At the top of this list include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;More hooks for controlling the reverse mapping output (class/method/field names).&lt;/LI&gt;
&lt;LI&gt;Aggregates and projections in queries (yahoo!) .&amp;nbsp; count, sum, min, max, and avg are built in, and you can create your own custom functions.&lt;/LI&gt;
&lt;LI&gt;Now supports direct SQL queries (you can give Kodo your own query and it will return the resulting JDO objects)&lt;/LI&gt;
&lt;LI&gt;More control over handling of very large result sets (using cursors).&lt;/LI&gt;
&lt;LI&gt;Many more object-relational mapping options&lt;/LI&gt;
&lt;LI&gt;Better cache locking, which is supposed to increase concurrent access speed&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;All told, this is good stuff!&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/12/15.html#a108</guid>
			<pubDate>Mon, 15 Dec 2003 19:01:18 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=108&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F12%2F15.html%23a108</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.math.chalmers.se/~rjmh/Papers/whyfp.html&quot;&gt;Why Functional Programming Matters&lt;/A&gt;. &lt;FONT size=-2&gt;by John Hughes (1984)&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=blue&gt;&lt;I&gt;As software becomes more and more complex, it is more and more important to structure it well. Well-structured software is easy to write, easy to debug, and provides a collection of modules that can be re-used to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularised. Functional languages push those limits back. In this paper we show that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute greatly to modularity. &lt;/I&gt;&lt;/FONT&gt;
&lt;P&gt;This is a great paper because it&apos;s easy to read and it &lt;I&gt;shows&lt;/I&gt; you why functional programming matters. It does this in the best of ways: by presenting beautiful programs. It&apos;s by far the best demonstration of lazy evaluation that I&apos;ve found. 
&lt;P&gt;(I was really surprised to find that this paper hasn&apos;t been featured here before, though it has been linked several times.)&lt;BR&gt;[&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/12/01.html#a106</guid>
			<pubDate>Mon, 01 Dec 2003 22:14:51 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=106&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F12%2F01.html%23a106</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.infoworld.com/cgi-bin/redirect?source=rss&amp;amp;url=http://www.infoworld.com/article/03/11/21/46NNj2ee_1.html&quot;&gt;J2EE 1.4 spec certified - Infoworld Staff&lt;/A&gt;. J2EE 1.4 is now official, Sun announced this week. [&lt;A href=&quot;http://www.infoworld.com/news/index.html&quot;&gt;InfoWorld: Top News&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/11/24.html#a103</guid>
			<pubDate>Mon, 24 Nov 2003 15:36:22 GMT</pubDate>
			<source url="http://www.infoworld.com/rss/news.rdf">InfoWorld: Top News</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=103&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F11%2F24.html%23a103</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.artima.com/index.jsp&quot;&gt;artima.com&lt;/A&gt; has posted the second in a series of interviews with Matz, the creator of &lt;A href=&quot;http://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/A&gt;, titled &lt;A href=&quot;http://www.artima.com/intv/tuesday.html&quot;&gt;Dynamic Productivity with Ruby&lt;/A&gt;.</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/11/19.html#a101</guid>
			<pubDate>Wed, 19 Nov 2003 20:18:12 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=101&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F11%2F19.html%23a101</comments>
			</item>
		<item>
			<description>&lt;P&gt;I totally agree with &lt;A href=&quot;http://www.vanderburg.org/cgi-bin/glv/blosxom&quot;&gt;Glenn&amp;nbsp;Vanderburg&apos;s&lt;/A&gt; view in &lt;A href=&quot;http://www.vanderburg.org/cgi-bin/glv/blosxom/2003/11/17#Software/Languages/wrong_turn&quot;&gt;Wrong Turn&lt;/A&gt; that J2EE is a mess (and growing).&amp;nbsp; If you step back and look at the J2EE spec and its implementations you&apos;ve got to be amazed at the complexity and size of it all.&amp;nbsp; There are way too many moving parts, many of which feel like they were built in isolation and later force-fit into the overall spec in order to quickly fill some missing feature.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/11/19.html#a100</guid>
			<pubDate>Wed, 19 Nov 2003 19:15:39 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=100&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F11%2F19.html%23a100</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.artima.com/forums/flat.jsp?forum=32&amp;amp;thread=7925&quot;&gt;Python and the Tipping Point&lt;/A&gt;. Bruce Eckel says, &quot;The main sources of productivity [when programming in Python] are that I am able to look at more lines of code on the screen, put more meaning into fewer lines of code, read and understand code more easily, and deal with higher level concepts.&quot; [&lt;A href=&quot;http://www.artima.com/&quot;&gt;Artima.com News &amp;amp; Ideas&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/11/19.html#a99</guid>
			<pubDate>Wed, 19 Nov 2003 17:37:38 GMT</pubDate>
			<source url="http://www.artima.com/newsandideas.rss">Artima.com News &amp; Ideas</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=99&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F11%2F19.html%23a99</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.artima.com/forums/flat.jsp?forum=32&amp;amp;thread=6878&quot;&gt;Type Checking and Techie Control&lt;/A&gt;. Bruce Eckel says, &quot;Once I get the program running, I feed it real data. Then I&apos;m going to find some interesting errors. So the sooner I can do that, the sooner I can find those errors.&quot; [&lt;A href=&quot;http://www.artima.com/&quot;&gt;Artima.com News &amp;amp; Ideas&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/11/19.html#a98</guid>
			<pubDate>Wed, 19 Nov 2003 17:37:11 GMT</pubDate>
			<source url="http://www.artima.com/newsandideas.rss">Artima.com News &amp; Ideas</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=98&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F11%2F19.html%23a98</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.oreillynet.com/pub/a/onjava/2003/10/22/maven.html&quot;&gt;Developing With Maven&lt;/A&gt;. By knowing what developers want in a build tool, Maven hopes to unseat Ant as the favorite build tool of Java developers. Rob Herbst looks at Maven&apos;s most compelling features. [&lt;A href=&quot;http://www.oreillynet.com/&quot;&gt;O&apos;Reilly Network Articles&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/10/22.html#a91</guid>
			<pubDate>Thu, 23 Oct 2003 02:33:48 GMT</pubDate>
			<source url="http://www.oreillynet.com/cs/xml/query/q/295?x-ver=1.0">O&apos;Reilly Network Articles</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=91&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F10%2F22.html%23a91</comments>
			</item>
		<item>
			<description>I just saw that &lt;A href=&quot;http://catb.org/~esr/&quot;&gt;Eric S. Raymond&lt;/A&gt; has release version 1.0 of &lt;A href=&quot;http://catb.org/~esr/writings/taoup/html/&quot;&gt;The Art of Unix Programming&lt;/A&gt;&amp;nbsp;(also available in print from &lt;A href=&quot;http://www.amazon.com/exec/obidos/tg/detail/-/0131429019/102-2914486-5817746?v=glance&quot;&gt;Amazon&lt;/A&gt;).&amp;nbsp; The last time I took a look at this document, it was fairly incomplete.&amp;nbsp; I&apos;m glad to see that it now exists in its entirety.</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/10/20.html#a90</guid>
			<pubDate>Tue, 21 Oct 2003 00:07:00 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=90&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F10%2F20.html%23a90</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.artima.com/intv/ruby.html&quot;&gt;The Philosophy of Ruby&lt;/A&gt;. &lt;FONT color=blue&gt;&lt;I&gt;Yukihiro Matsumoto, the creator of the Ruby programming language, talks with Bill Venners about Ruby&apos;s design philosophy, including design imperfection, the danger of orthogonality, and the importance of the human in computer endeavors.&lt;/I&gt;&lt;/FONT&gt; 
&lt;P&gt;Rather than discussing Ruby features in particular, Yukihiro Matsumoto explains the principles that guided him in the design of Ruby. Interestingly OO is never mentioned (perhaps it&apos;s taken for granted). 
&lt;P&gt;An interesting quote: 
&lt;P&gt;&lt;I&gt;Yukihiro Matsumoto: Language designers want to design the perfect language. They want to be able to say, &quot;My language is perfect. It can do everything.&quot; But it&apos;s just plain impossible to design a perfect language, because there are two ways to look at a language. One way is by looking at what can be done with that language. The other is by looking at how we feel using that language-how we feel while programming. 
&lt;P&gt;Because of the Turing completeness theory, everything one Turing-complete language can do can theoretically be done by another Turing-complete language, but at a different cost. ... 
&lt;P&gt;Instead of emphasizing the what, I want to emphasize the how part: how we feel while programming. That&apos;s Ruby&apos;s main difference from other language designs. I emphasize the feeling, in particular, how I feel using Ruby. I didn&apos;t work hard to make Ruby perfect for everyone, because you feel differently from me. No language can be perfect for everyone. I tried to make Ruby perfect for me, but maybe it&apos;s not perfect for you. The perfect language for Guido van Rossum is probably Python.&lt;/I&gt; 
&lt;P&gt;and also: 
&lt;P&gt;&lt;I&gt;Yukihiro Matsumoto: Ruby inherited the Perl philosophy of having more than one way to do the same thing. I inherited that philosophy from Larry Wall, who is my hero actually.&lt;/I&gt; [&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]
&lt;P&gt;&lt;FONT color=darkslategray&gt;I&apos;m a big fan of Ruby and this provides a view of the language from the perspective of its designer.&lt;/FONT&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/10/17.html#a88</guid>
			<pubDate>Sat, 18 Oct 2003 00:23:07 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=88&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F10%2F17.html%23a88</comments>
			</item>
		<item>
			<description>Online book &lt;A href=&quot;http://www-mitpress.mit.edu/sicp/&quot;&gt;Structure and Interpretation of Computer Programs&lt;/A&gt;.&amp;nbsp; Another interesting book that I will probably never have time to read.</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/10/07.html#a83</guid>
			<pubDate>Tue, 07 Oct 2003 15:22:39 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=83&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F10%2F07.html%23a83</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://www.jot.fm/issues/issue_2003_09/column1&quot;&gt;Tuples + Objects + Infosets =Too Much Stuff!&lt;/A&gt;. &lt;FONT color=blue&gt;&lt;I&gt;Once upon a time it was possible for every new programmer to quickly learn how to write readable programs to &lt;EM&gt;&lt;STRONG&gt;C&lt;/STRONG&gt;&lt;/EM&gt;reate, &lt;EM&gt;&lt;STRONG&gt;R&lt;/STRONG&gt;&lt;/EM&gt;ead, &lt;EM&gt;&lt;STRONG&gt;U&lt;/STRONG&gt;&lt;/EM&gt;pdate and &lt;EM&gt;&lt;STRONG&gt;D&lt;/STRONG&gt;&lt;/EM&gt;elete business information. These so-called &lt;EM&gt;&lt;STRONG&gt;CRUD&lt;/STRONG&gt;&lt;/EM&gt; applications, along with reporting, were pervasive throughout business and essentially defined IT or MIS as it was called in those days... [Now] THINGS ARE SO COMPLEX YOU NEED AN M.SC. TO PROGRAM CRUD!&lt;/I&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;A href=&quot;http://blogs.gotdotnet.com/emeijer/PermaLink.aspx/51847cf6-6a9d-4ba4-ba4c-73eef9b265b1&quot;&gt;Eric&lt;/A&gt; says this is a great paper, so who am I to argue?
&lt;P&gt;[&lt;A href=&quot;http://lambda.weblogs.com/&quot;&gt;Lambda the Ultimate&lt;/A&gt;]
&lt;P&gt;There are a number of interesting articles to be found on the JOT &lt;A href=&quot;http://www.jot.fm&quot;&gt;(Journal of Object Technology)&lt;/A&gt; web site&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/10/06.html#a82</guid>
			<pubDate>Mon, 06 Oct 2003 21:43:54 GMT</pubDate>
			<source url="http://lambda.weblogs.com/xml/rss.xml">Lambda the Ultimate</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=82&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F10%2F06.html%23a82</comments>
			</item>
		<item>
			<description>&lt;P&gt;&lt;A href=&quot;http://www.eweek.com/article2/0,3959,1305055,00.asp?kc=EWRSS02129TX1K0000531&quot;&gt;Versant Includes JDO in Object Database&lt;/A&gt;. Versant Corp. is hooking up with SolarMetric Inc. to get JDO (Java Data Objects) technology into its Versant object database, officials announced on Tuesday. [&lt;A href=&quot;http://www.eweek.com&quot;&gt;eWEEK Technology News&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;SolarMetric&apos;s Kodo already works against relational and flat files.&amp;nbsp; Now they&apos;ll be able to connect to a true object database.&amp;nbsp; Pretty cool.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/09/30.html#a81</guid>
			<pubDate>Tue, 30 Sep 2003 18:36:11 GMT</pubDate>
			<source url="http://rssnewsapps.ziffdavis.com/tech.xml">eWEEK Technology News</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=81&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F09%2F30.html%23a81</comments>
			</item>
		<item>
			<description>I just stumbled across the &lt;A href=&quot;http://www-106.ibm.com/developerworks/grid/&quot;&gt;grid computing section&lt;/A&gt; of &lt;A href=&quot;http://www-106.ibm.com/developerworks&quot;&gt;IBM developerWorks&lt;/A&gt;.&amp;nbsp; They have a &lt;A href=&quot;http://www-106.ibm.com/developerworks/library/gr-starthere.html?ca=dgr-lnxw07LearnGrid&quot;&gt;good arcticle&lt;/A&gt; that introduces the basics of grid computing.&amp;nbsp; Now if I just had access to that &lt;A href=&quot;http://www.macminute.com/2003/09/20/g5cluster&quot;&gt;huge G5 cluster&lt;/A&gt; at Virginia Tech...</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/09/23.html#a79</guid>
			<pubDate>Tue, 23 Sep 2003 15:34:00 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=79&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F09%2F23.html%23a79</comments>
			</item>
		<item>
			<description>&lt;A href=&quot;http://weblog.infoworld.com/udell/2003/09/23.html#a802&quot;&gt;Baseball lessons for software teams&lt;/A&gt;. &lt;A href=&quot;http://allconsuming.net/item.cgi?isbn=0393057658&quot;&gt;&lt;IMG alt=moneyball hspace=6 src=&quot;http://images.amazon.com/images/P/0393057658.01.MZZZZZZZ.jpg&quot; align=right vspace=6&gt;&lt;/A&gt; 
&lt;BLOCKQUOTE cite=InfoWorld&gt;Doing more with less is the theme of Michael Lewis&apos; terrific new book, Moneyball. This David-versus-Goliath tale explains how the low-budget Oakland Athletics consistently win more games than much richer teams. Moneyball is not just a baseball book; it&apos;s a treatise on the science and economics of individual and team performance. The methods pioneered by Oakland General Manager Billy Beane, based on the theoretical foundations laid by maverick statistician Bill James, hold important lessons for enterprise IT. [Full story at &lt;A href=&quot;http://www.infoworld.com/article/03/09/19/37OPstrategic_1.html&quot;&gt;InfoWorld.com&lt;/A&gt;] &lt;/BLOCKQUOTE&gt;&lt;B&gt;...&lt;/B&gt; [&lt;A href=&quot;http://weblog.infoworld.com/udell/&quot;&gt;Jon&apos;s Radio&lt;/A&gt;]</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/09/23.html#a77</guid>
			<pubDate>Tue, 23 Sep 2003 15:23:57 GMT</pubDate>
			<source url="http://weblog.infoworld.com/udell/rss.xml">Jon&apos;s Radio</source>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=77&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F09%2F23.html%23a77</comments>
			</item>
		<item>
			<description>&lt;P&gt;&lt;A href=&quot;http://weblog.infoworld.com/udell/2003/08/26.html#a782&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;Exploration and discovery&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;.&amp;nbsp; This week&apos;s &lt;/FONT&gt;&lt;A href=&quot;http://www.infoworld.com/article/03/08/22/33OPstrategic_1.html&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;column on dynamic languages&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;, and its associated &lt;/FONT&gt;&lt;A href=&quot;http://weblog.infoworld.com/udell/2003/08/25.html#a780&quot;&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;blog entry&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana,Geneva,Arial,Helvetica,Sans-Serif size=2&gt;, provoked some interesting reactions...[Jon Udell]&lt;/FONT&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0124580/categories/programming/2003/08/27.html#a74</guid>
			<pubDate>Wed, 27 Aug 2003 15:44:57 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=124580&amp;amp;p=74&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0124580%2F2003%2F08%2F27.html%23a74</comments>
			</item>
		</channel>
	</rss>

