Java
The programming language (created by Sun Microsystems), not the island in Indonesia.

















Subscribe to "Java" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.


Monday, May 21, 2007
 


In my April 23 post, I said that I intended to write a Moneydance extension which would make Moneydance scriptable from [one of the Java implementations of] Scheme.  I'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.  The first one will still be a scripting interface, but for a different scripting language: BeanShell.

So what's Beanshell?  The really short answer is that BeanShell is interpreted, simplified Java.  "Simplified" in several senses; one is that declaring the types of your variables is optional in BeanShell.  Also, BeanShell can be run in a "console" mode in which you type a single BeanShell statement, and it is executed immediately. 

A BeanShell call to a Java method looks exactly like a Java call to the same method.  Behind the scenes, the BeanShell interpreter uses the Java "reflection" API to invoke the method.

This means that, while you can use BeanShell to write and run what we ordinarily think of as "scripts", you can also use it as a learning tool.  If the Javadoc for an API doesn't make it crystal clear just how to write that method call that you need, a little experimentation can usually clear it up.  You can do that experimentation in Java, of course, but doing it in BeanShell tends to be considerably faster.

Now actually, the same ability to experiment quickly with a Java API is also present in at least one of the Scheme implementations: namely, JScheme.  The difference is that, in order to use JScheme in that manner, you have to know how to program in Scheme, and also know a good bit about Java: at least enough to read Javadoc.  It's a pretty good bet that more people, today, know Java than know Scheme, but it's a dead solid cinch that more people know Java than know both.  (Perhaps you've never heard of BeanShell before, but if you know Java, then I've already told you nearly everything you need to know in order to get started in using BeanShell to explore an API.)

So there'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.  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).  It might even encourage more people to do so.

The plan is, as I said, "tentative".  Why?  Mostly because I'd probably abandon it, if I found out that someone else was already working on the same thing, and had a big head start.  That consideration is part of the reason for this vaporware announcement; I'm hoping to get the word out such that, if my undertaking it would indeed be a duplication of effort, I'll find out.

I suppose I'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.  Or, for that matter, if it resulted in squadrons of pigs flying around my house at all hours.

Categorie(s) for this post include: Personal Finance Software; Java.



4:20:13 PM    comment []


Monday, April 23, 2007
 


One of the ten Moneydance extensions currently available is called the "Python Scripting Interface".  I don't know Python, so I haven't downloaded that extension.  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.

And, I'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.  Thus, I'd expect that if you wanted to automate some Moneydance chore for your own use, and weren't thinking of distributing the code you create to others, then it would be easier to do it in Python than in Java.

Provided, of course, that you knew Python.  As I mentioned, I don't ... and it really doesn't have a place on any list of languages I want to learn, either.  (Before a horde of Python fanatics descends upon me, let me hasten to add that I really have nothing against Python; it'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.  I don't claim that this preference is anything but arbitrary, OK?)

If you have some other scripting language that you'd like to be able to use with Moneydance (at least, if it's a scripting language that's been implemented in Java), you can write your own "scripting interface" in the form of a new extension, and grant your own wish.  (Uh, that's provided that you also know some Java, of course.)

As a matter of fact, that's exactly what I have in mind: to write a Moneydance "scripting interface" for one of the Java implementations of Scheme ... of which, you may or may not be surprised to know, there are at least three.

Categorie(s) for this post: Personal Finance Software; Scheme.



4:25:36 PM  
  comment []


Monday, April 9, 2007
 


In the entry for March 27, I made a passing mention of Moneydance, the personal finance software package which I currently use. So now I'll say a little more about it.

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 "basic" version of Quicken. (You can try Moneydance out for free, though; it's available for download at http://www.moneydance.com.)

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't available at all on Linux.

Moneydance isn't "open source", 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 attitude than do Intuit, the makers of Quicken.

Besides, there are already some extensions available: ten of them, as of today, and they're free. (The online list of available extensions 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.)

This extensibility is one of many reasons why I greatly prefer Moneydance to Quicken. Caveat: this is not a formal review, because I've never done a head-to-head comparison of the same version of the two packages -- that is, of versions released at about the same time -- but I would be very suprised if doing such a head-to-head comparison were to change my preference.

As for Microsoft Money, it's not available on any platform except Windows. Other than that, I know little about it: I've never used it.

Disclosure: a project I have done some work on, and hope to get back to, is to create another Moneydance extension. I don't expect to make any money from doing this (at least, not directly ... ); you decide whether this involvement with the product nevertheless makes me "biased" in evaluating the merits of Moneydance versus its competitors.

I don't speak Marketing: it's not my style to drown you in superlatives. In my judgment, though, Moneydance is the best personal finance program now available. I'd say that's true for most users, and most especially for Macintosh users.

Categorie(s) for this post: Personal Finance Software.



10:58:25 AM    comment []

Saturday, August 26, 2006
 


So what am I doing with myself, since I "retired"?

I consider myself to have two "callings": software developer, and writer.

Let me talk about the former for a bit, now.

At the moment, at least, I'd say that my three favorite programming languages are Perl, Scheme, and Java.   (I wonder how many people there are who would pick those three. I suspect -- but not confidently -- that the answer would be "not many", because they're all so different from each other. )

Perl is the language I've worked in the most, over the last several years (which is to say, over the greater part of my time at SAS). 

At any rate.  My "focal project" at the moment is implementing a flexible backup utility as a Perl module.  "As a Perl module" 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.  But for those who know how to do that, it gives them a great deal of control over how the backups are done. 

I'm writing this mostly because I want it.  But I do intend, also, to submit it to CPAN (the Comprehensive Perl Archive Network), once it's done.

Categorie(s) for this post include: Retirement; Perl; Backup software.


2:00:26 PM    comment []


Click here to visit the Radio UserLand website. © Copyright 2007 Tom Edelson.
Last update: 5/21/07; 4:27:46 PM.
May 2007
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Apr   Jun