<?xml version="1.0"?><!-- RSS generated by Radio UserLand v8.2.1 on Sun, 21 Jun 2009 00:54:39 GMT --><rss version="2.0">	<channel>		<title>Tom Edelson&apos;s Songline</title>		<link>http://radio.weblogs.com/0149758/</link>		<description>Writing about computers, life, and society from the perspective of a &quot;poly Quaker Taoist&quot; living in the Triangle region of North Carolina. </description>		<copyright>Copyright 2009 Tom Edelson</copyright>		<lastBuildDate>Sun, 21 Jun 2009 00:54:39 GMT</lastBuildDate>		<docs>http://backend.userland.com/rss</docs>		<generator>Radio UserLand v8.2.1</generator>		<managingEditor>edelsont@mac.com</managingEditor>		<webMaster>edelsont@mac.com</webMaster>		<category domain="http://rpc.weblogs.com/shortChanges.xml">rssUpdates</category> 		<skipHours>			<hour>23</hour>			<hour>1</hour>			<hour>2</hour>			<hour>5</hour>			<hour>6</hour>			<hour>7</hour>			<hour>8</hour>			<hour>21</hour>			</skipHours>		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>		<ttl>60</ttl>		<item>			<title>Sigh.  Goodbye, Radio.</title>			<link>&lt;a href=</link>			<description>&lt;p&gt;Quoting this post by Userland Software, in case you haven&apos;t heard:&lt;p&gt;&lt;center&gt;&lt;a href=&quot;http://productnews.userland.com/radioUserLandClosing&quot;&gt;Radio UserLand service closing&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;&lt;p&gt;UserLand has decided to close the Radio UserLand and Salon Radio services as of December 31, 2009.&lt;p&gt;You can continue to use your Radio weblog hosted with UserLand until the end of the year.&lt;p&gt;If you plan on continuing to use Radio to publish your blog, we would recommend that you look for an alternative web host if your weblog is being published to a UserLand server. You can use the FTP option [1] in Radio to publish to your own server.&lt;p&gt;The closure of Radio will also mean that the UserLand-hosted comments, trackbacks and stats tracking will be unavailable after the shutdown date.&lt;p&gt;If you have any questions, please send them to &lt;a href=&quot;mailto:customerservice@userland.com&quot;&gt;customerservice@userland.com&lt;/a&gt;&lt;p&gt;UserLand Software&lt;p&gt;[1] &lt;a href=&quot;http://radio.userland.com/userGuide/prefs/1/5&quot;&gt;http://radio.userland.com/userGuide/prefs/1/5&lt;/a&gt;&lt;p&gt;To see the original post with more context: &lt;a href=&quot;http://productnews.userland.com/newsItems/departments/radioUserland&quot;&gt;UserLand Product News: Radio UserLand&lt;/a&gt;&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2009/06/20.html#a63</guid>			<pubDate>Sun, 21 Jun 2009 00:35:27 GMT</pubDate>			<source url="http://productnews.userland.com/newsItems/departments/radioUserland.xml">UserLand Product News: Radio UserLand</source>			<category>Blogging</category>			<category>radio</category>			<category>Technology as business</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=63&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2009%2F06%2F20.html%23a63</comments>			</item>		<item>			<title>Life Goes On, But (Mostly) Not Here</title>			<link>http://radio.weblogs.com/0149758/2009/02/03.html#a62</link>			<description>&lt;br&gt;&lt;p&gt;Once again it&apos;s been quite a while since I posted anything to thisblog.&amp;nbsp; But I haven&apos;t lost the blogging habit altogether: I&apos;vebeen posting things somewhere else.&lt;/p&gt;&lt;p&gt;I was faithful for several years to Radio Userland as my bloggingvenue.&amp;nbsp; (And I will always remember it fondly: it was myfirst.)&amp;nbsp; But the time came when I could no longer resist theallure of a less familiar pretty face, and I have begun a newrelationship ... with &lt;a href=&quot;http://www.livejournal.com/&quot;&gt;LiveJournal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In case you&apos;re not familiar with it, LiveJournal is a hybrid: acombination of blogging and social networking.&amp;nbsp; I rather like it(is this New Relationship Energy talking?).&lt;/p&gt;&lt;p&gt;My new blog can be foundhere: &lt;ahref=&quot;http://edelsont.livejournal.com&quot;&gt;&lt;a href=&quot;http://edelsont.livejournal.com&quot;&gt;http://edelsont.livejournal.com&lt;/a&gt;&lt;/a&gt;.&amp;nbsp;You will follow it avidly.&lt;/p&gt;&lt;p&gt;And has this Radio blog been relegated to the dustbin ofhistory?&amp;nbsp; By no means!&amp;nbsp; It&apos;s just become morespecialized.&amp;nbsp; This will be (for the foreseeable future) my &quot;geekblog&quot;.&lt;/p&gt;&lt;p&gt;In other words, what I will plan to post here, from now on, iscomputer technical stuff.&amp;nbsp; Even some postings on software mightgo on LiveJournal, if they are directed at an audience of (potential)users of the software, rather than at the sort of people who program,or otherwise work with computers professionally.&amp;nbsp; So if you&apos;rehard core, stick around!&amp;nbsp; Well, visit me at LJ too, but come backhere when you have the yen to get down into the bits and bytes.&lt;/p&gt;&lt;p&gt;I did create one post &quot;over there&quot; which some might think, by my owncriteria, belonged &quot;over here&quot;.&amp;nbsp; It&apos;s about my programminglanguage preferences (hint: the title is &quot;In Good Taste: VerySchemely&quot;), and you can find itat &lt;ahref=&quot;http://edelsont.livejournal.com/1038.html&quot;&gt;&lt;a href=&quot;http://edelsont.livejournal.com/1038.html&quot;&gt;http://edelsont.livejournal.com/1038.html&lt;/a&gt;&lt;/a&gt;.&amp;nbsp;Take a look, and judge for yourself where it belongs.&amp;nbsp;&lt;/p&gt;&lt;p&gt;I myself would say that that that posting actually is in the rightplace: that it isn&apos;t directed at a technical audience.&amp;nbsp; The onlyreasons it gives for my preferences are non-technical ones.&amp;nbsp; Iwas trying to give the non-geeks a little taste of what it&apos;s like tocare about such things.&lt;/p&gt;&lt;p&gt;I hope that you enjoy the new blog.&amp;nbsp; And that you continue toenjoy this one, too ... if you&apos;re into that sort of thing.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/blogging&quot;&gt;Blogging&lt;/a&gt;,&lt;a href=&quot;http://radio.weblogs.com/0149758/categories/radio/&quot;&gt;Radio Userland&lt;/a&gt;,&lt;a href=&quot;http://radio.weblogs.com/0149758/categories/programmingLanguages/&quot;&gt;Programming Languages&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2009/02/03.html#a62</guid>			<pubDate>Tue, 03 Feb 2009 19:45:34 GMT</pubDate>			<category>Blogging</category>			<category>Programming languages</category>			<category>radio</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=62&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2009%2F02%2F03.html%23a62</comments>			</item>		<item>			<title>My Dog Died</title>			<link>http://radio.weblogs.com/0149758/2008/11/12.html#a61</link>			<description>&lt;br&gt;&lt;p&gt;Toofus was a fifteen-year-old retired racing greyhound, who had beenpart of my household for five and a half years.  Fifteen is reallyold: the median longevity of the breed is a little more than thirteenyears.  He had various health problems, particularly gradual loss ofsome of the function of the hind legs; so I knew that he was slowingdown, and that I should not be surprised if he came to the end of theroad within the next year, or even in any given month.  But there wasnothing acute, nothing to indicate that it was imminent ....&lt;/p&gt;&lt;p&gt;... until 5 am on Sunday, October 12, when I was awakened by noises,and went and found that things were a good deal worse.  He had fallen,struggled to get up, and fallen again -- several times, apparently,because all four legs had places where skin had come off as hestaggered against the legs of the dining room table.&lt;/p&gt;&lt;p&gt;This was on a hard-floored surface.  When I got him on to the carpet,he was able to stand and walk.  But shakily.&lt;/p&gt;&lt;p&gt;I began to face the question of whether it was time to euthanize him.I talked to various people on the phone.&lt;/p&gt;&lt;p&gt;Meanwhile, I was observing that he was somewhat stabilized, but notshowing any signs of returning to the previous day&apos;s level offunctioning.  He could get up, and walk around some; but he fell downseveral more times.&lt;/p&gt;&lt;p&gt;I became more or less clear that it was the right thing to let him go, to&quot;send him to Rainbow Bridge&quot;, as the current expression has it; but Ithought that it could wait for the next day, when the regularveterinarians would be open.  Then, in the evening, it got worse yet:he fell down again, and, after twenty minutes, had not made anyattempt to get up.  So then it became clear, intellectually but alsoemotionally, that the more merciful thing was to grant him hishonorable discharge, and do it quickly.&lt;/p&gt;&lt;p&gt;I ended up using a &quot;pet ambulance&quot; service to get him to the Cary petemergency clinic.  He was given the lethal injection, an overdose of asedative, at about 11 pm.  It was over in less than a minute.&lt;/p&gt;&lt;p&gt;I cried some, there and then.  The next day, I was sad, but notintensely so; I was at peace with my decision.  However, a monthlater, I am under no illusion that I am done grieving.&lt;/p&gt;&lt;p&gt;I loved that dog.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post: &lt;/em&gt;&lt;/p&gt;&lt;ul&gt; &lt;li&gt;&lt;a href=&quot;http://radio.weblogs.com/0149758/categories/greyhounds&quot;&gt;   Greyhounds&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/11/12.html#a61</guid>			<pubDate>Wed, 12 Nov 2008 18:20:24 GMT</pubDate>			<category>Greyhounds</category>			<category>self</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=61&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F11%2F12.html%23a61</comments>			</item>		<item>			<title>Gettin&apos; Down with the Large Hadron Collider</title>			<link>http://radio.weblogs.com/0149758/2008/09/06.html#a60</link>			<description>&lt;br&gt;&lt;br&gt;&lt;p&gt;&lt;a href=&quot;http://seanreilly.com/blog/archives/58&quot;&gt;You gotta watch this&lt;/a&gt;. Trust me. &lt;/p&gt;&lt;p&gt;Large Hadron Rap&lt;/p&gt;&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/j50ZssEojtM&amp;#038;hl=en&amp;#038;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/j50ZssEojtM&amp;#038;hl=en&amp;#038;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/09/06.html#a60</guid>			<pubDate>Sat, 06 Sep 2008 21:03:45 GMT</pubDate>			<source url="http://seanreilly.com/blog/feed">sean reilly</source>			<category>Humor</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=60&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F09%2F06.html%23a60</comments>			</item>		<item>			<title>An Invitation to Read About My Spiritual Journey</title>			<link>http://radio.weblogs.com/0149758/2008/08/06.html#a59</link>			<description>&lt;br&gt;&lt;p&gt;Actually, my &lt;a href=&quot;http://www.well.com/user/edelsont/&quot;&gt;home page atThe Well&lt;/a&gt; has had, for some time, a link called &quot;Notes on myspiritual journey&quot;.&amp;nbsp; But the linked-to document wasin plain text, and not so easy to read.&lt;/p&gt;&lt;p&gt;Now, there&apos;s a newer version up, in HTML, and the content has beenrevised a good bit, too.&amp;nbsp; You can find it via the home page, orat &lt;ahref=&quot;http://www.well.com/user/edelsont/personal/my-spiritual-journey.html&quot;&gt;&lt;a href=&quot;http://www.well.com/user/edelsont/personal/my-spiritual-journey.html&quot;&gt;http://www.well.com/user/edelsont/personal/my-spiritual-journey.html&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It offers some insight into the &quot;Quaker&quot; and &quot;Taoist&quot; parts of myself-description (in the masthead of this blog).&amp;nbsp; It doesn&apos;t sayanything about the &quot;poly&quot; part, but I hope to address that soon.&lt;/p&gt;&lt;p&gt;&lt;a   href=&quot;http://www.well.com/user/edelsont/personal/my-spiritual-journey.html&quot;&gt;My   Spiritual Journey&lt;/a&gt; may also be the only page on the Web with   links to all of these Wikipedia pages (among others):&lt;/p&gt;&lt;ul&gt;  &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Philip_Berrigan&quot;&gt;Philip      Berrigan&lt;/a&gt;&lt;br&gt;&lt;br&gt;  &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Limit_of_a_function&quot;&gt;Limit       of a Function&lt;/a&gt;&lt;br&gt;&lt;br&gt;  &lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Andy_Sipowicz&quot;&gt;Andy Sipowicz&lt;/a&gt;&lt;/ul&gt;&lt;p&gt;At first glance, my spiritual journey may look like a randomwalk.&amp;nbsp; But there&apos;s some interesting scenery, and good mentalexercise, along the way.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/self&quot;&gt;Aboutme&lt;/a&gt;, &lt;ahref=&quot;http://radio.weblogs.com/0149758/categories/Philosophy&quot;&gt;Philosophy&lt;/a&gt;, &lt;ahref=&quot;http://radio.weblogs.com/0149758/categories/Quakerism&quot;&gt;Quakerism&lt;/a&gt;, &lt;ahref=&quot;http://radio.weblogs.com/0149758/categories/writing&quot;&gt;Writing&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/08/06.html#a59</guid>			<pubDate>Wed, 06 Aug 2008 15:05:25 GMT</pubDate>			<category>Philosophy</category>			<category>Quakerism</category>			<category>self</category>			<category>Writing</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=59&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F08%2F06.html%23a59</comments>			</item>		<item>			<title>Anybody Want to Test-drive a Moneydance Extension?</title>			<link>http://radio.weblogs.com/0149758/2008/07/25.html#a58</link>			<description>&lt;br&gt;&lt;p&gt;I closed the last post by predicting that     my &lt;a     href=&quot;http://www.well.com/user/edelsont/software/intro.html&quot;&gt;software     page&lt;/a&gt; was going to grow.&amp;nbsp; Well, technically, it hasn&apos;t;     it&apos;s gotten smaller.&amp;nbsp; But that&apos;s because its previous     content (a general description of my recent software projects)     has been moved to a new location: &lt;a href=&quot;http://www.well.com/user/edelsont/software/as-developer.html&quot;&gt;&lt;a href=&quot;http://www.well.com/user/edelsont/software/as-developer.html&quot;&gt;http://www.well.com/user/edelsont/software/as-developer.html&lt;/a&gt;.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The new content at the old location is more of an index to mysoftware-related pages: three of them, so far.&lt;/p&gt;&lt;p&gt;Which brings me to my main point: the newest of these pages describesa Moneydance extension I&apos;ve written.&amp;nbsp; Yes, after talking a lotabout extensions I planned to write, I&apos;ve finally got oneworking.&amp;nbsp; It&apos;s called &quot;Security Price Entry&quot;, and its purpose isto make it easier to record the prices of your stocks, bonds, and/ormutual funds from your broker&apos;s monthly statements.&lt;/p&gt;&lt;p&gt;The description of it can be found here: &lt;a href=&quot;http://www.well.com/user/edelsont/software/moneydance/my-extensions/security-price-entry.html&quot;&gt;&lt;a href=&quot;http://www.well.com/user/edelsont/software/moneydance/my-extensions/security-price-entry.html&quot;&gt;http://www.well.com/user/edelsont/software/moneydance/my-extensions/security-price-entry.html&lt;/a&gt;.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Now the bad news: it isn&apos;t ready for general distribution yet.&amp;nbsp;Actually, I&apos;m hoping to find a beta tester or two.&lt;/p&gt;&lt;p&gt;The ideal beta tester would be another developer of Moneydanceextensions.&amp;nbsp; But any Moneydance user who&apos;s interested in such acapability should be able to take it for a spin, if I send it to youin pre-built form.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/personalFinanceSoftware&quot;&gt;Personal Finance Software&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/07/25.html#a58</guid>			<pubDate>Fri, 25 Jul 2008 21:55:58 GMT</pubDate>			<category>Personal Finance Software</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=58&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F07%2F25.html%23a58</comments>			</item>		<item>			<title>Something New on My Home Page</title>			<link>http://radio.weblogs.com/0149758/2008/05/06.html#a57</link>			<description>&lt;br&gt;&lt;p&gt;Until a few days aga,my &lt;a href=&quot;http://www.well.com/user/edelsont/&quot;&gt;home page at The    Well&lt;/a&gt; didn&apos;t have anything on it about my interests andactivities in computer technology.&amp;nbsp; Now it does.&lt;/p&gt;&lt;p&gt;I&apos;ve createda &lt;a     href=&quot;http://www.well.com/user/edelsont/software/intro.html&quot;&gt;software    page&lt;/a&gt; with a general overview of the tools I&apos;m using, and theprojects I&apos;m using them on ... or hope to use them on in the future.&lt;/p&gt;&lt;p&gt;Expect this page to grow.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/05/06.html#a57</guid>			<pubDate>Tue, 06 May 2008 20:11:12 GMT</pubDate>			<category>Misc</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=57&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F05%2F06.html%23a57</comments>			</item>		<item>			<title>Comparing JScheme and SISC: A Postscript</title>			<link>http://radio.weblogs.com/0149758/2008/04/25.html#a56</link>			<description>&lt;br&gt;&lt;p&gt;The last five posts in this blog dealt, at perhaps amazing length,with differences between two (of the many) implementations ofScheme, both of them implemented in Java: JScheme and SISC.&lt;/p&gt;&lt;p&gt;In this &quot;postscript&quot;, I want to do two things.&amp;nbsp; The first is togive an overview of the previous five posts in the sequence.&amp;nbsp; Inparticular, I want to call attention to the fact that they progressedfrom talking briefly about my preferences, to discussing a few of thedifferences between JScheme and SISC in much more detail.&amp;nbsp; Andwhen I did the latter, I was no longer motivated primarily by a wishto explain my preferences: instead, my goal was to use thesedifferences as examples of much more general points.&lt;/p&gt;&lt;p&gt;After doing that summarizing, I then want to return to the subject ofpreferences, or rather, of how one would choose between JScheme andSISC.&amp;nbsp; I want to refer, albeit briefly, to a rather larger numberof differences between the two implementations: larger, that is, thanthe small number covered in the previous posts in the sequence.&amp;nbsp;This is in order to give a bit more practical help to someone whoseinterest is in making that choice; and also to make sure that I don&apos;tleave you with the mistaken impression that that small set ofdifferences between JScheme and SISC (the ones that I discussed atlength as examples of &quot;tradeoffs in language design&quot;) is anywhereclose to being all the important differences that there are.&lt;/p&gt;&lt;p&gt;The first of these five preceding posts, titled &lt;a href=&quot;http://radio.weblogs.com/0149758/2008/02/11.html#a51&quot;&gt;A Better Scheme&lt;/a&gt;,announced that, after working with JScheme for several months, I haddecided that I preferred SISC ... enough to convert a project inmid-development from using JScheme to using SISC.&lt;/p&gt;&lt;p&gt;That post didn&apos;t say very much about &lt;em&gt;why&lt;/em&gt; I prefer SISC,making just one general point on that subject, and one more specificone.&amp;nbsp; The general point was that SISC is &quot;a completeimplementation of R5RS, the most recent generally-accepted standardfor the language&quot;, while JScheme claims only to be a &quot;&apos;nearlycomplete&apos; implementation of R4RS, the previous version of thestandard&quot;.&amp;nbsp; The more specific point was that in JScheme, the&quot;... numeric types are the Java numeric types&quot;; and that in somecases, JScheme gives you wrong answers to simple arithmeticquestions.&lt;/p&gt;&lt;p&gt;The next four posts were titled as a series: &quot;Comparing JScheme andSISC: Tradeoffs in Programming Language Design (&lt;a href=&quot;http://radio.weblogs.com/0149758/2008/02/25.html#a52&quot;&gt;part1&lt;/a&gt;)&quot; through&quot;&lt;ahref=&quot;http://radio.weblogs.com/0149758/2008/04/16.html#a55&quot;&gt;... (part4)&lt;/a&gt;&quot;, the last of these being the most recent post prior to thisone.&amp;nbsp; These were, in a sense, a continuation of &quot;A BetterScheme&quot;, but their focus was different.&amp;nbsp; They weren&apos;t primarilyabout &lt;em&gt;choosing between&lt;/em&gt; JScheme and SISC (even though theycertainly presented information that might be relevant to that).&amp;nbsp;While it&apos;s a stretch, one could say that their point of view was thatof a language implementor, rather than that of a [potential] user of alanguage implementation.&lt;/p&gt;&lt;p&gt;That statement would indeed be a stretch, because I wasn&apos;t writing forlanguage implementors.&amp;nbsp; I was writing for Scheme programmers ....especially those who have reason to want access to Java code fromtheir Scheme code ... which is to say, potential users of JScheme[and/]or SISC.&amp;nbsp; However, I wanted to give these readers a bit ofappreciation for the language implementor&apos;s perspective.&amp;nbsp; Inparticular, I wanted to give some examples of how implementationchoices may (in fact, pretty inevitably do) involve tradeoffs, in thesense that a single implementation decision may have consequences thatusers are apt to like ... and other consequences that many users willnot like ... where there&apos;s no way to separate them, to have the &quot;good&quot;consequences without the &quot;bad&quot; ones.&lt;/p&gt;&lt;p&gt;It took me four long posts to deal with just two of theseexamples.&amp;nbsp; Each of these two examples was at least partly abouthow you invoke Java code from your Scheme code, in JScheme or inSISC.&amp;nbsp; There&apos;s no question of &quot;following the Scheme standard&quot;here, because the Scheme standard says nothing about how to dothis.&amp;nbsp; Thus the implementors of JScheme and of SISC each designedtheir own extensions to the language for this purpose, and I wascomparing those two designs.&lt;/p&gt;&lt;p&gt;The first example was entirely about how you do Scheme access to Java:it directly compared the syntax and semantics of how you do this ineach.&amp;nbsp; This was the primary subject of the first two posts in theseries.&amp;nbsp; I noted that JScheme&apos;s way of doing this, the&quot;&lt;ahref=&quot;http://jscheme.sourceforge.net/jscheme/doc/javadot.html&quot;&gt;JavaDotnotation&lt;/a&gt;&quot;, makes for more succinct code than does SISC&apos;s way ofdoing the equivalent.&amp;nbsp; On the other hand, one may (or may not)regard the JavaDot notation as a major departure from the simplicityand consistency of the Scheme syntax, and object to itaccordingly.&amp;nbsp; So that&apos;s a tradeoff, at least if you do interpretthe JavaDot &quot;syntax&quot; in that way, and do regard Scheme&apos;s simplicity ofsyntax as important.&lt;/p&gt;&lt;p&gt;The second example of a tradeoff took up the third and fourth posts inthe series.&amp;nbsp; These returned to the subject of numeric data types(and limited themselves, just in order to narrow the topic, to integerdata types in particular).&amp;nbsp; The underlying difference here is thefact that JScheme labels each integer value as belonging to one of theseveral built-in Java integer types, while to SISC (and to the R5RSstandard), an integer is just an integer ... from the user&apos;s point ofview, at least.&lt;/p&gt;&lt;p&gt;Each of the built-in Java integer data types has a fixed size in thecomputer memory, and, therefore, a fixed range of values that can berepresented.&amp;nbsp; In Java itself, and in JScheme, this entails thatsome arithmetic calculations (namely, those whose true result isoutside the range of representable values) produce answers that,mathematically, are simply incorrect.&amp;nbsp; This doesn&apos;t happen inSISC; I think that this can be counted as an advantage of SISCover JScheme.&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;&lt;p&gt;On the other hand, the same decision, to let the JScheme integer datatypes be the Java integer data types, also allows for greatersimplicity (again, as compared with SISC) in how one calls Java fromJScheme.&amp;nbsp; To give the Scheme programmer the ability to call Java(or, to an extent, any other language), a Scheme implementation mustmatch up the arguments supplied by the Scheme code with the parametersrequired by the available Java methods.&amp;nbsp; In JScheme, since eachinteger argument is already tagged as one of the specific Java types,this matching process is straightforward.&lt;/p&gt;&lt;p&gt;The same matching process in SISC, which doesn&apos;t have such aone-to-one correspondence of types, could lead to ambiguities as towhich Java method is to be called.&amp;nbsp; To prevent such ambiguities,SISC requires (and, so far as I can see, must require) that the Schemeprogrammer explicitly do a data type conversion before passing aScheme value to a Java method.&amp;nbsp; Since that&apos;s [a little bit of]extra code to write, it counts as an advantage that JScheme has overSISC.&lt;/p&gt;&lt;p&gt;So we have a second example of an advantage and a disadvantage,flowing from one and the same design decision: a tradeoff.&amp;nbsp; Suchtradeoffs are one reason why language design (or even the&quot;implementation&quot; of an existing language, because in real life, thatstill entails design decisions) is more difficult than it may look (tosome).&amp;nbsp; This is a valuable thing to be aware of, partly becauseone may then notice that the same is true of the design of programs ingeneral ... at least, in those cases where it makes sense to judge aprogram by more than just whether it meets the explicitly statedrequirements.&lt;/p&gt;&lt;p&gt;I have used selected differences between JScheme and SISC as a vehiclefor making some very general points about programming.&amp;nbsp; If I justleft it at that, though, I might give some readers the mistakenimpression that the differences I have mentioned thus far are the onlydifferences between JScheme and SISC.&amp;nbsp; So, before leaving thetopic of &quot;Comparing JScheme and SISC&quot;, I want to dispel thatimpression.&lt;/p&gt;&lt;p&gt;There are many more differences between these two Schemeimplementations.&amp;nbsp; Most of these differences (at least, if you canjudge by the documentation) consist of features that SISC has, andJScheme doesn&apos;t.&lt;/p&gt;&lt;p&gt;Some of those features are specified by the R5RS standard, so thattheir absence in JScheme is a special case of the general statementthat SISC is a more complete implementation of that standard.&amp;nbsp;One important feature in this category is the ability to create&quot;syntactic extensions&quot; of Scheme in Scheme, also known as&quot;macros&quot;.&amp;nbsp; JScheme doesn&apos;t support these, whereas SISC does.&lt;/p&gt;&lt;p&gt;But a greater number of the features that SISC has, and JSchemedoesn&apos;t have, aren&apos;t in R5RS: they are useful extensions to standardScheme.&amp;nbsp; TheSISC &lt;a href=&quot;http://sisc-scheme.org/manual/html/&quot;&gt;user manual&lt;/a&gt;describes too many of these to list here.&amp;nbsp; Here are three thatmay be regarded as important in various quarters:&lt;/p&gt;&lt;ul&gt;  &lt;li&gt; An exception handling facility.  &lt;br&gt; &lt;br&gt;  &lt;li&gt; An object system: a way to define classes in Scheme code.  &lt;br&gt; &lt;br&gt;  &lt;li&gt; What could be called a &quot;plug-in&quot; architecture: a defined way to  write Java code that implements new Scheme procedures.    &lt;/ul&gt;&lt;p&gt;SISC, in short, comes with a lot more stuff than JScheme does.&amp;nbsp;It&apos;s probably this, more so than the few specific differences that Iexamined in preceding posts, that primarily leads me to the conclusionthat you almost have to prefer SISC over JScheme.&amp;nbsp; That is, it&apos;shard for me to see how you could conclude otherwise, &lt;em&gt;if&lt;/em&gt; youwish to use one implementation for all your Scheme programmingneeds, and you need to write a number of practical (and possiblylarge) programs.&lt;/p&gt;&lt;p&gt;The conclusion is strengthened if you add one more thing to your listof desiderata: if you prefer to use facilities already defined inScheme, as opposed to explicit calls to Java code, wherepossible.&amp;nbsp; That&apos;s because you can pretty much do anything inJScheme that you can do in Java, but as compared to SISC, it&apos;s moreoften the case in JScheme that making explicit calls to Java is theonly way to accomplish a task.&lt;/p&gt;&lt;p&gt;It&apos;s entirely appropriate, then, that JScheme&apos;s biggest claim to famebe that it provides easy access to Java.&amp;nbsp; A JSchemeprogrammer &lt;em&gt;depends&lt;/em&gt; more on explicit access to Java than aSISC programmer does, in order to get work done.&amp;nbsp; JScheme, ascompared with SISC, seems more like a scripting language forJava.&amp;nbsp; SISC seems more like a Scheme implementation which&quot;happens&quot; to be written in Java ... though that fact about it meansthat you also &lt;em&gt;can&lt;/em&gt; explicitly access Java from SISC, when youwish.&amp;nbsp; (And really, it isn&apos;t much more difficult.)&lt;/p&gt;&lt;p&gt;As a postscript to the postscript which is this post, I will add that,judging by my own experience, one of the greatest advantages ofJScheme, in practice, may be something not mentioned so far.&amp;nbsp;That would be the fact that, to one category of potential users,JScheme has less of a learning curve, at the beginning.&amp;nbsp; I amreferring to programmers who want or need to learn and use Scheme, butwho are just beginning to do so.&amp;nbsp; Presuming that he or she alsowill be needing to make use of Java libraries, such a programmer, inlearning to use either JScheme or SISC, is learning how to access Javafrom Scheme, and learning the Scheme language in general, at the sametime.&lt;/p&gt;&lt;p&gt;This is something that one would prefer not to have to do, unless onewere even more of a glutton for punishment than I am.&amp;nbsp; In suchcircumstances, when one hasn&apos;t yet reached a comfort level in&quot;standard&quot; Scheme programming, one is especially likely to look forthe simplest possible way of accomplishing some additional task, suchas invoking Java from Scheme.&amp;nbsp; And to such a Scheme newbie,that&apos;s what the JavaDot notation looks like: this person cares lessabout whether it may dilute the pristine simplicity of the Schemesyntax, and more about the fact that you have a one-screen &quot;cheatsheet&quot; which tells you how to do what you need to do.&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;&lt;p&gt;And that&apos;s where I pretty much was, when I first had to choose whichJava-based Scheme to use: I&apos;d been &lt;em&gt;wanting&lt;/em&gt; to program inScheme for years, and felt I understood the concepts pretty well; butI knew that there&apos;s a big difference between that and having somesignificant practice under your belt.&amp;nbsp; You could call it thedifference between &quot;knowing about&quot; and &quot;know-how&quot;.&lt;/p&gt;&lt;p&gt;So I chose to use JScheme for my first substantial Schemeproject.&amp;nbsp; The project turned out to be a good bit moresubstantial than it seemed at first (don&apos;t they all?), and so it cameto pass that, well before it was done, my perspective hadchanged.&amp;nbsp; Now I &lt;em&gt;was&lt;/em&gt; comfortable with the basics ofScheme.&amp;nbsp; As a result, learning to use a modestly more complicatedinterface to Java was not nearly as scary as it had been a few monthsearlier.&amp;nbsp; In fact, the cost of doing that was now less, in myeyes, than the cost of finishing the project without access to theadditional features offered by SISC.&lt;/p&gt;&lt;p&gt;Remembering this sequence of events helps to keep me from thinkingthat the original decision to start with JScheme was a &quot;mistake&quot;.  Itwas the right thing to do at the time, and perhaps not just in thesense that it appeared to be right, from my perspective at thetime.&amp;nbsp; I might well recommend that someone else follow the samepath -- that is, start with JScheme, with an awareness that one mayswitch to SISC fairly soon -- if that person were starting out insimilar circumstances, with similar goals.&lt;/p&gt;&lt;br&gt;&lt;hr&gt;&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt;This fact also returns to one of the topics of &quot;A BetterScheme&quot; (namely wrong arithmetic answers), and explains how and whythese occur.&lt;/p&gt;&lt;p&gt;&lt;sup&gt;2&lt;/sup&gt;Another reason why SISC looks scary, to a Scheme newbie,is the fact that thepreviously-mentioned &lt;a href=&quot;http://sisc-scheme.org/manual/html&quot;&gt;SISCuser manual&lt;/a&gt; is entitled &quot;SISC for Seasoned Schemers&quot;.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/Scheme&quot;&gt; Scheme&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/2008/04/25.html#a56</guid>			<pubDate>Fri, 25 Apr 2008 20:35:32 GMT</pubDate>			<category>Scheme</category>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=56&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2008%2F04%2F25.html%23a56</comments>			</item>		</channel>	</rss>