Arc Forumnew | comments | leaders | submitlogin
8 points by jmatt 6055 days ago | link | parent

I saw this quote over on the onsmalltalk.com page and thought it was accurate, "I’ve always felt Lisp is the superior language and Smalltalk is the superior environment." (http://onsmalltalk.com/programming/smalltalk/aha-moments-in-...).

Considering that arc doesn't even have slime support - it's accurate. Now when using slime supported lisps, the environments are at least comparable. Debugging in Smalltalk is awesome and straightforward after you are up to speed. It still takes more dedication to learn slime well enough to debug a gnarly bug.

Both smalltalk and lisp will allow you to create DSLs (domain specific languages) easily for your application. Both see code as data and allow customization of internals. They do this through different approaches. Each approach has different strengths and weaknesses. Also some people are just more comfortable with one approach over another.

I think it speaks volumes about Smalltalk that Avi Bryant could just add continuations (saved closures) to the language for seaside. This sort of ability to add powerful new forms to a language is key and helps set it apart from other languages and put it in the same category as Lisp.

If you are interested there are interesting "History of" papers on Smalltalk and Lisp from the HOPL ACM conferences. They help explain the different philosophies in detail and do a great job of explaining why each language is the way that it is.

I was talking to a fellow lisper recently and he said "If I weren't writing lisp or scheme, I'd be writing smalltalk". I entirely agree with that. In fact I may still end up writing some projects in smalltalk.



4 points by jmatt 6055 days ago | link

Here are some links. I realized some of the things that I mentioned may be hard to find.

Both hopl papers are available on the digital library on the acm website. Here are the free links:

History of Lisp (John McCarthy) - http://www-formal.stanford.edu/jmc/history/lisp.ps

History of Smalltalk (Alan Kay) - http://stephane.ducasse.free.fr/FreeBooks/SmalltalkHistoryHO...

Seaside (the killer app for squeak/smalltalk) - http://www.seaside.st/

-----

2 points by eds 6055 days ago | link

Do you have any suggestions for learning slime? I've always felt that I wasn't taking advantage of its full potential.

-----

5 points by jmatt 6055 days ago | link

Unfortunately I don't have any huge insights. I've been using it on and off since 2005. It was recommended by a friend who lives in emacs. It makes lisp approachable and it makes me way way more efficient when writing and debugging lisp. No swank backend (and thus no slime) makes arc a hard sell. For those wondering what's so great about it - slime supports every major debugging feature I've seen in Eclipse or Visual Studio.

This is what I would recommend for someone learning slime:

If you are a complete slime n00b watch the screencast over at the slime homepage. I just watched it recently and it is well done.

I think the best way to learn from there is through using it to implement a non-trivial yet small project. Make sure the project isn't too challenging, so you have a chance to learn the new environment. Anytime you think there must be an easier/better way to do this - spend time learning slime. Keep coding and you'll continue to put yourself into situations where you can use slime in new ways.

If you have specific questions or problems it is worth asking the community or searching blogs / mailing lists. The questions are either answered already or someone will give you an answer. This is much like all the lisp and smalltalk communities.

I will see if I can get an expert slime user to post some more specific information. Maybe someone else can chime in. I know I have some useful information on specific parts of slime but it wouldn't help someone that is a new user.

links: home - http://common-lisp.net/project/slime/

screencast - http://www.cl-user.net/asp/web-sites/slime-video

manual (also around in ps and pdf) - http://common-lisp.net/project/slime/doc/html/

-----