Edit
Attach
Printable
topic end
<!-- * Set TOPICTITLE = #define private public - Claus Brod on stuff (16 Apr 2009) --> <style type="text/css"> pre {background-color:#ffeecc;} </style> %STARTINCLUDE% <a name="16"></a> ---+++ [[DefinePrivatePublic20090416WhyIAdmireLisp][Reasons To Admire Lisp (part 1)]] (16 Apr 2009) <img src="%ATTACHURLPATH%/sponge.png" alt="sponge.png" width="200" height="150" style="float:right;" /> <summary> When I tell people that I like and admire Lisp, they will typically roll their eyes and/or give me some pretty weird looks - and then they'll ignore me for the rest of their lives. </summary> Well, after all those years, I'm usually not hurt anymore. Instead, I just giggle to myself like the proverbial mad scientist. You see, in the past few years there has been such a _huge_ surge of interest in functional and dynamic languages that everybody and their sister _already_ programs in a Lisp-like language, only without knowing it. Or, at the very least, they use a language or programming environment whose designers adopted very significant amounts of Lispy concepts. Examples: C#, <nop>JavaScript, Ruby, Python, Scheme, Groovy, Perl, Smalltalk, Java - and, in fact, pretty much _any_ language running on top of the CLR or JVM. (Heck, even C++ programmers will [[http://en.wikipedia.org/wiki/C%2B%2B0x][soon learn lambdas and closures]]...) 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 starters, a compelling reason to fall in love with Lisp is its _syntactical_ simplicity. Lisp probably has the easiest syntax of all programming languages, maybe with the exception of Forth-like languages. Want proof? This morning, a good soul over at [[http://www.reddit.com/r/programming][reddit]] pointed me to results of the University of Geneva's <nop>HyperGOS project: A comparison of BNF graphs for various languages. Lisp's [[http://www.cui.unige.ch/db-research/Enseignement/analyseinfo/LISP/BNFlisp.html][BNF]] looks like this: <pre> 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 = " " </pre> Now compare the above to, say, [[http://www.cui.unige.ch/db-research/Enseignement/analyseinfo/JAVA/BNFindex.html][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.) Oh, and while we're at it: [[http://briancarper.net/blog/lisp-syntax-doesnt-suck][Lisp Syntax Doesn't Suck]], says Brian Carper, and who am I to disagree. So there. <!-- http://www.paulgraham.com/rootsoflisp.html --> --- %STOPINCLUDE% %COMMENT{type="below" nonotify="on"}% --- I know the feeling very well, many programmers have just a few bad memories of the weird AI language that used recursion for everything and that they learned on pen and paper together with prolog and tons of complicated algorithms. Little nitpicking, in your example languages you mention scheme which is a member of Lisp family of languages. -- Slobodan Blazeski - 22 Sep 2009 You're right, of course - Scheme is a Lisp, not just a language inspired by Lisp. (Had I spelt it LISP, then it'd be the language invented in the 50s, therefore being a forerunner of Scheme, whereas "Lisp" is ambiguous.) -- Main.ClausBrod - 22 Sep 2009 ---
to top
End of topic
Skip to action links
|
Back to top
Edit
|
Attach image or document
|
Printable version
|
Raw text
|
Refresh
|
More topic actions
Revisions: | r1.3 |
>
|
r1.2
|
>
|
r1.1
|
Total page history
|
Backlinks
You are here:
Blog
>
DefinePrivatePublic20090416WhyIAdmireLisp
r1.3 - 22 Sep 2009 - 16:37 -
ClausBrod
to top
Blog
This site
2017
:
12
-
11
-
10
2016
:
10
-
7
-
3
2015
:
11
-
10
-
9
-
4
-
1
2014
:
5
2013
:
9
-
8
-
7
-
6
-
5
2012
:
2
-
10
2011
:
1
-
8
-
9
-
10
-
12
2010
:
11
-
10
-
9
-
4
2009
:
11
-
9
-
8
-
7
-
6
-
5
-
4
-
3
2008
:
5
-
4
-
3
-
1
2007:
12
-
8
-
7
-
6
-
5
-
4
-
3
-
1
2006:
4
-
3
-
2
-
1
2005:
12
-
6
-
5
-
4
2004:
12
-
11
-
10
C++
CoCreate Modeling
COM & .NET
Java
Mac
Lisp
OpenSource
Scripting
Windows
Stuff
Changes
Index
Search
Maintenance
Impressum
Datenschutzerklärung
Home
Webs
Atari
Blog
Claus
CoCreateModeling
Klassentreffen
Main
Sandbox
Sommelier
TWiki
Xplm
Jump:
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