Does anyone code with LISP?
-
JimmyRopes wrote:
That is the nature of experimental development.
Yes it is. Over the years I've done a lot of R&D and when it works it's awesome but when it don't...
VS2010/Atmel Studio 6.1 ToDo Manager Extension Relax...We're all crazy it's not a competition!
In answer to the question, I don't programme with Lisp; I would need a very good reason to start, curiosity in this case would not by itself justify the investment of time and effort. Whereas other languages such as Python are commercial, hobbyist, free and fun to learn, which is probably why they succeed.
-
Mike Hankey wrote:
after about 2 days I think what the hell would I do with it?
That is what has stopped me so far, what can I do with it? Sorry to hear your beagle is sick.
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 -
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesUsing LISP currently... First it is not crazy efficient, and is usually interpreted. But it was the key for me learning OOP at the university in the late 80s. The concept of a function was such that you could subclass your class, and then declare EITHER (before, after, instead of) function, which simply determined when it would execute your code, relative to the original code. CDR = Contents of Destination Register CADR = Contents of Address Register LISP = Lots of Incessant Stupid Parenthesis :-) Wow, you brought a bunch of memories back from a LONG time ago. EMACS uses LISP for macros/extensions. So, one way to learn LISP in a functional way, would be to learn to write extensions for the editor (or read a bunch of them).
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesI don't know of many commercial applications, though reading some stuff (perhaps dubious) that may be because companies don't want their competition to know about their competitive advantage. I can only speak from my own experience. Other than some indicating that Lisp is more a university teaching tool, I found it the other way round: At uni I learned Pascal, C++ & Java. I learned Basic & Lisp for myself before I went to uni. And because I do a lot of work in CAD I've been using AutoLisp "in anger" :rolleyes: since the early 90's. Though AutoLisp (and even the Visual Lisp since the late 90's) is far removed from a full-fledged Lisp/Scheme - it still indicates a lot of stuff where other languages (at least of the time) struggled or made the programmer's life difficult. So you can imagine how I find a full Lisp in comparison to something like Java/C#. Only later did I see languages such as Python, which I consider to have come close enough to Lisp to be deemed "as powerful" - to an extent. Linq gives C# "some" of Lisps abilities, but far from all. I'm NOT trying to say any language is "bad" or "inferior" to any other, each one I learned taught me something (at least). And I might even go as far as to say some excel in certain uses. Though I must say that Lisp has yet (for me) to be relegated to a superseded language, it's still the only one which has so much scope, multi-paradigm mix-ability, concise code, decent-to-excellent compiler optimization, ease of patching / debugging on the fly, etc. Remember, Lisp was actually invented "by accident" - it was intended as an intermediate step to inventing a more Fortran-like language which would incorporate all the special constructs and use cases which Fortran lacked at the time. Only that last took too long and people started seeing just how simple Lisp is to use while adding so much power for so little input. This last thing is still an issue today: I can attest to using C# and AutoLisp to do the exact same thing inside AutoCAD. The Lisp code is on average 1/3 of that which I need to actually type into the C# (note not counting the "autogenerated" stuff or the pre-made templates, otherwise it would be more like 1/5) in order for the 2 to do exactly the same thing. Many say less code is not a big issue, but I have to state that my 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.
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesI program in Emacs Lisp (ELisp) all the time, and love Lisp in that application, so much that I would like to use Lisp for other things. However, I've only used Common Lisp a little bit, for very small things, and almost always opt for something else when I have something that needs to get done. I think the difference is the "atoms". The atoms in Emacs Lisp are geared for text processing and it makes Emacs a very effective text processing framework, for me, anyway. Apparently only 1% of Emacs users actually write ELisp. Common Lisp I guess just doesn't appeal to me as a general purpose language, because in my limited experience with it, the atoms just don't do it for me. Maybe if I gave it a harder push, but in the presence of other options, I tend toward the other options. I would not discourage you from learning Lisp, because it changes how you think about programming and yes, will make you a better programmer in any language for the experience. If you google Paul Graham, he provides some advantages of Lisp; he used it to write I believe Yahoo's Shopping Cart. A more interesting story for me can be found if you google "Lisping at JPL".
-
Oooo...nasty. Did they just laugh when you told them, or are they going to do something? (This is why I may be old-fashioned, but I like a minimum boot loader in EPROM rather than flash...)
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 ā September 26, 1952) Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 ā ā)
Maybe http://en.wikipedia.org/wiki/LISP[^]is what ALL here, discussing LISP should read to gain a comon understaning ground AND understand LISP in the larg. i.e Autocad as a CAD systems was able to use LISP, and I (even as a Autocad novice) was able to code new CAD parameterised drawing elements. Not so bad for me 20 years ago. Josef
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesNot personally but my brother does. There are certain types of research and engineering problems that LISP handles well (which is the type of work he does). The language is fully recursive in nature so imagine using it to solve a problem which is also recursive in nature.
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesYou could do some Clojure or Iron Scheme which are both considered dialects of Lisp. Also I'd check out Lisp in the real world. Also these
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesHaven't used it since my Artificial Intelligence term project in grad school. It was a frame-based system for playing chess endgames. The ability to treat LISP code as objects was convenient for this application. Haven't had the opportunity or inclination to use it since then.
-
In answer to the question, I don't programme with Lisp; I would need a very good reason to start, curiosity in this case would not by itself justify the investment of time and effort. Whereas other languages such as Python are commercial, hobbyist, free and fun to learn, which is probably why they succeed.
Simon O'Riordan from UK wrote:
I don't programme with Lisp; I would need a very good reason to start
Me too. That is why I am asking if anyone uses it and for what.
Simon O'Riordan from UK wrote:
curiosity in this case would not by itself justify the investment of time and effort.
Ditto
Simon O'Riordan from UK wrote:
Whereas other languages such as Python are commercial, hobbyist, free and fun to learn, which is probably why they succeed.
I've thought about looking into Python but just haven't had the time.
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 -
Using LISP currently... First it is not crazy efficient, and is usually interpreted. But it was the key for me learning OOP at the university in the late 80s. The concept of a function was such that you could subclass your class, and then declare EITHER (before, after, instead of) function, which simply determined when it would execute your code, relative to the original code. CDR = Contents of Destination Register CADR = Contents of Address Register LISP = Lots of Incessant Stupid Parenthesis :-) Wow, you brought a bunch of memories back from a LONG time ago. EMACS uses LISP for macros/extensions. So, one way to learn LISP in a functional way, would be to learn to write extensions for the editor (or read a bunch of them).
Member 10389821 wrote:
LISP = Lots of Incessant Stupid Parenthesis :)
Ā
Wow, you brought a bunch of memories back from a LONG time ago.Sorry for your pain.
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 don't know of many commercial applications, though reading some stuff (perhaps dubious) that may be because companies don't want their competition to know about their competitive advantage. I can only speak from my own experience. Other than some indicating that Lisp is more a university teaching tool, I found it the other way round: At uni I learned Pascal, C++ & Java. I learned Basic & Lisp for myself before I went to uni. And because I do a lot of work in CAD I've been using AutoLisp "in anger" :rolleyes: since the early 90's. Though AutoLisp (and even the Visual Lisp since the late 90's) is far removed from a full-fledged Lisp/Scheme - it still indicates a lot of stuff where other languages (at least of the time) struggled or made the programmer's life difficult. So you can imagine how I find a full Lisp in comparison to something like Java/C#. Only later did I see languages such as Python, which I consider to have come close enough to Lisp to be deemed "as powerful" - to an extent. Linq gives C# "some" of Lisps abilities, but far from all. I'm NOT trying to say any language is "bad" or "inferior" to any other, each one I learned taught me something (at least). And I might even go as far as to say some excel in certain uses. Though I must say that Lisp has yet (for me) to be relegated to a superseded language, it's still the only one which has so much scope, multi-paradigm mix-ability, concise code, decent-to-excellent compiler optimization, ease of patching / debugging on the fly, etc. Remember, Lisp was actually invented "by accident" - it was intended as an intermediate step to inventing a more Fortran-like language which would incorporate all the special constructs and use cases which Fortran lacked at the time. Only that last took too long and people started seeing just how simple Lisp is to use while adding so much power for so little input. This last thing is still an issue today: I can attest to using C# and AutoLisp to do the exact same thing inside AutoCAD. The Lisp code is on average 1/3 of that which I need to actually type into the C# (note not counting the "autogenerated" stuff or the pre-made templates, otherwise it would be more like 1/5) in order for the 2 to do exactly the same thing. Many say less code is not a big issue, but I have to state that my 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.
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 program in Emacs Lisp (ELisp) all the time, and love Lisp in that application, so much that I would like to use Lisp for other things. However, I've only used Common Lisp a little bit, for very small things, and almost always opt for something else when I have something that needs to get done. I think the difference is the "atoms". The atoms in Emacs Lisp are geared for text processing and it makes Emacs a very effective text processing framework, for me, anyway. Apparently only 1% of Emacs users actually write ELisp. Common Lisp I guess just doesn't appeal to me as a general purpose language, because in my limited experience with it, the atoms just don't do it for me. Maybe if I gave it a harder push, but in the presence of other options, I tend toward the other options. I would not discourage you from learning Lisp, because it changes how you think about programming and yes, will make you a better programmer in any language for the experience. If you google Paul Graham, he provides some advantages of Lisp; he used it to write I believe Yahoo's Shopping Cart. A more interesting story for me can be found if you google "Lisping at JPL".
Thanks for the insight.
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 -
Not personally but my brother does. There are certain types of research and engineering problems that LISP handles well (which is the type of work he does). The language is fully recursive in nature so imagine using it to solve a problem which is also recursive in nature.
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 -
You could do some Clojure or Iron Scheme which are both considered dialects of Lisp. Also I'd check out Lisp in the real world. Also these
Thanks for the links.
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 -
Haven't used it since my Artificial Intelligence term project in grad school. It was a frame-based system for playing chess endgames. The ability to treat LISP code as objects was convenient for this application. Haven't had the opportunity or inclination to use it since then.
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 -
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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 -
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesAfter 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
-
If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?
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. JimmyRopesHi, 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.
-
Mike Hankey wrote:
after about 2 days I think what the hell would I do with it?
That is what has stopped me so far, what can I do with it? Sorry to hear your beagle is sick.
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. JimmyRopesThis guy did real stuff with it: http://www.paulgraham.com/avg.html[^] It helped him make money, too.