<?xml version="1.0"?><!-- RSS generated by Radio UserLand v8.2.1 on Mon, 21 May 2007 20:27:41 GMT --><rss version="2.0">	<channel>		<title>Tom Edelson: Java</title>		<link>http://radio.weblogs.com/0149758/categories/java/</link>		<description>The programming language (created by &lt;a href=&quot;http://www.sun.com&quot;&gt;Sun Microsystems&lt;/a&gt;), not the island in Indonesia.</description>		<copyright>Copyright 2007 Tom Edelson</copyright>		<lastBuildDate>Mon, 21 May 2007 20:27:41 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>News flash: schemers may have to wait for Beany</title>			<link>http://radio.weblogs.com/0149758/categories/java/2007/05/21.html#a44</link>			<description>&lt;br&gt;&lt;p&gt;In my &lt;a href=&quot;http://radio.weblogs.com/0149758/2007/04/23.html&quot;&gt;April23 post&lt;/a&gt;, I said that I intended to writea &lt;a href=&quot;http://www.moneydance.com&quot;&gt;Moneydance&lt;/a&gt; extension whichwould make Moneydance scriptable from [one of the Java implementationsof] &lt;ahref=&quot;http://en.wikipedia.org/wiki/Scheme_%28programming_language%29&quot;&gt;Scheme&lt;/a&gt;.&amp;nbsp;I&apos;d still like to do that, but have tentatively decided that that willnot be the first Moneydance extension that I will loose upon theworld.&amp;nbsp; The first one will still be a scripting interface, butfor a different scriptinglanguage: &lt;a href=&quot;http://www.beanshell.org&quot;&gt;BeanShell&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;So what&apos;s Beanshell?&amp;nbsp; The &lt;em&gt;really&lt;/em&gt; short answer is thatBeanShell is interpreted, simplified Java.&amp;nbsp; &quot;Simplified&quot; inseveral senses; one is that declaring the types of your variables isoptional in BeanShell.&amp;nbsp; Also, BeanShell can be run in a &quot;console&quot;mode in which you type a single BeanShell statement, and it isexecuted immediately.&amp;nbsp;&lt;/p&gt;&lt;p&gt;A BeanShell call to a Java method looks exactly like a Java call tothe same method.&amp;nbsp; Behind the scenes, the BeanShell interpreteruses the Java &quot;reflection&quot; API to invoke the method.&lt;/p&gt;&lt;p&gt;This means that, while you can use BeanShell to write and run what weordinarily think of as &quot;scripts&quot;, you can also use it as a learningtool.&amp;nbsp; If the Javadoc for an API doesn&apos;t make it crystal clearjust how to write that method call that you need, a littleexperimentation can usually clear it up.&amp;nbsp; You can do thatexperimentation in Java, of course, but doing it in BeanShell tends tobe considerably faster.&lt;/p&gt;&lt;p&gt;Now actually, the same ability to experiment quickly with a Java APIis also present in at least one of the Scheme implementations:namely, &lt;a     href=&quot;http://jscheme.sourceforge.net/jscheme/main.html&quot;&gt;JScheme&lt;/a&gt;.&amp;nbsp;The difference is that, in order to use JScheme in that manner, youhave to know how to program in Scheme, and &lt;em&gt;also&lt;/em&gt; know a goodbit about Java: at least enough to read Javadoc.&amp;nbsp; It&apos;s a prettygood bet that more people, today, know Java than know Scheme, but it&apos;sa dead solid cinch that more people know Java than know both.&amp;nbsp;(Perhaps you&apos;ve never heard of BeanShell before, but if you know Java,then I&apos;ve already told you nearly everything you need to know in orderto get started in using BeanShell to explore an API.)&lt;/p&gt;&lt;p&gt;So there&apos;s the major reason for the change in plans: the BeanShellscripting interface has a bigger potential user base than a Schemescripting interface does.&amp;nbsp; In particular, the BeanShell scriptinginterface should be useful to anyone engaged in learning theMoneydance API, in order to write their own Moneydanceextension(s).&amp;nbsp; It might even encourage more people to do so.&lt;/p&gt;&lt;p&gt;The plan is, as I said, &quot;tentative&quot;.&amp;nbsp; Why?&amp;nbsp; Mostly becauseI&apos;d probably abandon it, if I found out that someone else was alreadyworking on the same thing, and had a big head start.&amp;nbsp; Thatconsideration is part of the reason for this vaporware announcement;I&apos;m hoping to get the word out such that, if my undertaking it wouldindeed be a duplication of effort, I&apos;ll find out.&lt;/p&gt;&lt;p&gt;I suppose I&apos;d also reconsider the change of plan if this posting ledto a great clamor of demand for me to implement a Scheme-Moneydancescripting interface as soon as possible.&amp;nbsp; Or, for that matter, ifit resulted in squadrons of pigs flying around my house at all hours.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post include: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/personalFinanceSoftware&quot;&gt;Personal Finance Software&lt;/a&gt;; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/java&quot;&gt;Java&lt;/a&gt;.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/categories/java/2007/05/21.html#a44</guid>			<pubDate>Mon, 21 May 2007 20:20:13 GMT</pubDate>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=44&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2007%2F05%2F21.html%23a44</comments>			</item>		<item>			<title>More on Moneydance Extensions</title>			<link>http://radio.weblogs.com/0149758/categories/java/2007/04/23.html#a36</link>			<description>&lt;br&gt;&lt;p&gt;One of the ten Moneydance extensions currently available is called the&quot;Python Scripting Interface&quot;.&amp;nbsp; I don&apos;t know Python, so I haven&apos;tdownloaded that extension.&amp;nbsp; I more-or-less assume, though, that if youinstall it, you then have access, from Python code, to thefull Moneydance API: can then do anything from a Python script that you coulddo directly from a full-fledged extension, written in Java.&lt;/p&gt;&lt;p&gt;And, I&apos;d further assume, you could do it with less effort than wouldbe involved in writing an extension: some of the overhead, setting upyour access to Moneydance data, would already have been done foryou.&amp;nbsp; Thus, I&apos;d expect that if you wanted to automate someMoneydance chore for your own use, and weren&apos;t thinking ofdistributing the code you create to others, then it would be easier todo it in Python than in Java.&lt;/p&gt;&lt;p&gt;Provided, of course, that you knew Python.&amp;nbsp; As I mentioned, Idon&apos;t ... and it really doesn&apos;t have a place on any list of languagesI want to learn, either.&amp;nbsp; (Before a horde of Python fanaticsdescends upon me, let me hasten to add that I really havenothing &lt;em&gt;against&lt;/em&gt; Python; it&apos;s just that there arevarious other languages which, for one reason or another, excite me more... enough of them for one lifetime, I think.&amp;nbsp; I don&apos;t claim thatthis preference is anything but arbitrary, OK?)&lt;/p&gt;&lt;p&gt;If you have some other scripting language that you&apos;d like to be ableto use with Moneydance (&lt;em&gt;at least&lt;/em&gt;, if it&apos;s a scripting  languagethat&apos;s been implemented in Java), you can write your own &quot;scriptinginterface&quot; in the form of a new extension, and grant your ownwish.&amp;nbsp; (Uh, that&apos;s provided that you also know some Java, ofcourse.)&lt;/p&gt;&lt;p&gt;As a matter of fact, that&apos;s exactly what I have in mind: to write aMoneydance &quot;scripting interface&quot; for one of the Java implementationsof Scheme ... of which, you may or may not be surprised to know, thereare at least three.&lt;/p&gt;&lt;p&gt;&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;a href=&quot;http://radio.weblogs.com/0149758/categories/Scheme&quot;&gt; Scheme.&lt;/p&gt;&lt;br&gt;</description>			<guid>http://radio.weblogs.com/0149758/categories/java/2007/04/23.html#a36</guid>			<pubDate>Mon, 23 Apr 2007 20:25:36 GMT</pubDate>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=36&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2007%2F04%2F23.html%23a36</comments>			</item>		<item>			<title>Do the Moneydance</title>			<link>http://radio.weblogs.com/0149758/categories/java/2007/04/09.html#a32</link>			<description>&lt;br&gt;&lt;p&gt;In the entry for &lt;a href=&quot;http://radio.weblogs.com/0149758/2007/03/27.html&quot;&gt;March 27&lt;/a&gt;, I made a passing mention of &lt;a href=&quot;http://www.moneydance.com/&quot;&gt;Moneydance&lt;/a&gt;, the personal finance software package which I currently use.  So now I&apos;ll say a little more about it.&lt;/p&gt;&lt;p&gt;Moneydance may be considered a competitor to Quicken and Microsoft Money, though it comes from a much smaller company.  Moneydance costs about $30, or about the same as the &quot;basic&quot; version of Quicken.  (You can try Moneydance out for free, though; it&apos;s available for download at &lt;a href=&quot;http://www.moneydance.com&quot;&gt;&lt;a href=&quot;http://www.moneydance.com&quot;&gt;http://www.moneydance.com&lt;/a&gt;&lt;/a&gt;.)&lt;/p&gt;&lt;p&gt;Unlike Quicken and Microsoft Money, Moneydance is written in Java.     One implication of this is that it has the same functionality on Windows,  Mac OS X,  and Linux.   Quicken, by contrast, is a much  less capable package on a Mac than it is on Windows, and isn&apos;t  available at all on Linux.  &lt;/p&gt;&lt;p&gt;  Moneydance isn&apos;t &quot;open source&quot;, but it does have an open API  (Application Program Interface), which allows any Java programmer to  write extensions to Moneydance.   It may seem as if this is not  important to you if you are not a programmer, but I think it is  important to anyone, as an indication that the makers of Moneydance  have a much more open &lt;em&gt;attitude&lt;/em&gt; than do Intuit, the makers of  Quicken.  &lt;/p&gt;&lt;p&gt; Besides, there are already some extensions available: ten of them, as of today, and they&apos;re free.  (The &lt;a href=&quot;http://moneydance.com/extensions.shtml&quot;&gt;online list of available extensions&lt;/a&gt; lists only three of them; the only way I know  of to get a complete list is from within Moneydance itself.   One negative note: when you do that, you get only the names,  no descriptions, which makes it hard to tell which one, if any, has  the functionality you are looking for.)  &lt;/p&gt;&lt;p&gt; This extensibility is one of many reasons why I greatly  prefer Moneydance to Quicken.  Caveat: this is not a formal  review, because I&apos;ve never done a head-to-head comparison of the  same &lt;em&gt;version&lt;/em&gt; of the two packages -- that is, of versions  released at about the same time -- but I would be &lt;em&gt;very&lt;/em&gt;  suprised if doing such a head-to-head comparison were to change my  preference.  &lt;/p&gt;&lt;p&gt; As for Microsoft Money, it&apos;s not available on any platform except Windows.  Other than that, I know little about it: I&apos;ve  never used it.  &lt;/p&gt;&lt;p&gt; Disclosure: a project I have done some work on, and hope to get back to, is to create another Moneydance extension.  I don&apos;t expect to make any money from doing this (at least, not directly ... ); you decide whether this involvement with the product nevertheless makes me &quot;biased&quot; in evaluating the merits of Moneydance versus its competitors.  &lt;/p&gt;&lt;p&gt; I don&apos;t speak Marketing: it&apos;s not my style to drown you in superlatives.  In my judgment, though, Moneydance is the best personal finance program now available.  I&apos;d say that&apos;s true for most users, and most especially for Macintosh users.&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/categories/java/2007/04/09.html#a32</guid>			<pubDate>Mon, 09 Apr 2007 14:58:25 GMT</pubDate>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=32&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2007%2F04%2F09.html%23a32</comments>			</item>		<item>			<title>What I do</title>			<link>http://radio.weblogs.com/0149758/categories/java/2006/08/26.html#a18</link>			<description>&lt;br&gt;&lt;p&gt;So what am I doing with myself, since I &lt;a href=&quot;http://radio.weblogs.com/0149758/2006/08/24.html&quot;&gt;&quot;retired&quot;&lt;/a&gt;?&lt;/p&gt;  &lt;p&gt;I consider myself to have two &quot;callings&quot;: software developer, and writer.&lt;/p&gt;&lt;p&gt;Let me talk about the former for a bit, now.&lt;/p&gt;At the moment, at least, I&apos;d say that my three favorite programming languages are Perl, Scheme, and Java. &amp;nbsp; (I wonder how many people there are who would pick those three.  I suspect -- but not  confidently -- that the answer would be &quot;not many&quot;, because they&apos;re all so different from each other. )&lt;br&gt;&lt;br&gt;Perl is the language I&apos;ve worked  in the most, over the last several years (which is to say, over the greater part of my time at SAS).&amp;nbsp; &lt;br&gt;&lt;br&gt; At any rate.&amp;nbsp; My &quot;focal project&quot; at the moment is implementing a flexible backup utility as a Perl module.&amp;nbsp; &quot;As a Perl module&quot; implies that this is not a standalone application designed for complete non-programmers to use: you have to write a Perl script in order to make use of it.&amp;nbsp; But for those who know how to do that, it gives them a great deal of control over how the backups are done.&amp;nbsp; &lt;br&gt;&lt;br&gt;I&apos;m writing this mostly because I want it.&amp;nbsp; But I do intend, also, to submit it to CPAN (the Comprehensive Perl Archive Network), once it&apos;s done.&lt;br&gt;&lt;p&gt;&lt;em&gt;Categorie(s) for this post include: &lt;/em&gt; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/retirement&quot;&gt;Retirement&lt;/a&gt;; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/perl&quot;&gt;Perl&lt;/a&gt;; &lt;a href=&quot;http://radio.weblogs.com/0149758/categories/backupSoftware&quot;&gt;Backup software&lt;/a&gt;.&lt;/p&gt;</description>			<guid>http://radio.weblogs.com/0149758/categories/java/2006/08/26.html#a18</guid>			<pubDate>Sat, 26 Aug 2006 18:00:26 GMT</pubDate>			<comments>http://radiocomments2.userland.com/comments?u=149758&amp;amp;p=18&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0149758%2F2006%2F08%2F26.html%23a18</comments>			</item>		</channel>	</rss>