Arc!

Who cares about the Florida primaries when there is some *real* news? Arc is out. (Took them long enough. :-) The official site is here. I will probably download it and give it a spin tonight, after wrestling through the tutorial, forum discussions, and comment threads on Reddit and Y Combinator.

More about this later, without a doubt.

(First thought: It's built on top of MzScheme. Can we do s/MzScheme/Chicken? :-)

:: Comments (1)

I can't think of a title for this post. Anyway, it's about Lisp. :)

Lisp: The Golden Age Isn't Coming Back, Let's Welcome a Bright Future: Interesting article that is somewhat relevant to me right now, considering what I'm doing (i.e. studying Chicken Scheme).

So, yeah, there really isn't such a thing as "one Lisp". There is "Lisp the concept", and there are several standards (Common Lisp and Scheme being the most widely used), and many implementations, varying from very mature to experimental. This situation causes problems that other languages usually don't have, like fragmentation, incompatible code bases, and lack to clarity due to too many choices. (Compare this to e.g. Python: you just download the latest version at www.python.org, install it, and you're good to go. But you cannot go to, say, www.lisp.com, and download "the Lisp that everybody uses". There are just too many variants to choose from.)

In fact, you could say that Lisp isn't really a language, but a way to implement programming language concepts. You could write an implementation, interpreted or compiled or both, using separate namespaces for functions and variables or one, using dynamic or static typing, using eager or lazy evaluation, etc, and whatever you come up with could still be called "Lisp". Scheme is "a Lisp". So are Goo and Arc. The terminology can be confusing sometimes because people often use the term "Lisp" to refer to Common Lisp (sometimes in contrast to other Lisp variants like Scheme).

What the article kind of hints at, but doesn't really go into, is that Lisp has social problems. If that sounds weird, just take a look at comp.lang.lisp to see what I mean. Or, if you just want the summary, see this blog. Also see e.g. here, here and here. This seems to be mostly true for the Common Lisp community; on average, Schemers seem to have a different attitude, and I found people on the chicken-users mailing list to be friendly and helpful in general.

:: Comments

Why not CL?

Paul Graham on Lisp machines:

What made me switch was that Lisp machines (both Symbolics and LMI) were so gratuitously, baroquely complex. The manuals filled a whole shelf. Each component of the software was written as if it had to have every possible feature. The hackers who wrote it were the smartest and most energetic around. But there was no Steve Jobs to tell them "No, this is too complex." So the guy in charge of writing the pretty-printer, for example, would decide. "This is going to be the most powerful pretty-printer ever written. It's going to be able to do everything!"

Unfortunately this complexity persists in Common Lisp, which was pretty much copied directly from ZetaLisp. In fact, both of the worst flaws in CL are due to its origins on Lisp machines: both its complexity and the way it's cut off from the OS.

Indeed, this is one of the reasons why Common Lisp is much less appealing to me than Scheme. I mean, I love the idea of a Lisp machine. I loved reading the old Zetalisp manuals (long after they were relevant -- I wasn't around back then). But I don't love Common Lisp, for several reasons, and one of them is that has accumulated too many features. (There are other reasons, but that's something for a separate post. So are my reasons for choosing Scheme, and choosing Chicken specifically.)

Having many features doesn't make something a bad language, but it's the "everything and the kitchen sink" mentality that turns me off. It reminds me of languages like Perl, or Ada. :-/ It's just not something I am looking for right now.

(It's an odd comment coming from PG though, considering he has written books about Common Lisp... but maybe this is one of the reasons he decided to start writing Arc.)

:: Comments