Reasons To Admire Lisp (part 1) (16 Apr 2009)

Most of the time, when I tell people that I like and admire Lisp, they'll give me some pretty weird looks, and then they'll ignore me for the rest of their lives.

Well, after all those years, I'm usually not hurt anymore. Not only because I'm a stubborn old fart, but mostly because in the past few years there has been a huge surge of interest in functional and dynamic languages - and so everybody and their sister already programs in a Lisp-like language (only without knowing it), or at least in a language whose designers adopted very significant amounts of Lispy concepts. Examples: C#, JavaScript, Ruby, Python, Scheme, Groovy, Perl, Smalltalk, Java - and, in fact, pretty much any language running on top of the CLR or JVM.

Anyway - being an old fart, my memory doesn't serve me as well as it used to, hence my bias towards simple concepts and simple solutions which are easy to memorize. For example, a compelling reason to fall in love with Lisp is its syntactical simplicity.

Lisp probably has the easiest syntax of all programming languages. Want proof? Some good soul over at reddit linked to a reference to BNF graphs for various languages today. Lisp's BNF looks like this:

s_expression = atomic_symbol / "(" s_expression "."s_expression ")" / list 

list = "(" s_expression < s_expression > ")"

atomic_symbol = letter atom_part

atom_part = empty / letter atom_part / number atom_part

letter = "a" / "b" / " ..." / "z"

number = "1" / "2" / " ..." / "9"

empty = " "

Compare the above to, say, Java. (And yes, the description above doesn't tell the whole story since it doesn't cover any kind of semantic aspects. So sue me.)

And while we're at it: Lisp Syntax Doesn't Suck, says Brian Carper, and who am I to disagree.

So there.



When asked for a TWiki account, use your own or the default TWikiGuest account.


Revision: r1.1 - 16 Apr 2009 - 20:33 - ClausBrod
Blog > DefinePrivatePublic20090416WhyIAdmireLisp
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback