Monday, July 16, 2007

Lisp and .NET

The Truth about Lisp Why does that link matter? Because I've been thinking about implementing Common Lisp on the CLR and the DLR. When interpreted, it would primarily work with the DLR, but as declare statements are added and the Lisp code becomes more static, it would be able to leverage the CLR directly. At one point, I was thinking about implementing Scheme, but I've moved away from that. When I started learning Common Lisp, I thought that I preferred Scheme. But now I've done a project in Scheme (a simple todo-list manager, similar to todo.txt, and I've decided that I prefer Common Lisp after all. Scheme's still great. I have a nice clean feeling whenever I code in it, but I think I prefer CL's more complete language specification. It's still not really complete enough. (Hello? threads, networking, Hello?) Also, I'm beginning to grok continuations, but I don't have a clue how I'd implement them in .NET. So I'm just not doing that right now. Still, what craziness is this? Well, I've been doing a lot of .NET at work, and I'd like to be able to use a more powerful, sane (for some definition of sane) language. I'd also like to be able to produce assemblies that can be called from C# or whatever. Basically, I want a lisp that is a first-class citizen of the CLR. And I've been wanting to do more Lisp for my personal projects. I'll let you know how it goes. Or I'll put my head between my knees and breath deeply until this latest light-headedness passes.

3 comments:

Claus said...

I'd simply love to have a Common Lisp running on top of the CLR/DLR. A while ago, I researched and listed previous efforts in this direction - there are quite a number of them, see http://www.clausbrod.de/Blog/DefinePrivatePublic20080312DotNetAndLisp.

Claus

Eric Rochester said...

Great list. I'm glad you pointed it out to me.

I wouldn't say that my efforts to port Common Lisp to the CLR are dead, exactly, just not-quite-off-the-ground and in suspended animation.

As you can see from my more recent postings, I've been diverted while playing with Clojure. It's unfortunately not standard, but it does hit a good sweet spot, and it fixes some of CL's warts in a nice way.

When I get this project going more actively, I'll have to let you know, so you can add it to the list of incomplete projects to port CL to the CLR.

Eric

Claus said...

Thanks Eric, please keep me posted.

That said, Clojure running on top of the CLR/DLR is also a very tempting thought.