Arc Forumnew | comments | leaders | submitlogin
5 points by sacado 6037 days ago | link | parent

Lisp is a strange world. It is very powerful and you can easily tailor the language the way you want. That, plus the fact there are many dialects, and that even within major dialects, you have many slightly different implementations, makes it harder to build a community.

Arc has a few advantages : it's got a canonical implementation (the fact that code is specification makes it easier), a charistmatic benevolent dictator and it is directed toward a popular and modern concern : web apps.

It could make Lisp popular, but it needs some kind of killer app. The news app is cool, but it won't be enough. Anybody's got an idea ?

As for being purely functional or not, well I really like the compromise Lisp (and particularily Arc) is. You can make your programs purely functionals, and it is generally easier, but you can also switch to an imperative paradigm whenever it makes sense.



6 points by almkglor 6037 days ago | link

> it's got a canonical implementation

...until you realize that nearly every non-pg, non-rtm Arc user prefers to use the non-canonical Anarki, and recommends it because of the sheer number of bug fixes (never mind the new features, such as 'defcall, 'defm, 'p-m:, 'sync, 'thread-local, 'file-table ... etc.)

> It could make Lisp popular, but it needs some kind of killer app. The news app is cool, but it won't be enough. Anybody's got an idea ?

http://arclanguage.com/item?id=5697

-----

2 points by sacado 6037 days ago | link

Yes, but Anarki's primary goal is still to keep fully compliant with canonical Arc (except for bugs, of course). Now, sure, there are the additions...

-----

4 points by almkglor 6037 days ago | link

There's also the other problem with canonical Arc: pg has expressly stated that he will not retain backward compatibility between versions.

This also means that if Anarki tries to keep full compliance with ArcN in the future, without pg updating ArcN reasonably frequently, eventually (in a year? half a year?) Anarki will either: 1) die out as a source of innovation, because people will simply rather wait for pg's next update rather than push a change that might be overridden by pg in the future, or 2) drift so far away from pg's internal ArcN that when pg releases it, the merge hell will be very, very hot.

Take an example this: http://arclanguage.com/item?id=6138

  arc> (ssexpand 'foo?x)
  (is foo x)
Certainly I could implement that, and I think it's a good idea. The problem is pg's plans: does he intend a different meaning for #\? ? I don't dare to push this on Anarki, because if I do, I don't dare use it anyway, because pg might change its meaning in the future.

Edit: Ah, crick. I wish I can just say "Anarki promises to always keep compatibility with existing Anarki code. If pg breaks existing Anarki code in the next ArcN, we either (1) ignore the new feature, especially if we as a community feel that the existing Anarki feature is better, (2) rename pg's feature if possible, or (3) write a converter for old ArcN-1 based Anarki to ArcN based Anarki. Feel free to program in Anarki, where the magic carpet is assured of not being pulled out under you while you're exploring."

-----

4 points by applepie 6037 days ago | link

> the fact that code is specification makes it easier

The fact that broken pg's code is specification is a pain in the back and doesn't make anything easier.

Read RnRS for a _real_ specification of Lisp.

-----

3 points by sacado 6037 days ago | link

I was not talking in practice, in was meaning "in theory". In theory, the fact that most of the language is specified via code helps avoiding incompatible implementations. In practice, that's another problem, but it's only the beginning...

-----

2 points by almkglor 6037 days ago | link

Where pg fails.... --warning-blatant-self-promotion-- Anarki! Whee!

Hmm. Probably need a "Report on Anarki" as a spec of the standard Anarki, particularly 'call* and 'defcall, which may very well be the most important extension in Anarki.

-----