Live data from Hacker News

Ask HN: About all this Lisp fuzz

news.ycombinator.com

1–10 of 40 posts

Ask HN: About all this Lisp fuzz

#1
I know a little of Lisp. Not much, never went much far than 4th, maybe 5th chapter on PG's book. I did some exercises and I understand the power that Lisp brings. Maybe not fully, but I can see the potential. Before you ask, I used Lispbox to set it up, which gave me e-Macs with a Lisp extension, but which implementation I am not sure, although I know it is not any Scheme one.

Now, I am following all those articles posted here today about the Lisp's problems and they look to me quite similar to the Linux distro's problem, in that everyone has one that (s)he likes and disses (if not plainly hates) all others.

This, on the Linux world has prevented it from becoming the mainstream OS it should be, and gave Windows an undeserving and lasting afterlife. It could have died with the Vista fiasco, and it nearly did so, but now it is posing a serious comeback with Seven. Linux failed to seize the moment and Lisp is doing more or less the same.

Now, answer me these, since my knowledge of Lisp is severely lacking to make sense of it. If I am completely wrong about something, be merciful.

As far as I understand, Lisp has some 'low level' functions that are some sort of axioms on whom the implementations are built onto, right?

If this is true and everything on the language are built atop of those, or atop of stuff built atop of those (in n-levels), how can different implementations possible be incompatible?

If everyone is aware of the Lisp's problems, why isn't anyone moving to fix them?

Why, when one tries, the answer must always be another implementation with 'more' features instead of creating the cleanest possible implementation with 'the least' features allowing maximum compatibility?

I have more questions, but I need to understand these first if anyone has the patience to answer.

I am most grateful for your time.

Re: Ask HN: About all this Lisp fuzz

#2
Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different.

The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries around ("portable" means that they work on different CL implementations).

edit: thinking about it, if you are using Peter Seibel's lisp in a box, then it's CL that you are playing with

Re: Ask HN: About all this Lisp fuzz

#3
post #2

Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different. The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries aro…

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both.

In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, increasing even more the noise? If I wanted an implementation of strict CL, which one would be it?

Re: Ask HN: About all this Lisp fuzz

#4
post #3
post #2

Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different. The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries aro…

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both. In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, inc…

Common Lisp was an effort to create an unified, "industrial strength" version of Lisp, because at the time there were many. For this reason the resulting standard is very large and complex. Scheme has been designed with a different agenda (cleanliness, elegance, etc.) and it is more used in the academia ; for example, scheme is the dialect used in the famous SICP book.

If you choose CL, the choice of implementation is not very important while you learn it. Different CL implementations have different strength, e.g. in unicode implementation, compilation speed, treatment of certain kinds of numbers etc., but it is not relevant for a beginner. A popular open source choice is SBCL, but there are others.

Also, there are free/opensource implementations and commercial implementations. The commercial ones are costly (but trial versions exist); they give a more complete environment.

Re: Ask HN: About all this Lisp fuzz

#5
post #3
post #2

Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different. The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries aro…

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both. In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, inc…

btw, arc is /not/ CL. It is another kind of lisp. As I understand it, arc is lisp as PG thought it should be. Other currents of thought exist.

Re: Ask HN: About all this Lisp fuzz

#6
Speaking of one who has four "distros" in the shop (ubuntu, freebsd, openbsd, osx) each of these has its strength and making our stuff work on them is not a big deal. I don't get confused at all, and there isn't all that much "noise".

Similarly, for the very high performance stuff, i use SBCL which generates native code on all the above platforms. I recently have started to do CCL because a client wants a true mac app and CCL has this wonderful cocoa bridge. If i had to do any java stuff or interface with java, I would probably be using clojure.

If you are interested, I recommend continuing PCL and the lispbox.

If everyone is not moving to fix the problems that you mention, it might mean that they disagree about what the important problems are.

