That is your counterargument to a five hundred page book of programming examples carefully selected as exemplars of typical real-world programming?
Thank god you posted anonymously. (Someone had to say it.)
1. Lisp is extensible. Long story. Check out Graham, esp. his "On Lisp". In brief, when working on a large app you can make it look as if Lisp is a language designed for your problem domain.
2. Lisp is dynamic, does not grind you down with static typing. This is the direction you are headed anyway with Python, Groovy, Perl, et al, but Lisp is the ideal to which these languages are evolving. Save yourself two years and learn Lisp now.
3. CLOS, the object system to die for
(over flow condition)
4. mature, ANSI-standardized. Why wait for Groovy, Perl, and Python to stop changing?
5. native-compiled: fast, efficient
6. the parentheses! They allow you to edit (cut, copy, paste, delete) in meaningful chunks, not lines and characters. They also make possible automatic indentation, a very nice win if you think about it.
7. FFIs let you talk to C if you need library support.
And those are just the highlights.
kenny
Been there, done that. (Multiple years, 12x7, goldquest.) It is way too much fun to be called work. Granted, Paul did make it sound like work, but... what is the noun for "enervating"?
I am just surprised he went to bed so early (2-3am) and had the discipline to exercise regularly.
First, if you are put off by Lispers, I am put off that apparently I am a bad person for considering CL to be without peer. Anyway, why I like Lisp: macros, GC, generic methods, fast, uniform syntax, auto-formatting editors, manipulating code easily thx to the parens!, large number of built-in functions, the meta-object protocol, and my new favorite, special variables which I did not even understand for five years. oh yeah, destructuring-bind, the ability to return multiple values, the OO condition system... kenny, clinisys
Not to quibble, but Lisp/is/ easy to learn. OTOH, there is a lot to learn. The upshot is one can quickly learn to do the easy stuff, but then you just keep on learning and learning more and more good stuff.
I admit one trick I had to develop was to check to see if some functionality I wanted was already supplied by some built-in function.
I say Lisp is easy to learn for two reasons. First, there is one syntax: (function arg arg...)
Second, you can just execute snippets of code interactively to find out what unfamiliar functions do. No compile-link-run.
kenny
clinisys
You are right, both are helpful in that they identify gaffes ASAP. But we happy dynamic campers don't like the inflexibility cost of static typing.
And because we be in the dynamic camp, when we land in the debugger because of a type goof we can fix the offending code, recompile, return to the debugger and resume execution from some stack frame above or at the bug.
hellasweet:)
kenny
clinisys
"One judges productivity by familiarity"
If for the sake of argument an unfamiliar language once mastered makes one much more productive, then one should overcome the unfamiliarity, not carry on with inferior tools.
So the question reverts to how powerful is Lisp, not how many batch COBOL programmers are out there.
FWIW: http://www.artima.com/weblogs/viewpost.jsp?thread= 4639
That is your counterargument to a five hundred page book of programming examples carefully selected as exemplars of typical real-world programming? Thank god you posted anonymously. (Someone had to say it.)
1. Lisp is extensible. Long story. Check out Graham, esp. his "On Lisp". In brief, when working on a large app you can make it look as if Lisp is a language designed for your problem domain. 2. Lisp is dynamic, does not grind you down with static typing. This is the direction you are headed anyway with Python, Groovy, Perl, et al, but Lisp is the ideal to which these languages are evolving. Save yourself two years and learn Lisp now. 3. CLOS, the object system to die for (over flow condition) 4. mature, ANSI-standardized. Why wait for Groovy, Perl, and Python to stop changing? 5. native-compiled: fast, efficient 6. the parentheses! They allow you to edit (cut, copy, paste, delete) in meaningful chunks, not lines and characters. They also make possible automatic indentation, a very nice win if you think about it. 7. FFIs let you talk to C if you need library support. And those are just the highlights. kenny
Been there, done that. (Multiple years, 12x7, goldquest.) It is way too much fun to be called work. Granted, Paul did make it sound like work, but... what is the noun for "enervating"? I am just surprised he went to bed so early (2-3am) and had the discipline to exercise regularly.
First, if you are put off by Lispers, I am put off that apparently I am a bad person for considering CL to be without peer. Anyway, why I like Lisp: macros, GC, generic methods, fast, uniform syntax, auto-formatting editors, manipulating code easily thx to the parens!, large number of built-in functions, the meta-object protocol, and my new favorite, special variables which I did not even understand for five years. oh yeah, destructuring-bind, the ability to return multiple values, the OO condition system... kenny, clinisys
Not to quibble, but Lisp /is/ easy to learn. OTOH, there is a lot to learn. The upshot is one can quickly learn to do the easy stuff, but then you just keep on learning and learning more and more good stuff.
I admit one trick I had to develop was to check to see if some functionality I wanted was already supplied by some built-in function.
I say Lisp is easy to learn for two reasons. First, there is one syntax: (function arg arg...)
Second, you can just execute snippets of code interactively to find out what unfamiliar functions do. No compile-link-run.
kenny
clinisys
You are right, both are helpful in that they identify gaffes ASAP. But we happy dynamic campers don't like the inflexibility cost of static typing. And because we be in the dynamic camp, when we land in the debugger because of a type goof we can fix the offending code, recompile, return to the debugger and resume execution from some stack frame above or at the bug. hellasweet :)
kenny
clinisys
"One judges productivity by familiarity" If for the sake of argument an unfamiliar language once mastered makes one much more productive, then one should overcome the unfamiliarity, not carry on with inferior tools. So the question reverts to how powerful is Lisp, not how many batch COBOL programmers are out there.