Other Languages – Ack! Pfft!
Posted: June 3rd, 2005 | Author: admin | Filed under: Programming | View CommentsEmbarked 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?