Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Does anyone code with LISP?

Does anyone code with LISP?

Scheduled Pinned Locked Moved The Lounge
comquestionlearning
63 Posts 25 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B bwallan

    Lost In Stupid Parentheses (LISP)... Yes, I did use LISP about 20+ years ago. Didn't know it was still used or even known!?

    J Offline
    J Offline
    JimmyRopes
    wrote on last edited by
    #53

    bwallan wrote:

    Didn't know it was still used or even known!?

    I was reading something written by Alan Kay[^] and he mentioned LISP as being the best computer language. It was probably written many years ago. It got my curiosity up about if it was still used and if it was worth learning.

    The report of my death was an exaggeration - Mark Twain
    Simply Elegant Designs JimmyRopes Designs
    Think inside the box! ProActive Secure Systems
    I'm on-line therefore I am. JimmyRopes

    B 1 Reply Last reply
    0
    • U User 8162794

      After reading through some of the other comments, these things come to mind: 1. I agree, after learning Common Lisp for a few days, I was like "What on earth will I ever use this for?" 2. After spending a couple of days with Clojure, I was like, "Oh man, I wish I could use this to write ALL of my code!" So if you're going to look into it, I can personally recommend Clojure for the following reasons: 1. It's fun (at least in my opinion) 2. It will absolutely change the way you think about programming (even in OO contexts) 3. It's a JVM language, so you can use it along with Java code (or Scala, or Groovy, or ...) 4. You have the functional paradigm (it's a LISP dialect) but you can also do object-oriented things (it runs on the JVM) if that makes sense for the situation. 5. It IS in active use in a number of projects today (though I can't remember them off the top of my head; that's fine, go ahead and call me out for that; or better yet, just google it) 6. It has an active user community. I've always found answers to my questions on Stack Overflow. As for why to learn functional programming in general, I agree with one of the posters who said that it increases his productivity. In my experience, functional programs are easier to reason about. If you can break your entire program down into a set of small functions, you can test each of the functions individually. (If you put in the same arguments you should always get the same result.) If you can determine that each of your smaller functions is logically correct, then it becomes easier to reason that your full program is logically correct. And if your program has fewer bugs, you won't spend as much time debugging. Thinking functionally requires me to think more about what I want to DO, and much less about HOW I want to do it. (I know everyone says that about functional languages, but it is true in my experience!) I have also found that my programs in Clojure are more concise than what I write in other languages. This is partially due to the syntax (come on, guys, the parentheses really aren't that bad; Emacs formats it REALLY nicely) but it is also due to the functional paradigm---it just forces you to think straight to the point of what you're trying to do. Having a REPL (Read-Eval-Print Loop) is EXTREMELY helpful in learning a new language. Try stuff out in real time in the interpreter (just like with Python, etc.) Decreases the amount of time to master a given concept, in my opinion. Because of this

      J Offline
      J Offline
      JimmyRopes
      wrote on last edited by
      #54

      Thanks for the information and links. I will have to look into Clojure.

      The report of my death was an exaggeration - Mark Twain
      Simply Elegant Designs JimmyRopes Designs
      Think inside the box! ProActive Secure Systems
      I'm on-line therefore I am. JimmyRopes

      1 Reply Last reply
      0
      • M mattyltaylor

        Hi, I've used AutoCAD for 20+ years. For almost all of those I've used AutoLISP to get AutoCAD to do what I want it to. It's obviously not Common Lisp, but I've found it to be extremely useful when trying to automate tasks. In AutoCAD you can almost use it as a scripting language - it's easy to make changes on the fly (no code compilation required). I've never touched Common Lisp though! Cheers.

        J Offline
        J Offline
        JimmyRopes
        wrote on last edited by
        #55

        Thanks for the information

        The report of my death was an exaggeration - Mark Twain
        Simply Elegant Designs JimmyRopes Designs
        Think inside the box! ProActive Secure Systems
        I'm on-line therefore I am. JimmyRopes

        1 Reply Last reply
        0
        • M Member 4608898

          Anyone who use emacs or works with HLA (a lot of the defence simulation industry) or one of the SAFs (modsaf, onesaf etc) will use lisp as the configuration language. They won't call it lisp: they will give it some configuration language name but it is still lisp in syntax. Do you use lambda functions? They started in lisp.

          J Offline
          J Offline
          JimmyRopes
          wrote on last edited by
          #56

          Member 4608898 wrote:

          Do you use lambda functions? They started in lisp.

          Yes I do and didn't know the originated in LISP.

          The report of my death was an exaggeration - Mark Twain
          Simply Elegant Designs JimmyRopes Designs
          Think inside the box! ProActive Secure Systems
          I'm on-line therefore I am. JimmyRopes

          I 1 Reply Last reply
          0
          • J JimmyRopes

            irneb wrote:

            Lisp code tends to take not just less time to type but also a lot less time to debug - it's a near exponential increase in my productivity.

            Intersting.

            The report of my death was an exaggeration - Mark Twain
            Simply Elegant Designs JimmyRopes Designs
            Think inside the box! ProActive Secure Systems
            I'm on-line therefore I am. JimmyRopes

            I Offline
            I Offline
            irneb
            wrote on last edited by
            #57

            JimmyRopes wrote:

            Intersting.

            I must state though: My personal experience is a bit unique in that the AutoCAD DotNet API and the AutoLisp integration into ACad both give the same (to a point) functionality. So here I can actually compare apples with pears :| For the general case though, Lisp is not used as much as other languages. E.g. if you need to do something in DotNet and you want to use Lisp, then there are only 2 (that I know of) variants which might work: IronScheme (Scheme direct inside DotNet) and ABCL (Armed Bear Common Lisp inside the JVM) / Clojure through the JVM-Net-bridge. Otherwise you can write unmanaged Lisp code in CL and then use the DotNet libraries through CL's RDNZL library (similar to Java's bridge idea), but I don't know how you'd create new DotNet execs/libs from such. If you're writing unmanaged code (i.e. direct compile to hardware's instruction set - not through a virtual machine like DotNet/JVM) then your options are greatly increased. Most Lisp implementations would compile to something similar as C would, in fact a lot of them actually use C as a form of assembly - i.e. translating the Lisp-code to C code and then using a C-compiler to produce the executable.

            J 1 Reply Last reply
            0
            • J JimmyRopes

              Member 4608898 wrote:

              Do you use lambda functions? They started in lisp.

              Yes I do and didn't know the originated in LISP.

              The report of my death was an exaggeration - Mark Twain
              Simply Elegant Designs JimmyRopes Designs
              Think inside the box! ProActive Secure Systems
              I'm on-line therefore I am. JimmyRopes

              I Offline
              I Offline
              irneb
              wrote on last edited by
              #58

              JimmyRopes wrote:

              Yes I do and didn't know the originated in LISP.

              You'd be surprised just how many things originated from lisp. Even the ubiquitous if-then-else wasn't in Fortran before it was taken from Lisp, it only became ubiquitous in other languages when it was shown to be so much easier to use than conditional goto-statements. Map functions (i.e. the functional method of iterating over a list/array and modifying each item to produce a list of results) was originally in the oldest of Lisps - generally known as the mapcar function. Chances are that whatever language you're using, about half of it stemmed from Lisp originally. Lisp was the first language to actually have all of the now "new" concepts incorporated in one package: iterative, imperative, functional, recursive, object oriented, meta (macros), etc. It allows you to mix-n-match any of these interchangeably so you can choose which works the best for the scenario at hand. That is probably why it makes you able to program in other languages a lot better after you've done some Lisp. Note though, Lisp comes in 3 major dialects: Common, Scheme & "Other". Clojure and NewLisp can be seen as examples of the "Other" type, while they are still Lisps, they don't conform to the strict specifications of Common / Scheme - it would be like a new type of C where it's not conforming to the general principles of C (you could see it like the difference between Java and C#, both look reasonably the same and do the same things, but in slightly different detail). Scheme is generally used in universities since it's a minimalist language, i.e. only the basics are incorporated into its spec. You're supposed to generate your own libraries or use others' libraries - these are usually not included into the language. Common Lisp is at the other end of the spectrum, it's specification tries to encompass all generally needed libraries and functionality. The Others tend to be a mix or they're built on top of existing libraries. Here's one thing which opened my eyes quite wide: The creator of IronScheme first started to make an IronLisp (intended to be a Common Lisp on the DotNet VM). He gave up on this because it was too difficult. One aspect (of many) which is very dificult to near impossible to implement in the CLR is Common Lisp's object orientation (known as CLOS - Common Lisp Object System) and especially the MOP (meta object protocol). It simply doesn't translate into something which the CLR can do. Scheme

              1 Reply Last reply
              0
              • J JimmyRopes

                It is cruel to have a p in the word to describe a lisp. :-D

                The report of my death was an exaggeration - Mark Twain
                Simply Elegant Designs JimmyRopes Designs
                Think inside the box! ProActive Secure Systems
                I'm on-line therefore I am. JimmyRopes

                J Offline
                J Offline
                James Lonero
                wrote on last edited by
                #59

                Ah yes, I just remembered: Lots of Insipid Stupid Parentheses.

                1 Reply Last reply
                0
                • M Mark Whybird

                  This guy did real stuff with it: http://www.paulgraham.com/avg.html[^] It helped him make money, too.

                  J Offline
                  J Offline
                  JimmyRopes
                  wrote on last edited by
                  #60

                  Thanks for the link

                  The report of my death was an exaggeration - Mark Twain
                  Simply Elegant Designs JimmyRopes Designs
                  Think inside the box! ProActive Secure Systems
                  I'm on-line therefore I am. JimmyRopes

                  1 Reply Last reply
                  0
                  • I irneb

                    JimmyRopes wrote:

                    Intersting.

                    I must state though: My personal experience is a bit unique in that the AutoCAD DotNet API and the AutoLisp integration into ACad both give the same (to a point) functionality. So here I can actually compare apples with pears :| For the general case though, Lisp is not used as much as other languages. E.g. if you need to do something in DotNet and you want to use Lisp, then there are only 2 (that I know of) variants which might work: IronScheme (Scheme direct inside DotNet) and ABCL (Armed Bear Common Lisp inside the JVM) / Clojure through the JVM-Net-bridge. Otherwise you can write unmanaged Lisp code in CL and then use the DotNet libraries through CL's RDNZL library (similar to Java's bridge idea), but I don't know how you'd create new DotNet execs/libs from such. If you're writing unmanaged code (i.e. direct compile to hardware's instruction set - not through a virtual machine like DotNet/JVM) then your options are greatly increased. Most Lisp implementations would compile to something similar as C would, in fact a lot of them actually use C as a form of assembly - i.e. translating the Lisp-code to C code and then using a C-compiler to produce the executable.

                    J Offline
                    J Offline
                    JimmyRopes
                    wrote on last edited by
                    #61

                    Thanks for the information

                    The report of my death was an exaggeration - Mark Twain
                    Simply Elegant Designs JimmyRopes Designs
                    Think inside the box! ProActive Secure Systems
                    I'm on-line therefore I am. JimmyRopes

                    1 Reply Last reply
                    0
                    • J JimmyRopes

                      bwallan wrote:

                      Didn't know it was still used or even known!?

                      I was reading something written by Alan Kay[^] and he mentioned LISP as being the best computer language. It was probably written many years ago. It got my curiosity up about if it was still used and if it was worth learning.

                      The report of my death was an exaggeration - Mark Twain
                      Simply Elegant Designs JimmyRopes Designs
                      Think inside the box! ProActive Secure Systems
                      I'm on-line therefore I am. JimmyRopes

                      B Offline
                      B Offline
                      bwallan
                      wrote on last edited by
                      #62

                      Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then. LISP appears to be one of most enduring languages (along with Fortran), originating in 1958. Reading the Wikipedia article on LISP it would look like it has had a resurgence in recent years. I might dig up my old LISP code and see if it is still viable... :) bwa

                      J 1 Reply Last reply
                      0
                      • B bwallan

                        Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then. LISP appears to be one of most enduring languages (along with Fortran), originating in 1958. Reading the Wikipedia article on LISP it would look like it has had a resurgence in recent years. I might dig up my old LISP code and see if it is still viable... :) bwa

                        J Offline
                        J Offline
                        JimmyRopes
                        wrote on last edited by
                        #63

                        bwallan wrote:

                        Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then.

                        Quite likely.

                        The report of my death was an exaggeration - Mark Twain
                        Simply Elegant Designs JimmyRopes Designs
                        Think inside the box! ProActive Secure Systems
                        I'm on-line therefore I am. JimmyRopes

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups