Arc Forumnew | comments | leaders | submitlogin
NewLisp - will Arc ever get to surpass this? (newlisp.org)
2 points by Ramir 5693 days ago | 9 comments


4 points by drcode 5692 days ago | link

NewLisp has some nice ideas- I have a hard time though seeing the "big picture" for its design decisions.

I feel like I can understand the primary design decisions for arc pretty well- They are:

   1. KISS (Keep It Simple, Stupid)
   2. Code brevity (note code.arc for pg's thinking on this)
   3. Don't make the code look like line noise
I would argue that if you take these to the extreme, what you're left with is arc.

-----

1 point by Ramir 5690 days ago | link

Your suggested "primary design decisions" seem to concern exclusively syntax & reserved names for built-in operators. This is a very specific and very superfluous aspect, for the latter two are the thin outer skin of any programming language.

From what I have read, Arc goes much deeper in its design principles. Those can be enveloped as the thorough "bottom-upness" of design: both read & write access to the language, right through to its primitive elements.

And this is the direct result of Mr. Graham's popular relation of Arc's design philosophy (http://paulgraham.com/design.html): a programming language ought to strive to accomodate those who themselves are qualified to design languages, translators and compilers, among other things.

This is at the foundation of Lisp, and Arc is a promising language because its designers seem to have well understood that foundation.

What is left to add, though, are modern counterparts of those 1960-s innovations that made Lisp superior not only in principle, but in reality also.

-----

7 points by stefano 5692 days ago | link

NewLisp is dynamically scoped. This is a big downside. The library support seems pretty good, though.

-----

4 points by cchooper 5692 days ago | link

This seems to be the fate of new Lisps. They add lots of great new features that CL lacks, but then make some big change that everybody hates.

At least Arc hasn't screwed up anything big yet.

-----

5 points by rntz 5690 days ago | link

Arc hasn't DONE anything big yet.

Not that this is necessarily a bad thing - it's good to take your time thinking about hard problems. I just hope the Arc community doesn't get too pissed off with pg's slow pacing that they go off and create yet another could-have-been-great-but-for-x-y-and-z new lisp dialect.

-----

1 point by Ramir 5690 days ago | link

newLISP's default dynamical scoping fits very neatly among its other daring innovations (and, let me remark, such are wholly in the spirit of Lisp.)

One of those is the notion of a "context". Apart from neatly giving provision for all your lexical scoping needs, it adds the freedom of choice between argument passing by-value (which is default - another idiosyncratic bold feature of newLISP) and by-reference (through contexts). And - again, in line with Lisp's more traditional superiorities - contexts are first-class objects in newLISP.

My initial proposal here was not that newLISP is anyhow better than Arc. It cannot be, for Arc may eventually turn out to be anything; and, after all, this is an Arc forum.

It was, rather, that we should all go and use newLISP, to help Arc's developers learn from an existing complete powerful Lisp that has brought into practice many new design ideas.

-----

2 points by pg 5668 days ago | link

Dynamic scope is not a daring innovation. It is an ancient mistake.

-----

1 point by Ramir 5585 days ago | link

Ah, but of course dynamic scoping is bad for any, any language, whatever the design goals. Everybody knows that since ages ago. <end of my turn to be clever>

My fascination about newLISP was exactly that: "What?! Dynamic scope by default?! ...Oh, but look, they say you can scope lexically & do closures with no fuss... Context as an explicit first-class object? hey, that's an idea, for once."

newLISP indeed has real flaws, - which can be mistaken for mistakes, unless you take into account the exotic design requirement for newLISP: to fit a Swiss-army-knife function library, together with functional and O-O programming support & a stand-alone web server, into a 300kb executable.

We can but guess of the author's intent. My guess is that the built-in distributed computing functionality has something to do with the plan.

-----

1 point by rincewind 5668 days ago | link

If you call it "Context-Oriented Programming", it becomes a great feature :)

http://common-lisp.net/project/closer/contextl.html

-----