Which Lisp to Learn?

Discussion in 'Perl Misc' started by Xah Lee, Mar 8, 2009.

  1. Xah Lee

    Xah Lee Guest

    For those of you imperative programers who kept on hearing about lisp
    and is tempted to learn, then, of interest:

    • What Is Your Favorite Lisp
    http://xahlee.org/UnixResource_dir/writ/whats_your_fav_lisp.html

    plain text version follows.
    -------------------------------------

    What Is Your Favorite Lisp

    Xah Lee, 2009-03-04

    Javier wrote: “What open source implementation of Lisp do you prefer
    and why?â€

    My fav is Emacs Lisp.

    Because it is practical. More or less the most widely used lisp today.

    Considered as a tool, it has probably some 10 times more users than
    either Common Lisp or Scheme Lisp.

    For example, i consider emacs lisp, more powerful than Perl, as a text
    processing language, for 2 major reasons: (1) It has buffer datatype
    and associated datatypes such as point, marker, region, etc. Which is
    more powerful than treating text as inert chars and lines, which Perl,
    Python, Ruby, etc do. (2) elisp's integrated nature with emacs. This
    means, for odd text manipulation jobs that happen daily in every
    software coding, i can write text processing programs that interact
    with me while i edit. (See also: Text Processing: Elisp vs Perl.)

    The above paragraph, details why i love emacs lisp. However, it is not
    so much caused by lisp language's nature. I find nothing in particular
    of lisp lang's features of emacs lisp that made me love emacs lisp,
    other than it being a functional language. It is not difficult to have
    another language, or a new editor with a embedded lang that functions
    similar to emacs. However, emacs just happens to be almost the only
    one, or the most prominent one. (i am a expert in Microsoft Word in
    early 1990s, and although i haven't ventured into its Visual Basic,
    but i know it can do scripting. I'm sure, now after almost 20 years,
    and with Microsoft's “.NETâ€, it possibly might compete withemacs with
    its elisp, but i know nothing about it to comment further. (i'd very
    much welcome any comment from someone who are a expert of scripting
    Microsoft Word with Visual Basic; on how it compares to emacs, if at
    all. (if you don't have say 1 year of full-time experience in this,
    please spare me your drivel))) (also, numerous emacs-like editor with
    embedded lang exist. See: Thoughts On Common And Scheme Lisp Based
    Emacs.)

    As to the reason i am not a fan of the 2 other major lisps: Common
    Lisp and Scheme Lisp. These 2, are little used in the industry. Common
    Lisp is a moribund dinosaur. Scheme Lisp is little used and is
    confined to academia. There is nothing in these 2 langs that i
    consider elegant or powerful today. I would, in a blink of a eye,
    consider Mathematica, OCaml, Haskell, more elegant or powerful.

    I would like to see Common Lisp and or Scheme Lisp die a miserable,
    horrid, deaths, due to fanaticism as exhibited by Common Lisp and
    Scheme Lisp regulars in newsgroups. I consider these 2 langs not only
    impractical and inelegant, but their people are the hog of any
    possible progress of lisp in general. (See also: Language, Purity,
    Cult, and Deception.)

    I do consider lisp, or the lisp way, a lang with lisp characteristics,
    can be the most beautiful, elegant language. (in fact, i consider
    Mathematica being one such example) However, given the social milieu
    of the 3 major lisp communities: Common Lisp, Scheme Lisp, Emacs Lisp,
    it might happen when pigs fly.

    ----

    Of the existing lisps, especially new ones, i support NewLisp, and i
    also support Clojure. Personally, i'm not likely to invest time in
    them in the next 5 years, if ever. Second to these, i mildly support
    Qi.

    I am a avid fan of functional programing, and was a big fan of lisp
    too. Lisp, even just 10 years ago, was still a great language, almost
    the only one that are much better than all others, in both practical
    industry use and also academic theoretical considerations. But due to
    the rapid development of software technologies and vast number of lang
    today that happened in the past decade, including a profusion of
    quality functional langs, i see little point in lisp. (See also:
    Proliferation of Computing Languages.)

    -----------------------------------
    2009-02-06

    Water Lin wrote:

    I am really confused which kind of Lisp I should focus on...

    Rainer Joswig wrote:

    Common Lisp is fine. Get a copy of the book Practical Common
    Lisp ...

    Emacs is a simple Lisp dialect for Emacs scripting. It is behind
    the times in many ways.

    Scheme: Typically one can start with DrScheme and one of the
    Scheme books. But I would prefer Common Lisp .

    Note that Rainer is a Common Lisp fanatic. He's been posting regularly
    in comp.lang.lisp since at least 1999, and it seems to me he does not
    know any other functional lang other than common lisp, but always
    trumpet Common Lisp in every aspect, and is often aggressive in his
    online behavior that you can often see he fight with other lispers
    too. I think he's retired in his 50s or older. Much regular posters in
    comp.lang.lisp are old. (majority would be above 40 i think. (I'm 40
    myself.))

    If emacs lisp is behind the times in many ways, which is true, Common
    Lisp is also behind the times in many ways.

    If you really want to compare lisps in the context of computer langs,
    lisps in my opinion is pretty much obsolete. I'd recommend JavaScript,
    Ruby, Ocaml, Mathematica, over any lisp. I think that each of the lang
    above are superior with respect to the tech aspect. Also, each of the
    lang mentioned above has perhaps 10 times more programers than all
    lisps combined. (In the case of javascript, it's few tens of thousand
    times)

    You can start with some basic tutorial here:

    * Emacs Lisp Basics
    * OCaml Basics
    * JavaScript Basics

    See also:

    * Will Lisp Ever Be Popular?
    * Proliferation of Computing Languages

    -----------------------------------
    2009-02-06

    Xah Lee wrote:

    If emacs lisp is behind the times in many ways, which is true,
    Common Lisp is also behind the times in many ways.

    Rainer Joswig wrote:

    How would you know? You never have read a book or manual about
    Common Lisp or one of its implementations.

    Emacs Lisp

    * + dynamic scope
    * + eval
    * + simple compiler
    * + simple data structures

    * - no objects
    * - no lexical binding
    * - primitive compiler
    * - mostly only available with Emacs
    * - no threading
    * - never modernized
    * - no continuations

    Common Lisp

    * + dynamic scope
    * + lexical scope
    * + eval
    * + compile
    * + objects (Common Lisp Object System)
    * + sophisticated compilers available
    * + threading with multicore-support available
    * + can be used for scripting (CLISP)
    * + can be used to write applications
    * + several independent implementations

    * - oldish standard
    * - continuations only partially via libaries

    If you look around all educational resources (books,
    implementations) are around Scheme and Common Lisp. Emacs Lisp is
    mostly NOT used in schools or universities. The universities and
    schools that teach introductions to programming or computer science
    using some Lisp dialect are using mostly Scheme (some are using Logo).
    Universities are sometimes offering Common Lisp courses.

    I fully agree with what you wrote above.

    However, to put things in proper context, if the question we are
    asking is which lang to choose among lisp for a imperative programer,
    i think emacs lisp can easily be the right choice, for one simple
    reason: pracitcal utility.

    You see, to a professional programer, who is studying lisp to learn
    some new language concept and aspects, elisp is of the most ulility
    because:

    * A: it has immediate practical utility. Most lispers use emacs
    and swear by emacs for its multitude of uses and extensibility, even
    if they program only in Common Lisp or Scheme Lisp.

    * B: emacs lisp, although technically is useful just within emacs
    and text processing, however, contain almost all the essential
    features and qualities of lisp that are not in imperative langs.
    Namely, nested paren syntax, symbols, lisp macros, functional
    programing.

    Put in other words: if a industrial programer coming from C, Java,
    Perl, etc imperative or static langs want to learn lisp's concepts, he
    can learn basically all of it with the very simple and useful emacs
    lisp. If he is so hooked, he can then trivially extend his knowledge
    and start to learn one of Scheme lisp or Common lisp and start to
    write whatever real software he had in mind in these langs.

    This is why, i recommend emacs lisp, among the 3 major lisps, for
    imperative programers who want to venture into lisp.

    (for those unaware, there are also NewLisp, Clojure, Arc. Their number
    of users, and age of the lang, are roughly in that order given too.)

    Now, if a imperative coder is wondering which lang he should learn
    outside of his meager C, C++, Java, Perl, type of imperative langs,
    for the purpose of enriching his knowledge in comp langs in some
    academic sense, then, i do not even recommend lisp in particular. I
    would easily recommend: OCaml, Mathematica, over any lisp.

    All of us are busy, and all of us geeks always have aspiration to
    learn new langs, but not always follow thru. If a imperative programer
    tried to learn lisp for half a year in his spare time, then, whatever
    he has learned with emacs lisp remains quite useful in his programing
    career. If he kept on using emacs, his lisp knowledge will simply
    grow. But whatever he learned in Common or Scheme lisp would rather
    find no where to go and be forgotten.

    Xah
    ∑ http://xahlee.org/

    ☄
     
    Xah Lee, Mar 8, 2009
    #1
    1. Advertising

  2. Xah Lee wrote:
    > For those of you imperative programers who kept on hearing about lisp
    > and is tempted to learn, then, ...


    You:
    * consider yourself unfairly treated by various communities
    * post a long drivel about various Lisp flavors to newsgroups
    that are not in any way Lisp related
    ?

    There seems to be a disconnect somewhere.

    Arne
     
    Arne Vajhøj, Mar 8, 2009
    #2
    1. Advertising

  3. Arne Vajhøj wrote:
    > Xah Lee wrote:
    >> For those of you imperative programers who kept on hearing about lisp
    >> and is tempted to learn, then, ...

    >
    > You:
    > * consider yourself unfairly treated by various communities
    > * post a long drivel about various Lisp flavors to newsgroups
    > that are not in any way Lisp related
    > ?
    >
    > There seems to be a disconnect somewhere.
    >
    > Arne


    Hey Arne - like he even knows what LISP is... ;)
     
    Michael Austin, Mar 9, 2009
    #3
  4. Xah Lee

    Tim Greer Guest

    Michael Austin wrote:

    > Arne Vajhøj wrote:
    >> Xah Lee wrote:
    >>> For those of you imperative programers who kept on hearing about
    >>> lisp and is tempted to learn, then, ...

    >>
    >> You:
    >> * consider yourself unfairly treated by various communities
    >> * post a long drivel about various Lisp flavors to newsgroups
    >> that are not in any way Lisp related
    >> ?
    >>
    >> There seems to be a disconnect somewhere.
    >>
    >> Arne

    >
    > Hey Arne - like he even knows what LISP is... ;)


    I've not paid any attention to most of his posts, but I'd sure like to
    know what crazy thing this guy is taking to believe that a his personal
    feelings and post about lisp has any relation to groups I see this
    nonsense in. So, I'm not shocked to learn people question his lisp
    skills anyway (he sure doesn't seem to know much about Perl or Python
    and he posts a lisp post to these groups? Sounds like he indeed
    doesn't know what LISP is).
    --
    Tim Greer, CEO/Founder/CTO, BurlyHost.com, Inc.
    Shared Hosting, Reseller Hosting, Dedicated & Semi-Dedicated servers
    and Custom Hosting. 24/7 support, 30 day guarantee, secure servers.
    Industry's most experienced staff! -- Web Hosting With Muscle!
     
    Tim Greer, Mar 9, 2009
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. ekzept
    Replies:
    0
    Views:
    399
    ekzept
    Aug 10, 2007
  2. Xah Lee

    Which Lisp to Learn?

    Xah Lee, Mar 8, 2009, in forum: Java
    Replies:
    3
    Views:
    331
    Tim Greer
    Mar 9, 2009
  3. Xah Lee

    Which Lisp to Learn?

    Xah Lee, Mar 8, 2009, in forum: Python
    Replies:
    3
    Views:
    231
    Tim Greer
    Mar 9, 2009
  4. nanothermite911fbibustards
    Replies:
    0
    Views:
    403
    nanothermite911fbibustards
    Jun 16, 2010
  5. nanothermite911fbibustards
    Replies:
    0
    Views:
    346
    nanothermite911fbibustards
    Jun 16, 2010
Loading...

Share This Page