Tom Edelson, Software Developer

Links: Tom Edelson's home page; Tom Edelson's blog


I program in Scheme, Perl, and Java.

I'm semi-retired, which means, in part, that from time to time, I am available for some paid work, on a contract or part-time basis.

I retired in mid-2006 from my last full-time job, as a developer at SAS Institute.  While there, I worked on installation programs for SAS software in Unix and VMS environments.  I learned Perl during my seven years at SAS, and it was the primary programming language I used during most of my time with the company.

I've done some Perl work since my retirement, also.  But at present, my first choice, other things being equal, is to program in Scheme.  The Scheme implementation that I primarily use is SISC (Second Implementation of Scheme Code), one of several versions of Scheme that have been written in Java.

Naturally enough, SISC makes use of Java's Reflection API to make it rather easy to call Java methods from your Scheme code.  Among other things, this means that you can use SISC as a "scripting language" or "extension language" for Java applications.  (It's not designed as a scripting langugage to the degree that, say, BeanShell is, but if you like Scheme, then SISC is a perfectly reasonable choice for this purpose.)

In particular, I've been doing a good bit of work on using SISC to script personal finance software, especially Moneydance.

Another (but overlapping) good use for SISC would be the prototyping of new functionality.  This overlaps with using it as an "extension language" if what you are doing is adding new functionality to an existing application, not prototyping an entirely new one.  In either case, though, "prototyping" carries the implication that some or all of the SISC code might be rewritten later in Java, e.g. for performance reasons.

This a category of work I'm planning on getting into, as a natural extension of the scripting tasks I've set myself so far.  I lean towards doing prototyping for desktop (GUI) applications in SISC, more so than "Web applications".

What would be even nicer, and what I might be able to work up to in time, would be the ability to prototype something in Scheme (SISC) and then have the generation of equivalent Java code be at least partly automated -- performed by other Scheme code, of course.


This page created: 2008-07-25