Which LISP?

ForumPurely Programmers

Melde dich bei LibraryThing an, um Nachrichten zu schreiben.

Which LISP?

Dieses Thema ruht momentan. Die letzte Nachricht liegt mehr als 90 Tage zurück. Du kannst es wieder aufgreifen, indem du eine neue Antwort schreibst.

1szarka
Aug. 18, 2006, 12:39 am

It'll be time for me to shake things up and learn a new language soon. I had started on Erlang a while back and getting back to it might be fun. But I'm starting to lean toward Lisp--probably Common Lisp rather than Scheme.

Anyone care to recommend a good first Lisp book? Would I be crazy to hope that there's one out there with an emphasis on using Lisp in a web development and/or system administration context? Not that I'm unhappy with PHP and Perl, but the best way for me to find the time to learn a new language is to use it for my work...

2GreyHead
Bearbeitet: Aug. 18, 2006, 5:01 am

Szarka: Don't think I'd go Lisp to use in my day job (not that I have a programming day job, more a spare-time activity) but I would look at Ruby which has some similarities see for example Why Ruby is an acceptable LISP The other attractor is that there are some very neat Ruby frameworks emerging round Rails for Ruby. I really don't know how practical they are but the thinking appeals a lot.

I guess I should add a book or two for good measure Programming Ruby and Ruby for Rails are good starters.

##Corrected spelling :-( and fixed mangled link

3andyl
Aug. 18, 2006, 4:25 am

Personally I don't think Ruby makes a very good LISP despite it being a nice language. The comments on GreyHead's mangled link point out some of the issues.

The Little Schemer is a good introduction to Scheme (and much of the knowledge also applies to LISP) for someone absolutely new to the language.

I learnt LISP at college and we didn't use a book for the most part (well it hadn't been standardised into Common Lisp then) and we were taught it in a very functional style (like Scheme).

I certainly wouldn't start out learning a language by targetting myself at a particular solution space. I can't think of any LISP books that target any solution space other than AI - they are all general purpose books about the language.

4GreyHead
Aug. 18, 2006, 4:41 am

I unmangled the link tags need double quotes round the url.

5MMcM
Aug. 18, 2006, 11:19 am

Your idea of applying what you learn to actual problems right away is sensible. You will have the necessary domain knowledge already and motivation to follow through.

I am not so sure about wanting the book to share this domain space, though. I think that might encourage copy and paste without getting a firm grasp of the fundamentals of this general purpose language.

I am afraid that I do not have any specific book recommendations; we just made it up as we went along ;). But there are loads of net resources; the comp.lang.lisp FAQ comes to mind right away. I know dozens of people who use CL for solving hard real-world problems. Proponents are not shy, despite repeated bashings from people scarred by a bad undergraduate introduction. LT may not have critical mass; hunt around a little more elsewhere.

Do look for an implementation to use that comes with or supports building blocks to start what you need to do. A non-trivial well written Lisp program is usually a new domain-specific language. This may not be obvious because the surface syntax does not change. It feels like working with XSD or JSON but with tighter language integration.

6szarka
Aug. 18, 2006, 9:44 pm

I'd read "Why Ruby is an acceptable LISP" before and actually I had been thinking of Ruby or maybe Python as potential candidates, as well. My thinking with Lisp was that I wanted to learn something radically different than what I've learned so far, and I have the vague (but perhaps incorrect?) impression that Ruby (or Python) is more like what I already know than Lisp. Ruby does actually look pretty foreign to me, but I'm not sure whether that's just the syntax or what.

So maybe I should have called this topic, Should I learn Lisp or Ruby next? ;)

7andyl
Aug. 19, 2006, 3:46 am

Well Ruby is undoubtedly a smaller language than Lisp (including CLOS and macros). That has advantages when you are learning for fun. It has a lot more buzz about it as well and as GreyHead mentioned there are web frameworks and other libraries available (which is sometimes a curse as well as a boon when you are learning).

8madmonky1 Erste Nachricht
Aug. 26, 2006, 11:36 pm

Practical Common Lisp is a great book for learning lisp if you are already a programmer in a different language. It shows you practical examples of programs you can write with lisp, starting from the second chapter. If you follow the book to the end, you will written a complete web-application for running an internet radio server. You can even read it online for free.

If your interested in scheme, have a look at the PLT project. They have a nice scheme implementation, and a book on scheme called how to design programs.

I'm a web developer using both Common Lisp and Ruby, and would definitely recommend Lisp over Ruby. Ruby's support for abstracting concepts doesn't come close to what you get with macros, and I've found CL's object system, and error handling to be much more powerful than the ruby equivalents. It's still a nice language if you want to do some quick object oriented programming and can't use smalltalk or Cl, and is worth learning sometime, but I think you'll gain a lot more from learning lisp.

