Hacker News new | past | comments | ask | show | jobs | submit login
What the non-Lisper sees (imageshack.us)
8 points by nickb on July 20, 2007 | hide | past | favorite | 6 comments



Oh, I think I just understood this phenomenon. In C/Java/etc. if you see more than two levels of nested parens you know at a glance that it's code that's hard to follow. No wonder people's alarm bells go off when they see Lisp. If they could just relax and learn it, they would find it isn't so hard.


There's an interesting observation in "On Lisp" regarding the shape of programs written in different styles, along those lines. Imperative programs tend to have a fairly straight and vertical left margin, programs in a functional style usually slope in (for lack of a better description; that's not the actual quote which from memory says "blocky" and "fluid" instead).


I first learned lisp in college, and learned prefix notation and about the REPL before seeing any lisp programs. I never had the opportunity to be scared by all the parens. Honestly as a non-lisper the things that were most intimidating to me when looking at a chunk of lisp?

1. Nonstandard ways of doing things that are common in other languages, "setq" sticks out in particular.

2. Functions with lots of cars and cdrs but not much else.

3. Control structures. I didn't see conds and ifs very well because of the way they blended in with other functions around them.

4. Anything with lots of macro definitions.

Most of those are still pretty easy to overcome, but in terms of seeing lisp code and thinking "oh god," those were the biggest culprits.


I'm tempted to make a similar graphic with some junit/jmock code in java.


this is accurate! coming from a non-lisper...


I 100% agree. If there is any way to get rid of the parens, Arc should do it. My guess is that smart people have thought of this a lot, and they can't be removed, even with whitespace restrictions like python.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: