Hello fellow Lispers,
Inspired by the latest debates with Steve Yegge and Ron Garret and by
recently finding newlisp, I've posted an article that tries to
summarize the pros and cons of newlisp, in itself and in comparison
with the other Lisp dialects, like Common Lisp:
http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
My goal is truly to build an _objective_ set of facts in favor of and
against newlisp, from CL's point of view. This is for myself as well as
for others, to serve as a future point of comparison. I hope it won't
be perceived as an attempt to flame :-)
Eli
"Eli Bendersky" <······@gmail.com> writes:
> Hello fellow Lispers,
>
> Inspired by the latest debates with Steve Yegge and Ron Garret and by
> recently finding newlisp, I've posted an article that tries to
> summarize the pros and cons of newlisp, in itself and in comparison
> with the other Lisp dialects, like Common Lisp:
>
> http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
>
> My goal is truly to build an _objective_ set of facts in favor of and
> against newlisp, from CL's point of view. This is for myself as well as
> for others, to serve as a future point of comparison. I hope it won't
> be perceived as an attempt to flame :-)
Here are already 43 usenet posts about newlisp from CL's point of view:
http://groups.google.com/groups?as_q=newlisp&num=10&scoring=r&hl=en&as_epq=&as_oq=&as_eq=&as_ugroup=comp.lang.lisp&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=20&as_maxm=4&as_maxy=2006&safe=off
If you will, read them and post a summary, we'll see if we have anything to add.
--
__Pascal Bourguignon__ http://www.informatimago.com/
"This statement is false." In Lisp: (defun Q () (eq nil (Q)))
> > Hello fellow Lispers,
> >
> > Inspired by the latest debates with Steve Yegge and Ron Garret and by
> > recently finding newlisp, I've posted an article that tries to
> > summarize the pros and cons of newlisp, in itself and in comparison
> > with the other Lisp dialects, like Common Lisp:
> >
> > http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
> >
> > My goal is truly to build an _objective_ set of facts in favor of and
> > against newlisp, from CL's point of view. This is for myself as well as
> > for others, to serve as a future point of comparison. I hope it won't
> > be perceived as an attempt to flame :-)
>
> Here are already 43 usenet posts about newlisp from CL's point of view:
>
> http://groups.google.com/groups?as_q=newlisp&num=10&scoring=r&hl=en&as_epq=&as_oq=&as_eq=&as_ugroup=comp.lang.lisp&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=20&as_maxm=4&as_maxy=2006&safe=off
>
> If you will, read them and post a summary, we'll see if we have anything to add.
>
Pascal, in some sense my post *is* a summary of what I found on this
group, plus some posts in Lambda the Ultimate, plus some discussions in
newlisp's forum. So if you have anything to add, by all means please
do.
Eli
Eli Bendersky wrote:
>>>Hello fellow Lispers,
>>>
>>>Inspired by the latest debates with Steve Yegge and Ron Garret and by
>>>recently finding newlisp, I've posted an article that tries to
>>>summarize the pros and cons of newlisp, in itself and in comparison
>>>with the other Lisp dialects, like Common Lisp:
>>>
>>>http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
>>>
>>>My goal is truly to build an _objective_ set of facts in favor of and
>>>against newlisp, from CL's point of view. This is for myself as well as
>>>for others, to serve as a future point of comparison. I hope it won't
>>>be perceived as an attempt to flame :-)
>>
>>Here are already 43 usenet posts about newlisp from CL's point of view:
>>
>>http://groups.google.com/groups?as_q=newlisp&num=10&scoring=r&hl=en&as_epq=&as_oq=&as_eq=&as_ugroup=comp.lang.lisp&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=20&as_maxm=4&as_maxy=2006&safe=off
>>
>>If you will, read them and post a summary, we'll see if we have anything to add.
>>
>
>
> Pascal, in some sense my post *is* a summary of what I found on this
> group, plus some posts in Lambda the Ultimate, plus some discussions in
> newlisp's forum. So if you have anything to add, by all means please
> do.
You forgot one disadvantage: the documentation. To me quality
documentation makes me trust the developers. On the other hand
if the documentation is sloppy, then presumably the product
is just as sloppy.
At
<http://lambda-the-ultimate.org/node/257>
I wrote this on NewLisp:
Quality of Documentation
------------------------
I have a tedency to judge implementations by the quality of the
documentation. If the quality of the documentation is high, then with
high probability the quality of the implementation is also high.
Switching languages (or even implementations) require some effort, and
to make that effort as small as possible, one needs to trust the
documentation.
Examining some of the fundamental operations often reveal much. As a
random example, let's take the entry on begin:
syntax: (begin body)
The begin form is used to group a block of
expressions. The expressions in body are
evaluated. The value of the last expression of
body is returned.
This isn't too bad - but I do find it somewhat perculiar that they don't
mention the order in which the expressions in the body are evaluated.
Another fundemental operator is quote:
syntax: (quote exp)
exp is returned without being evaluated, as if
quoted. Note that before version 6.5.23 quote
evaluated exp first. The current new behavior is
consistent with Scheme and Common Lisp.
I am glad I already know what quote does.
--
Jens Axel S�gaard
<http://www.scheme.dk/blog/2006/04/mini-kanren-and-da-vinci-challenge.html>
> You forgot one disadvantage: the documentation. To me quality
> documentation makes me trust the developers. On the other hand
> if the documentation is sloppy, then presumably the product
> is just as sloppy.
>
> At
>
Jens,
I completely agree that the level of the documentation sheds some light
on the level of the tool itself. However, understanding documentation
is a subjective trait. Truly, I found newlisp's documentation well
organized and clear. After reading the short overview of the language,
it is simple to understand the reference.
By the way, as I mentioned, newlisp is a moving target - it
continuously improves. Both examples you provided for documentation you
don't like were expanded with examples which IMHO clarify their use.
Again, my general impression with newlisp's documentation is good, and
really I have seen no complaints about it in the forums. So if this is
your ownly reservation from trying the language, do reconsider :-)
Eli
Eli Bendersky wrote:
>>You forgot one disadvantage: the documentation. To me quality
>>documentation makes me trust the developers. On the other hand
>>if the documentation is sloppy, then presumably the product
>>is just as sloppy.
>
> Jens,
>
> I completely agree that the level of the documentation sheds some light
> on the level of the tool itself. However, understanding documentation
> is a subjective trait. Truly, I found newlisp's documentation well
> organized and clear. After reading the short overview of the language,
> it is simple to understand the reference.
>
> By the way, as I mentioned, newlisp is a moving target - it
> continuously improves. Both examples you provided for documentation you
> don't like were expanded with examples which IMHO clarify their use.
Sorry - It wasn't fair not to check the new documentation.
quote
syntax: (quote exp)
exp is returned without being evaluated, as if quoted.
example:
(quote x) => x
(quote 123) => 123
(quote (a b c)) => (a b c)
(= (quote x) 'x) => true
The example does help. I still find the "as if quoted" peculiar.
I fell over the next entry:
quote?
syntax: (quote? exp)
exp is evaluated and tested if quoted. true or nil is returned
depending on the result.
Does this mean "Reurns true if exp evaluates to a list whose first
element is the symbol quote"?
I also mentioned begin:
begin
syntax: (begin body)
The begin form is used to group a block of expressions. The
expressions in body are evaluated. The value of the last expression of
body is returned.
example:
(begin
(print "This is a block of 2 expressions\n")
(print "================================"))
Some built-in functions like cond, define, dolist, dotimes and while
already allow multiple expressions in their body sections, but begin
is often used in if.
See also silent, which works like begin but suppresses console output
on return.
I still see no mentioning of the order of evaluation.
> Again, my general impression with newlisp's documentation is good, and
> really I have seen no complaints about it in the forums. So if this is
> your ownly reservation from trying the language, do reconsider :-)
I like your choice of functions to include. But still haven't understood
what newLisp brings to the table that neccessitated a new language.
I have a few other questions:
count
syntax: (count list-1 list-2)
Counts elements of list-1 in list-2 and returns a list of those
counts.
[examples cut]
Which equality function is used to compare the elements?
Which generator is used to implement random and friends?
In general I miss descriptions of what happens in error situations,
e.g.
invert
syntax: (invert matrix)
Returns the inversion of a two dimensional matrix in matrix. The
matrix must be square with the same number of rows and columns and
non-singular (invertible). Matrix inversion can be used to solve
systems of linear equations, for example, multiple regression in
statistics. newLISP uses LU-decomposition of the matrix to find the
inverse.
example:
(set 'A '((-1 1 1) (1 4 -5) (1 -2 0)))
(invert A) => ((10 2 9) (5 1 4) (6 1 5))
See also the matrix functions transpose and multiply.
What happens if I give invert a non-invertible matrix?
--
Jens Axel S�gaard
In article <·························@dread12.news.tele.dk>,
=?ISO-8859-1?Q?Jens_Axel_S=F8gaard?= <······@soegaard.net> wrote:
>You forgot one disadvantage: the documentation. To me quality
>documentation makes me trust the developers. On the other hand
>if the documentation is sloppy, then presumably the product
>is just as sloppy.
But the Common Lisp hyperspec works as really rather good
documentation for Lisp; at least, I'm learning using that as my main
reference, and find I don't care what the developers of individual
Lisps are providing in the way of documentation.
At least, I'd be looking at the individual-Lisp-documentation for its
unique features, rather than for its description of what (loop) or
(quote) do.
Tom
Pascal Bourguignon wrote:
>
> Here are already 43 usenet posts about newlisp from CL's point of view:
>
> http://groups.google.com/groups?as_q=newlisp&num=10&scoring=r&hl=en&as_epq=&as_oq=&as_eq=&as_ugroup=comp.lang.lisp&as_usubject=&as_uauthors=&lr=&as_drrb=q&as_qdr=&as_mind=1&as_minm=1&as_miny=1981&as_maxd=20&as_maxm=4&as_maxy=2006&safe=off
>
> If you will, read them and post a summary, we'll see if we have anything to add.
>
Wow! How do you summarize that hodge-podge of reactions! :-)
Personally, I use newLISP in places where I might use something like
Python. It is a very handy language in that regard. It is not a
Common Lisp or a *better* or *newer* Lisp, as people inexplicably
think. I use CL and other languages for other projects for which I
think they are better suited.
Some CLers (not you, Pascal) seem to have such a seemingly unhealthly
superiority complex that they start to read claims into the simple
mention of the moniker 'newLISP'. To those people, all I have to say
is "newLISP, newLISP, newLISP, newLISP, newLISP!!!" He, he, he. I can
see you now popping a blood vessel or two. :-)
But seriously, I'd like to thank Eli for making an honest and
constructive attempt to discuss and evaluate newLISP and encouraging
CLers on c.l.l. to help do the same.
Eli Bendersky wrote:
> Hello fellow Lispers,
>
> Inspired by the latest debates with Steve Yegge and Ron Garret and by
> recently finding newlisp, I've posted an article that tries to
> summarize the pros and cons of newlisp, in itself and in comparison
> with the other Lisp dialects, like Common Lisp:
>
> http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
>
> My goal is truly to build an _objective_ set of facts in favor of and
> against newlisp, from CL's point of view. This is for myself as well as
> for others, to serve as a future point of comparison. I hope it won't
> be perceived as an attempt to flame :-)
Your first point is very unfortunate in that regard. See my comment on
your blog.
It also seems somewhat accidental that you have chosen newlisp. There
are dozens of other Lisp implementations out there, not counting the
numerous Scheme implementations. What's your point?
Pascal
--
3rd European Lisp Workshop
July 3-4 - Nantes, France - co-located with ECOOP 2006
http://lisp-ecoop06.bknr.net/
Pascal Costanza wrote:
> Eli Bendersky wrote:
> > Hello fellow Lispers,
> >
> > Inspired by the latest debates with Steve Yegge and Ron Garret and by
> > recently finding newlisp, I've posted an article that tries to
> > summarize the pros and cons of newlisp, in itself and in comparison
> > with the other Lisp dialects, like Common Lisp:
> >
> > http://eli.thegreenplace.net/2006/04/20/newlisp-an-intriguing-dialect-of-lisp/
> >
> > My goal is truly to build an _objective_ set of facts in favor of and
> > against newlisp, from CL's point of view. This is for myself as well as
> > for others, to serve as a future point of comparison. I hope it won't
> > be perceived as an attempt to flame :-)
>
> Your first point is very unfortunate in that regard. See my comment on
> your blog.
Thanks for the detailed commen - I will address it.
>
> It also seems somewhat accidental that you have chosen newlisp. There
> are dozens of other Lisp implementations out there, not counting the
> numerous Scheme implementations. What's your point?
>
You're right - my choice of newlisp is indeed accidental - I just saw a
language that looks promising, at least on first sight.
My point is creating an objective comparison, summarizing the cons and
pros, creating a place where people can in a single read understand how
newlisp is different, and whether it's worth learning.
Eli