Hacker News new | ask | show | jobs
by funcall 5866 days ago
"LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot." -- Eric Raymond (How to become a Hacker).

I wonder what percentage of people who "get Lisp" manage to stay happy working in other languages.

5 comments

It may sound trite, but it's true: it all depends on how you define "happy". I'm happy coding in Java, C#, C++, Python and ActionScript 3, to name a few. I was happy to code in Lisp and plain old vanilla C, too. My happiness with programming doesn't depend entirely on the language. I can honestly say that going back to more "mainstream" languages after coding in Lisp has made me even happier, because I had new ways of doing stuff that wouldn't have occurred to me before.

I often run into stuff I can't do in one language that I could do in another. The challenge this poses can be (and often is) frustrating, but it can also be fun: how can I do XYZ as expressively and elegantly as possible in language ABC?

It's the kind of work I do that makes me happy or unhappy, and the freedom I have in it.

"Old LISPer that I am, I also looked at various current dialects of Lisp and Scheme—but, as is historically usual for Lisp, lots of clever design was rendered almost useless by scanty or nonexistent documentation, incomplete access to POSIX/UNIX facilities, and a small but nevertheless deeply fragmented user community. Perl's popularity is not an accident; most of its competitors are either worse than Perl for large projects or somehow nowhere near as useful as their theoretically superior designs ought to make them."

-- Eric Raymond (Why Python? - http://www.linuxjournal.com/article/3882)

Raymond himself is very happily not using Lisp.

That's an article from May 01, 2000. That's 10 years ago.

The situation of Lisp in that timeframe has improved by leaps and bounds. Much better documentation, many more libraries, less community fragmentation (SBCL has become the clearly-best-supported implementation), better OS integration, new exciting stuff like Clojure, etc.

Well a lot i would say.

Peter norvig for starters ? I would say me if i mattered ;)

I'll accept your own experience, and am happy for you. As for how Mr. Norvig's coping -- let's wait for him to post his own.

I could see a language designer (say someone like Guy Steele) who has made major contributions in Lisp happily moving on to his or her next research interest, pursuing a completely new design. Those of us stuck in the "real world" of trying to make a living with our software skills are a different matter.

In my experience, once having worked with Lisp I found it extremely difficult to switch to programming in Java. I spent a lot of time trying to make Java look like Lisp, which in my opinion made my code more readable, but to other programmers I worked with - not so much. My point is, Lisp can be a mind altering experience, much like LSD (I suppose). Some have the ability to compartmentalize the experience and move on with other pursuits and some are forever hooked on the "forbitten" fruit.

I think it depends on your trajectory. I did BASIC then 6502 assembly language then C. Then a few other languages before spending considerable time in Lisp/Scheme, and then Haskell.

Much like the author of the posting, I find some elegance in Lisp, but I've never been comfortable with it. While I can code anything I've ever felt the need to do with it, it would rarely be my first choice language. And especially with respect to performance -- I find myself having to spend a lot more time at the whiteboard ensuring that what I'm doing isn't too computationally expensive with Lisp. I just don't have nearly the same sense of cost with it.

Agreed with your last point. I have read about people who loved Lisp so much, that they wrote Lisp to write programs in other languages for them. Two cases: * http://www.merl.com/papers/TR93-17/ (Lisp to Pascal) * Erik Naggum told of his dissatisfaction with C++, and wrote Lisp to do his job for him.

Well, the first is more of a demo, actually.

Here's one anecdote of my own experience. Learning LISP (and Haskell, and Smalltalk) has given me even more appreciation for computer science, for the theory and universe of knowledge that lies underneath the surface of programming.

And as for my day job in C++? Well, I prototype in Python for a couple hours, then spend a week translating it to C++. My boss doesn't understand the whole languages thing, but he's happy when I get a 2 wk job done in one.

As for my feelings? Well, I keep reminding myself that I get to move from project to project faster. And that's fun.

In my own experience im really happy with clojure and common lisp, and im also happy with python, until one of its quirks that i have to remember comes after me and bites my ass, anything else seems either tolerable or unbearable. But thats just me, both common lisp and clojure have the capacity to drive me nuts, but it seems to happen a lot less often.