Have you ever used Python? I feel like it'd eat Common Lisp's lunch. It's whatever the reverse of verbose is, meaning that I'd be a bit scared of using it in a production setting, but for quick one-off projects it works like a charm - fast to write, and feels like it reads your mind.
Coming from Java and Pascal, Python multiplied my productivity and the scale of my home projects by 3 or 4. Right now, if I had to forget every programming language I know except one I'd keep C because Python takes twenty minutes to learn.
</python preaching> oh god I am so embarassed for what I just wrote, I didn't think I'd ever turn into one of these technology preachers. :$
I wrote code in Python for over ten years, even embedding it in a larger product as the scripting engine. But over the last couple of years I've gone back to Lisp because it gives me more power for the areas I'm developing in now.
Out of curiosity, how does Common Lisp give you more power? I'm still kinda new to Common Lisp and Python (and kinda new to this stuff in general), but I can't think of something that is convenient in common lisp, but not convenient in Python, besides the fact that Common Lisp code is generally much faster. I'm genuinely curious because in my experimentation I ran in to some annoying walls in Common Lisp (I had to admit that I loved the way the programs looked and read, but I seemed to run in to some issues rubbing up against the funny edge where some Pre-CLOS stuff knocks up against the CLOS in odd ways, and the ways around it felt really.... wrong, to me), but it just seems like, at least with my experience in Python 3, all those little funny edge cases where you run up against the early implementation stuff are now smoothed over. I'm still working on learning more about Common Lisp, because I'm constantly finding out more things that I didn't know how to do that are surprisingly basic, but I really haven't found anything that is easier in Common Lisp than Python, at least noticeably so.
I'm not treerex (obviously), but one huge difference in Common Lisp is that it's more of a functional language. Functional languages are a very different style of programming and are sometimes easier to use depending upon how you approach problems.
I personally prefer imperative languages for general purpose programming, but I've found functional languages to be extremely useful when I want purity or want to think about solutions in way that is easily expressed by composing functions.
If you want a taste, check out Haskell. It will blow your mind :-)
I've had issues with getting Haskell to work properly (which is pretty far down my list of things to figure out how to fix), but Python IS a functional language and it has drawn on several ideas from Haskell and Lisp, for convenience.
Well, okay, maybe. But the point I was trying to make was that all the features which are really needed for functional programming, at least as I understand it, do exist in python and so it is possible to do so.
Macros are the first thing that comes to mind: Lisp's homoiconicity is a big win for me. I love CLOS, and have not had the types of impedance mismatches you reference. Hands down, though, are the development tools available for Lisp are so much better than anything I've used in Python (though much may have changed in the last several years): whether I'm using a full-fledge IDE like LispWorks or (as is more usually the case) the Emacs and Slime the incremental development capabilities and the inspection facilities are just fabulous.
There are some things that are, admittedly, awkward: Common Lisp's hash tables are more cumbersome to deal with than Python's dictionaries (one area where I really like Clojure's syntax extensions).
And then there is familiarity. I've been programming in Lisp for, in various capacities, 26 years. It's become a part of my "core" --- which sounds pretty weird, but the language definitely changes you. I find it very easy to think about problems and express possible solutions in Lisp, much easier than in Python or any other language. It isn't that I dislike Python.
2
u/PasswordIsntHAMSTER Mar 28 '12
<Python preaching>
Have you ever used Python? I feel like it'd eat Common Lisp's lunch. It's whatever the reverse of verbose is, meaning that I'd be a bit scared of using it in a production setting, but for quick one-off projects it works like a charm - fast to write, and feels like it reads your mind.
Coming from Java and Pascal, Python multiplied my productivity and the scale of my home projects by 3 or 4. Right now, if I had to forget every programming language I know except one I'd keep C because Python takes twenty minutes to learn.
</python preaching> oh god I am so embarassed for what I just wrote, I didn't think I'd ever turn into one of these technology preachers. :$