9szarka
Aug. 27, 2006, 2:38 am

Thanks for the recommendation, madmonky1. I'd actually bookmarked the web page for later reading, so I'll have to print out a few chapters and give it a go. :)

10djmook
Aug. 27, 2006, 4:42 pm

Ruby is pretty fun and really makes life easier when it comes to human readable code.

Here are some books on both ruby & rails worth looking at:
Ruby Books

If you decide to pursue the rails framework, be sure to look at Ruby for Rails by David Black as it focuses more ruby oriented rails dedvelopment.

If you decide to pickup Agile Web Development with Rails then you may want to consider ordering the 2nd edition from Pragmatic Programmers. Currently it is a beta book, but there a have been a lot of changes in the Rails framework between the 1st edition of the book (Rails 1.0) and the upcoming second edition (Rails 1.1.6, possibly 1.2).

11szarka
Sept. 7, 2006, 12:04 pm

So, I've started in on Scheme using Structure and Interpretation of Computer Programs and the excellent video lectures at http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ -- I'm not usually a video person, but these are really well done. (20 years old, but who cares?) The BSD port of MIT Scheme installed without a murmur, so between the book, lectures, and interpreter there are so many resources at hand I might as well be in the class. There's also the more current OpenCourseWare resources at http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Sprin... that I haven't touched yet. Wow. Kudos, MIT.

12dick_pountain
Nov. 21, 2006, 10:33 am

Couldn't agree more. I started Lisp 25 years ago with the Little Lisper - still an amazingly unconventional but effective tutorial. Over the intervening years I moved on through Prolog, POP-11 to Python, and finally found that Ruby is what I was looking for all along...

13b1_ Erste Nachricht
Nov. 29, 2006, 5:56 am

Awesome links szarka!

As an introduction to Lisp you can't go past The Little Lisper. Be warned however that it's not a Lisp manual. It's actual focus is to teach beginners to think recursively, a very useful tool when programming. (The Little Schemer is the updated version I believe).

I am in the same boat. After extensive research I have decided to learn either Ruby or Lisp. I am going with Lisp because of The Little Lisper hoping for some improvement in my very poor recursive thinking, but Ruby is my ultimate goal. Ruby attracts me greatlly but I think I've got to learn to program first.

Be aware there are many free online resources for both languages:
Ruby
http://www.ruby-doc.org/docs/UsersGuide/rg/ (Matz's tutorials translated - the creator of Ruby)
http://www.visibleworkings.com/little-ruby/
http://pine.fm/LearnToProgram/
http://www.math.umd.edu/~dcarrera/ruby/0.3/
http://www.brpreiss.com/books/opus8/
Lisp
http://www.gigamonkeys.com/book/ (Practical Common Lisp)
http://www.paulgraham.com/onlisptext.html (On Lisp)
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ (video lectures linked above)

14szarka
Bearbeitet: Dez. 2, 2006, 10:33 am

I found The Little Lisper at the library and I've read about half of it so far. I don't think I've learned a lot from it, but it's a fun little book. I'll bet it would be a great one to give a budding programmer for Christmas. :)

15gfawcett Erste Nachricht
Bearbeitet: Mrz. 7, 2007, 10:38 am

> So maybe I should have called this topic, Should I learn Lisp or Ruby next? ;)

Learn both. But learn Lisp first. :-)

I'd encourage you to look at Scheme; there's a wealth of good (online) books on it (How to Design Programs; Structure and Interpretation of Computer Programs); and some great user communities (the PLT and Chicken communities are fairly large, knowledgeable and generally very helpful.)

16bvs
Bearbeitet: Aug. 21, 2007, 7:09 pm

For Common Lisp I'd recommend On LISP: Advanced Techniques for Common LISP. It is available online (see ref. in #13 msg). Peter Seibel's Practical Common Lisp appears to be quite good and has some web / sysadmin examples that may be of interest to you. There are a number of CL implementations that run on *BSD (cmucl, sbcl, glisp) and you can run some commercial ones such as Allegro CL (there is a free edition).

As for Scheme, I believe PLT Scheme has some examples of web programming. This is also the Scheme you use with How to Design Programs.

17gam3
Dez. 13, 2007, 6:44 pm

Diese Nachricht wurde vom Autor gelöscht.

18gam3
Bearbeitet: Dez. 13, 2007, 6:49 pm

I don't think that you can go wrong with either. You could cut the baby in half and learn CLOS (see Jo A. Lawless).

19crisafugate
Mai 28, 2013, 4:44 pm

Ruby has very little to do with LISP, but is fairly similar to Smalltalk. Instead, I would look at Scheme, Dylan, and Clojure.