Lisp is a problem

Filed under:Random — posted by jbs on August 10, 2004 @ 4:33 pm

I’ve got a problem.

It’s LISP. I do nearly all my programming in Python, C++, and OCaml (In that order) and I do some work with genetic algorithms that is somewhat painful to do in C++ [1] but easy to do in Python and Fast when run in OCaml (and now that I’ve learned how to use ocamllex/ocamllyacc it’ll be easy to do in OCaml too).

Notice there is no LISP there. And that is the problem. I can use elisp to customize my xemacs sessions but that’s about as far as it gets.

I just ordered “Paradigms of Artificial Intelligence Programming : Case Studies in Common Lisp” by Peter Norvig because his other books are awesome and there is a lot of code (especially in the AI/GA/GP world) in Lisp.

The problem with all of this is that I keep comming back to LISP only to leave it again. Which sucks because I hear all the lisp-heads talking about they only use lisp and it’s so nice and the MOP is great and why would you do anything else.

OK, I confess that I am a language junky, but other languages that I’ve abandoned don’t stick around after I say goodbye. I don’t look for ways to write something in Perl. I don’t say “Oh, Java, how I love thee” and because I’m not a profressional programmer I get the luxery of not being forced to write anything in anything. I don’t have to write code, I like to write code.

OCaml is probably my favorite, but that’s mostly because I have a soft spot in my heard for strange little languages, and OCaml is definately that. But OCaml has more than just cuteness, it’s got real type safety and it’s a static language. It’s also good really cool parsing features that are quite useful for the stuff I do. It also is very, very fast.

C++ is a workhorse. The biggest thing it’s got going for it is Boost and the fact that there is substantial in-house expertiese that lets me get my questions answered.

Python I don’t even have to talk about, python just frickin’ RULES. The problem is, it’s too slow for some things. For example, when I re-wrote some of my GA library in c++ the time to process a given candidate went from > 7 seconds to < 2. Which for a million candidates is a _lot_ of time. Another thing python has going for it is Twisted, which makes writing servers really easy. that’s a good think because for IO bound applications python performs just fine.

Which brings me back to Lisp. Besides Paul Graham what does lisp have that I need? It’s like someone you dated once and you forget why you dumped them but you know that everyone else really liked them so maybe you’ll give them another chance. That’s stupid. Yet I’m doing it. Maybe this time, it’ll be good, and I’ll finally understand why I should be programming in lisp.

3 comments »

  1. I’m sorry, but I think you’re terribly rude and insensitive. Having a lisp is no reason to accuse someone of having a problem. How dare you?
    :)

    Comment by el jefe — August 25, 2004 @ 3:12 pm

  2. You dope, it’s Lisp, not LISP. No capitals.

    And to answer the question at the very end of this long, rambling, silly post, follow this link:

    http://www.gigamonkeys.com/book

    Comment by goom — December 27, 2005 @ 6:35 am

  3. I believe your criticism of Lisp is fair. Is a good language, but it was dumped by the mainstream and right now it doesn’t have standards for:
    - Networking
    - Threads
    - GUI
    - C/C++ bindings
    There are Allegro and LispWorks which are flipping expensive and a program in one of them doesn’t necesarily runs in the other. GNU lisps lacks a lot of things and they’re also not standard. So lispheads go and fix your language. Jump from Common to New Standard Lisp. Yes, prepare a new standard with all the missing stuff, except perhaps the GUI.

    Comment by Archaeopterix — December 27, 2005 @ 9:15 am

Copy link for RSS feed for comments on this post

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)




image: detail of installation by Bronwyn Lace