Talking with Ev and Angus the other day about language preferences made me realize that I'm completely ruined for Boring Professional Programming now. (Boring as in Corba-style boring. Coding Blogger has been anything but boring) I've long had enough of the crappy languages that booksellers and marketing professionals for big tech companies (*cough*Sun*cough*) try to shove down my throat. I have really particular tastes for my programming environments and I feel those tastes are grounded in the silly belief that I want my progamming environment to be efficient, follow simple rules, and be easy to write tools to generate code for. I want Objects, dynamically typed with an Interpreter that has a good source-level debugger, a decent web environment, ties to BerkeleyDB, a good regex library and good socket niceities (just being able to use a wrapper around libnet would be Good Enough). Java doesn't cut it because it's statically typed and can't be run in an interpreter. I don't want to use CLOS (Common Lisp Object System) because I can't seem to find a fast web environment with an active developer community (I'm sure jjwiseman will prove me wrong there if I am), Scheme has no Object system I've liked (I'm sure dnm will prove me wrong if I am), I don't want to use Objective-C because there's no open-source equivalent to WebObjects (sort of like Servlets for ObjC) and you can't run it in an interpreter. One day (soonish) E will be good enough for frequent use but it's never been meant as a web development environment and I don't know how well it will fit into such a worldview. C++ is just plain out of the question. It's too bad Rebol still has a closed runtime. I suppose the only answer becomes Python even though Zope's complexity worries me and writing program generators for Python is a pain with it's enforced whitespace rules. Well, there is still one possibility: Finish Thespia.
Oh, I've never mentioned Thespia here before. It's my Actors-child dynamically-typed prototype-based oo language with method update, event-loop concurrency, and a few other novel things tossed in for good luck. The runtime is being hacked together in ObjC, and it would be coming along much more quickly if I could find a Lex/Yacc that fit into ObjC better. More to the point: I have this belief that if a project puts more than two hard research problems on your plate, then it will fail. Writing my own language, a web environment, then something on top of that would violate that rule.
Switching gears here, I'm enjoying the fact that I work for a company with a really novel idea: Sell something for more than it cost you to make it. Pragmatism. It's what's for dinner.
Stacy is getting ready to move into her new place, mere dozens of blocks from here! She's really excited and so am I. It's not that we lived so far away from each other before, but now we'll both be in the Richmond.
Listening to some Rancid I'm reminded of a strangely realistic dream I had last night where my pal (soon to be married!) Ray and I were touring canada in a little punk band from the back of an old busvan. I sometimes think that dreams are parallel universes bleeding together.
Alright, I'm off to study more about proofs writing. Besides DiffEq, it's probably where my maths knowledge is weakest right now.
# — 30 June, 2002