Other Languages – Ack! Pfft!

Posted: June 3rd, 2005 | Author: admin | Filed under: Programming | View Comments

Embarked on something of a bender over the past 24 hours casting about for another langauge which might speed Daisy development. Since I’ve only a few hours every day to work on Daisy using a more productive langauge seemed like a good idea.

Java is starting to feel constraining because of all the boiler plate code one has to write. I’m using PicoContainer as a rough framework and all writing all the interfaces and impls is getting a bit bothersome. I feel like the facets of Java which make it suitable for “programming in the large” are real detractions for smaller projects.

So. I listed the features and libraries I needed in a language:

* Garbage collection

* Dynamic typing (I mean why move to a langauge like C# if I’m already using Java?)

* Streamlined syntax

* Reasonable HTTP serving facility

* Reasonable XML/HTML parsing/construction facility

* Some manner of text indexing/searching

* Supported on Windows, Linux, and OS X

* WOULD BE REALLY NICE: Compact packaging and delivery on each of the above platforms

I came up with two candidates: Ruby and Common Lisp. And I’m here to say that roughly 28 hours after taking this decision neither one panned out :(

Ruby seemed to be the best choice. It had everything I needed except for text indexing. I looked high and low and couldn’t find anything. There appears to be several ports-in-progress for Lucene but none of these are very far along. I even attempted wielding gcj, gcjh, and swig in anger to bodge together some rudimentary library, but this effort founder on the rocky reef where swig (dis-) integrates with JNI. So, Ruby is out.

Next I tried Common Lisp. Given that I’m still trying to write a commercial application, I wanted a Lisp with friendly licensing terms. Lispworks looked like just the ticket. Try as I might, I could not get Lispworks Personal Edition to even start on my Opteron Ubuntu Hoary workstation. Something about not liking libXm. Mucked about with various config files suggested from a marathon Googling session provided no progress. *sigh*

Doesn’t a language like this exist? One that doesn’t require days of research, package installing and config-tweaking to get working?


Comments are closed.