Arc exists as a research effort in thinking about what the next version of lisp should look like, and there are those that feel it is a possible answer to some of your questions.

Scheme is a very essential (e.g. minimalist) implementation of Lisp that is often found in teaching environments.

Don't let the variety scare you--just dive in if you are interested.

Re: Ask HN: About all this Lisp fuzz

#7
post #3
post #2

Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different. The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries aro…

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both. In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, inc…

[deleted]

Re: Ask HN: About all this Lisp fuzz

#8
post #4
post #3

Earlier quoted context omitted.

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both. In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, inc…

Common Lisp was an effort to create an unified, "industrial strength" version of Lisp, because at the time there were many. For this reason the resulting standard is very large and complex. Scheme has been designed with a different agenda (cleanliness, elegance, etc.) and it is more used in the academia ; for example, scheme is the dialect used in the famous SICP book. If you choose CL, the choice of implementation i…

And even though Scheme was designed to be clean and elegant, CL has to be backward compatible and thus cannot be 'cleaned', right?.

Is there any 'cleaner' CL standard, or at least a 'best practices' guide to code in a cleaner way, avoiding the worse pits that had to be kept in the standard due to backward compatibility?

I can give you a simple C++ example of what I mean. In C, you had those *parameters that had to be matched by &args when the function was called. C++ brought some self-referencing &parameters that were passed normally and worked the same way than the former but were (saidly) less error-prone.

Is there any similar effort being made in Lisp?

Re: Ask HN: About all this Lisp fuzz

#9
post #3
post #2

Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different. The PG books are about Common Lisp. CL is defined in a very good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries aro…

I never tried Scheme so you can assume I am talking about CL if that helps, but since I don't know the difference between them, the question is directed at both. In fact, if they are both 'Lisp', why do they exist at all? Why there ARE differences? If CL is a 'very good' ANSI standard as you say, why people use Scheme? Arc is also CL, but why does it exist at all? What does it has that justifies it being created, inc…

(This is from my personal experience, your mileage may vary) Scheme and CL have different goals: Scheme aims for a quite minimal language with additional abilities primarily through libraries (part of the reason that it is often seen as a teaching language, the core can be learned quite quickly), CL seeks to be a more general purpose language, so it standardizes more features and abilities. Also, Scheme seems to emphasize functional programming more.

The choice of a Lisp seems to be one of situation, context, or religion (for example, see the disagreements as to whether a Lisp-1 or Lisp-2 is better).

Arc may just appear to be an attempt to build a better mousetrap (and is not CL), but it seems to be inspired by the same reason that created most other programming languages: someone (pg) decided that there existed a better way to do task x. I, for one, think that the syntax is cleaner.

I'm usually a Schemer, so I can't really recommend CL implementations...

Re: Ask HN: About all this Lisp fuzz

#10
post #6

Speaking of one who has four "distros" in the shop (ubuntu, freebsd, openbsd, osx) each of these has its strength and making our stuff work on them is not a big deal. I don't get confused at all, and there isn't all that much "noise". Similarly, for the very high performance stuff, i use SBCL which generates native code on all the above platforms. I recently have started to do CCL because a client wants a true mac ap…

It may not be for you, but it was for me in the beggining.

I already went through 3 distros - Kurumin, Suse and Ubuntu, and the only reason I still have a Windows partition is to play some games that I couldn't (or didn't bother to) make work under Linux. I can tell you, the bar is very high to start. Ubuntu made it lower (and lower at each version) but it is still too high for mainstream.

And it need not be. The whole problem is always understanding the differences. If I pick that distro or that distro, what changes? What do I lose? What do I earn? Unable to find answers, one doesn't choose lest one chooses poorly.

Lisp implementations are the same.

Thank you for your answers. Allow me to add just two more. If one says Arc is not CL, but a whole new kind of Lisp that tries to solve some of those problems, what exactly are the differences? What does Arc advance as a Lisp standard?

Post reply on HN