Okay, so I'm an idiot. In my thrashing about trying to find a compromise between availability and usefulness in languages for Blister, I completely forgot about C++, which will save me a lot of time writing string and memory handling code.
In my own defense, here is the order of languages I considered:
- Common Lisp (clisp, specifically)
- Scheme (gauche or guile)
- ML (O'Caml)
- Objective C (using the Foundation framework)
- Objective C (using frameworks of my own creation)
I should have considered C++ before C -- after all, I don't know of one non-embedded platform that lacks a C++ compiler. I do have a known fetish for complexity (it's often what keeps me interested in a project), but writing a lot of unnecessary code that has already been written by other (much smarter) people is just pointless.
Not to mention that the object-oriented nature of C++ fits the problem domain much better (keeping track of plants and collections of plants).