Re: Lisp for enterprise computing?



Raffael Cavallaro wrote:

how many average java programmers even know what closures are? or what memoization is? (I had one tell my I had made a typo - he thought I was trying to write "memorization") or a general condition system (not just execeptions)? or a metaobject protocol?

Well, I'm going to cheat a little bit and broaden the choices of the languages to use in the comparison. Perl has lexical closures and dynamic scoping, similar to Lisp's special variables. I could be wrong, but I think that Java's anonymous inner classes gives something of the flavor of closures, albeit with far less taste to it. Java has some sense of reflection to it, though not something as far reaching as the MOP. Of course, I haven't used Java in a little over five years, so they may have added something. One can even find discussions of multiple dispatch, and some kind of attempt at implementing it, in more than one popular C++ book. And Lisp isn't even the only homoiconic (every time I see that word it makes me think it should be referring to someone who is a legend in the gay community) language. Of course, Prolog is probably a poor choice to use as a comparison if one is trying to make a sales pitch for Lisp being a good blue collar language.

And one definitely doesn't have to learn everything all at once. One can use CLOS without even knowing about the MOP or know about the MOP without ever using it. One can use the pretty printer without knowing anything about writing one's own dispatch functions for it. I was personally using ERROR and HANDLER-CASE in much the same way that the "average" Java or C++ programmer would use try/catch before I copped onto restarts and the more general power of Lisp conditions. I think that many people are unnecessarily scared off of Lisp because it has this reputation for being so exotic. It *is* different but it's not *that* different. Personally, I really like the approach of something like _Practical Common Lisp_ in that it just starts introducing language features in a context of using them to solve problems.

years of experience won't necessarily teach you what these things are - you need to learn certain abstract concepts and the propensity and ability to learn such abstract concepts are marks of intelligence.

Well, I don't think that any one language can lay claim to any of these traits. In fact, there are probably quite a few people running around using abstract concepts who've never written a program in any language.
.



Relevant Pages

  • Re: Lisp & DSL
    ... no need to a code generation framework: its there with the language. ... Lisp, but part of the language. ... So I can define my little language with MOP and use macros to make them ... concrete example a DocumentDef would be a class in the definition layer ...
    (comp.lang.lisp)
  • Re: ILC2005: McCarthy denounces Common Lisp, "Lisp", XML, and Rahul
    ... >> the language should be available to users. ... In the design of Common Lisp, I asked Dave Moon (one of the architects ... Now, there are good kinds of low-level, like the way that floats are ...
    (comp.lang.lisp)
  • Re: CollabRx seeks brilliant engineers for an excellent e-science adventure
    ... belief that lisp programmers are smarter/better. ... Java or PHP programmers. ... a type of language that attracts a personality that meets my perceptions ...
    (comp.lang.lisp)
  • Re: Whats the best language to learn...
    ... on processors designed to run Lisp and Lisp OSes. ... byte-addressed memory, has native support for variable-sized value types, ... popular OO language, rather a language about like that of Delphi would have ... lisp, java, ruby, etc. ...
    (comp.programming)
  • Re: Program compression
    ... TM> supported by your favorite language (LISP) are good concepts. ... then call the Java compiler to compile that source file to a Class ... TM-STC> Since static type checking makes run-time type checks unnecessary, ...
    (comp.programming)