newLISP now on Graham's list

Notices and updates
HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

newLISP now on Graham's list

Post by HPW »

newLISP has now it's place on Paul Graham list of Lisps:

http://www.paulgraham.com/lisps.html

(He finaly read my mail from some weeks ago)

;-)
Last edited by HPW on Mon Sep 20, 2004 2:21 pm, edited 1 time in total.
Hans-Peter

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

Hans-Peter

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Traffic to newlisp.org was up almost 10 times after the lambda-the-ultimate.org posting. Most of it's members are CL ans Scheme users, some of them seem to be open to new ideas and doing things in a different way in LISP.

Downloads on newlisp.org have exploded too and I also have put links to Sourceforge on newlisp.org to divert some of the download raffic. We have 6 new members here on the board in just one week. I guess that Ryon, who hosts this board, has also seen substantial traffic increase.

Tomorrow newLISP 8.2.0 comes out, the official release to introduce threads (was first in 8.1.6).

This and the coming weeks many colleges start their fall semesters and that always brings new users too.

Lutz

ps: thanks for asking Paul Graham to include newLISP on his list. He is someone proposing changes in LISP and newLISP is a LISP trying to do just that.

newdep
Posts: 2038
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

:-) Nice nice... ;-)
-- (define? (Cornflakes))

pjot
Posts: 733
Joined: Thu Feb 26, 2004 10:19 pm
Location: The Hague, The Netherlands
Contact:

Post by pjot »

Well, I also saw the hits on my site increasing... ;-) they almost all came from the newLisp "libraries" page, sometimes more than 10 per day. I already wondered what caused this, but now I know. A good thing newLisp gets more publicity!

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Norman, even the sales of Cornflakes went up :)

Lutz

newdep
Posts: 2038
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

hahahaha...

well overhere they did for sure.. even my snippets page
has 10 hits a day more now... It boosts ;-)...
-- (define? (Cornflakes))

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

There are more rumors on comp.lang.lisp these days:

lin8080 (lin8080@freenet.de)
wrote:
Well, I love it.

Since version 2.0 I know this nice softpile. It was my first lisp
experience on dos5.0-386/33er box. The turn around version 6.3 (the last
version before win98 gets old) runs also as one *.exe with wine under
linux. The file is only 463kb ... and can move the smile.bmp around the
screen. :)

There is more to say, but test it. The code is Scheme oriented and there
are not very much specials, but it shows, what 'portable can be. You can
look at nuvatec.com, maybe they had the older versions still online.

Worth learning it? Hmmm... when you are tired with all that high level
stuff you will have lots of fun with it. Pscht, this is a secret hint:
there is not much to learn, just copy and paste and modify from the
docus and you can cross high mountains. The designers seem to know how
to spell intuition.

Something other strange I know is plisp, but don't know whether it is
supported.

stefan

Raffael Cavallaro (raffaelcavallaro@junk.mail.me.not.mac.com)
wrote:
> Well, I love it.

I find it amusing 'cause it's good for WTF! style yucks. I would never
trust it for serious work.

For example:

raffaelc$ newlisp
newLISP v.8.1.7 Copyright (c) 2004 Lutz Mueller. All rights reserved.

> (defun factorial (x) (if (< x 2) 1 (* x (factorial (- x 1)))))
(lambda (x)
(if (< x 2)
1
(* x (factorial (- x 1)))))
> (factorial 5) 120
> (dotimes (n 50) (begin (print (factorial n)) (print "\n")))
1
1
2
6
24
120
720
5040
40320
362880
3628800
39916800
479001600
1932053504
1278945280
2004310016
2004189184
-288522240
-898433024
109641728
-2102132736
-1195114496
-522715136
862453760
-775946240
2076180480
-1853882368
1484783616
-1375731712
-1241513984
1409286144
738197504
-2147483648
-2147483648
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
"\n"
>

Hmmm...
So I consulted the manual:

"Calculations which result in values bigger than 2,147,483,647 or
smaller than |2,147,483,648 wraps around from positive to negative or
negative to positive numbers."

I fail to see how this is a step forward for lisp. Though I think it is
appropriately named - sort of like Orwell's newspeak...
Some love it and the other's .....
Hans-Peter

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

He could have just defined it using floating point arithmetik:


(define (factorial x) (if (< x 2) 1 (mul x (factorial (sub x 1)))))

and then it will work just fine.

If he dosn't like the possibility of Integer Arithmetik in a scripting language, he can do:

(constant '+ add)
etc

Lutz

ps: can you forward that to him? Where did this appear?

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

>Where did this appear?

http://groups.google.com/groups?group=comp.lang.lisp

>ps: can you forward that to him? Where did this appear?

I have posted your answer to comp.lang.lisp.
Need some hours to appear there.
Hans-Peter

mrd
Posts: 2
Joined: Thu Sep 23, 2004 7:36 pm

Post by mrd »

Lutz wrote:He could have just defined it using floating point arithmetik:
Lutz, please be a little more sensible. Do not abuse floating point arithmetic like this, it is causing us all to laugh at you. Floating point arithmetic is for INEXACT CALCULATIONS ONLY. Using floating point representation as a stand-in for real numbers is a classic newbie mistake. Floating point has its uses, but none of them include representing arbitrary precision exact integers. The correct solution is to implement proper bignum support just like every other Lisp. While you're at it, do polymorphic arithmetic operations. Having +, -, *, and / only work on machine-sized integers (and no rational type) is lame.


Wikipedia entry on Floating Point Arithmetic

What Every Computer Scientist Should Know About Floating Point Arithmetic

Excalibor
Posts: 47
Joined: Wed May 26, 2004 9:48 am
Location: Madrid, Spain

Post by Excalibor »

mrd wrote: (...) Floating point has its uses, but none of them include representing arbitrary precision exact integers. The correct solution is to implement proper bignum support just like every other Lisp. While you're at it, do polymorphic arithmetic operations. Having +, -, *, and / only work on machine-sized integers (and no rational type) is lame.
While having the complete Scheme's or Common Lisp number tower would be very nice, in practical terms many languages implement BigNum arithmetics via libraries, which take the complexity out of the core of the language/interpreter and move it into user space, where it belongs...

I agree that differentiation between integers and floats in a dynamicallly typed language may be a premature optimization, this is not an interpreter designed for number crunching, thus having BigNums as a library should be more than okay...

Same goes to your comments regarding +, -, etc... newLISP is different to other Lisps, constructive proposals to make it better than it is are welcome by its COmmunity and I'm sure by the creator as well, but there are ways of doing so, for example by offering code... even polite code would serve...

regards,
david

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

I agree with mrd (thanks for the links and welcome to the discussion board) that floating points are for INEXACT CALCULATIONS ONLY, which is one of the reasons newLISP still maintains integer arithmetik (although only 32 bits). I have looked into arbitrary size integer arithmetik, but felt that it is too much overhead to implement in a small scripting language like newLISP.

Pretty much all scripting applications do just fine with 32-bit integers and it is nice to stick to integer arithemtik in some areas of applications.

Moving newLISP to 64bit integers when 64 bit computing becomes mainstream will be easy. That still would not be bignum but a step forward. (Note that the current 'linux64' compile flavor still produces a 32bit newLISP, but running on a 64bit CPU).

People who do bignum application perhaps shouldn't use a scripting language like newLISP. Those bignum applications would probably involve heavy number-crunching which is more suited to do in a compiled language.

Perhaps a nice compromise would be to have bignum library written in 'C' and import it into newLISP which is more or less what David is suggesting. This library then could have other math stuff too, used by people dealing with bignums.

Lutz

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

The echo:

Mario S. Mommer (m_mommer@yahoo.com)
Wrote:
lisp.3.hpw@spamgourmet.com (HPW) writes:
> Reposted from newlisp forum.

Is this for real or are you making this up?

> He could have just defined it using floating point arithmetik:
>
>
> (define (factorial x) (if (< x 2) 1 (mul x (factorial (sub x 1)))))
>
> and then it will work just fine.
>
> If he dosn't like the possibility of Integer Arithmetik in a scripting
> language, he can do:
>
> (constant '+ add)
> etc
>
> Lutz

This is so absurd it is (almost) no longer funny.

Think bignum, man!
So lets stop lisp-language wars and go scripting.
;-)
Hans-Peter

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

New users of newLISP coming from Common Lisp or other Lisps, will naturally try to understand newLISP, using concepts they have learned in Common Lisp, and they try to define newLISP in Common Lisp terms.

I believe that newLISP's concepts are easy enough to be understood on it's own terms.

Lutz

mrd
Posts: 2
Joined: Thu Sep 23, 2004 7:36 pm

Post by mrd »

Lutz wrote: People who do bignum application perhaps shouldn't use a scripting language like newLISP. Those bignum applications would probably involve heavy number-crunching which is more suited to do in a compiled language.
The best CL for bignums is actually CLISP, surprisingly. It is a byte-code interpreter, but it uses extremely fast algorithms. CMUCL does better with FP, though. But CLISP has arbitrary-precision floats, which is unusual (you have to toggle something to get them though).
Lutz wrote: Perhaps a nice compromise would be to have bignum library written in 'C' and import it into newLISP which is more or less what David is suggesting. This library then could have other math stuff too, used by people dealing with bignums.
Then it won't automatically switch between fixnums and bignums. This is extremely convenient. Most other languages are moving towards this feature, not away.

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

I will put bignums on my todo list, but not for the near future. The code-size impact would probably not be big, but I have to explore if it is possible to do it without impacting current functionality speed performance wise. I agree that a fully transparent implementation would be the best, so integer arithmetik would always be bignum if it has too.

Lutz

HPW
Posts: 1390
Joined: Thu Sep 26, 2002 9:15 am
Location: Germany
Contact:

Post by HPW »

Still more laughing:
Von:Raffael Cavallaro (raffaelcavallaro@junk.mail.me.not.mac.com)
Betrifft:Re: Strange LISP: [ http://www.newlisp.org ]

View this article only
Newsgroups:comp.lang.lisp
Datum:2004-09-25 20:51:29 PST

In article <41532A5B.BA6A7707@freenet.de>, lin8080 <lin8080@freenet.de>
wrote:

> Didn't I type ... lots of fun?
>
> stefan

Well, to explain a joke is always to kill it (not that this one had much
life left in it anyway...)

You wrote, "Well, I love it," and "NewLisp is funny and givs me back a
special kind of lispy element." The two, in combination suggest that you
find it funny in the sense of liking and enjoying it.

I wrote "I find it amusing 'cause it's good for WTF! style yucks," which
suggests that I find it funny in the sense of laughing at it because it
is so grotesquely bad. Given the legions of high quality common lisp and
scheme implementations out there, not to mention Dylan and goo, newlisp
is a giant step backwards for the lisp family of languages. If I could,
I would euthanize newlisp for the good of programmers the world over.

Summary: You're laughing *with* newlisp. Most of us are lauging *at* it.
Von:Matthew Danish (mrd+nospam@cmu.edu)
Betrifft:Re: Strange LISP: [ http://www.newlisp.org ]

View this article only
Newsgroups:comp.lang.lisp
Datum:2004-09-27 14:30:06 PST

Mike <mikee@mikee.ath.cx> writes:
> I'm new to LISP. Please explain why newLISP is a farse? For what I'm
> considering it seems to do everything that I want.

A Turing machine can do everything you want, too. That doesn't mean
you want to program that way.

``newLISP'' makes design decisions which Lisp programmers out-grew
long ago. I'm not talking about availability of libraries here, I'm
talking about fundamental concepts in the language. ``newLISP'' does
not have proper lexically scoped variables, it does not have
polymorphic arithmetic functions with a numeric tower, it has an
extremely primitive, and in some cases downright poor, treatment of
objects. In short, ``newLISP'' is an anachronism; it belongs to the
1960s, before most people started to get a clue about language design.

Of course, one can point out flaws in any language; but what is
particularly ironic about ``newLISP'' is that despite its name, it
does not indicate that there was any knowledge of current Lisps in the
minds of the authors. How could they create a truly ``new'' Lisp if
they don't know anything about existing Lisps?

--
;; Matthew Danish -- user: mrd domain: cmu.edu
;; OpenPGP public key: C24B6010 on keyring.debian.org
Keep care that they do not euthanize us!
;-)
Hans-Peter

jsmall
Posts: 26
Joined: Mon Sep 20, 2004 1:44 am

No one kicks a dead dog

Post by jsmall »

If newLisp is such a dog and dead (in the grave long ago)
why kick it?

Several things the detractors miss about newLisp.

1. It's small foot print and convenience. Perhaps they
didn't miss this at all. Perhaps it is admitting "common folk"
to the exclusive Lisp country club that gets their goat
as if we are going to polute the language space. The
open market of ideas will insure the drift wood is carried
out to sea and forgotten.

2. It goes against the Ionian and Pathagorean rationalists
concept of the pure and beautiful, anything practical or
empirical is pedestrian and to be rejected out of hand
including heaven forbid those nasty irrational numbers
like the square root of 2.

3. Lutz is taking an entirely new approach to programming
in Lisp - something I call VO (Value Oriented) in which
he transforms "shapes" into new shapes. A program
becomes literally a sequence of shape transform layers.
This is done with primitives like "ref" and "index" and I
think the detractors totally miss this. This mindset is
what produced the smaller libraries etc. This is what is
"new" in newLisp. This is what gets their goat the most,
i.e. calling it new which in turn is calling them old. I
remember my first encounter with Lisp 20 years ago.
I discounted the language as antiquated with all those
parentheses and lack of strong typing. After all I was
a sophistocated strong type checking Pascaler. That
quick jump to judgment made me waste the best
years of my programming life. It wasn't until about
5 years ago I started my journey through the functional
languages and realized that Lisp had something to offer.
Maybe if these folk look past their distain for dynamic
scoping they can see what is new in newLisp and not
have to wait until the revolution has passed them by.
And as far as the comments go about documentation
well I'd rather Lutz keeps pushing the envelop then
become too distracted with documentation perfection.
Those bring up the rear can worry about that.

Damn the torpedos - full speed ahead!

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Thanks John and Hans-Peter for defending newLISP. Most on this forum know what newLISP is about and are not worried about the kind of posts you sometimes see on comp.lang.lisp.

Users on this forum use newLISP to make programs, solving real world problems. We are not interested in having a language where every concept known in Computer Science is implemented.

That does not mean that these problems are not interesting, but they are not the primary focus of newLISP. From this point of view the simplicity of newLISP is a virtue not a disadvantage.

Many users on this forums have used standard Common Lisp or Scheme but have decided to use newLISP because they want to concentrate on the programming problem at hand and not on the theory of certain language features.

newLISP's simplified and streamlined LISP model make it easier to learn and understand and make it easier to understand code written in it.

I recommend going to http://shootout.alioth.debian.org/ and compare different LISPs and other languages, how they solve certain computing problems and how they use computing resources like CPU cycles or memory. A copy of all the speed benchmarks for Perl, Python, Guile and newLISP is on the newlisp.org site at: http://newlisp.org/benchmarks/ .

Lutz

BrickCaster
Posts: 18
Joined: Fri Jun 25, 2004 10:57 pm

Post by BrickCaster »

i think newLISP is good because it is an alternative.

* can you live without closures ?
* can you live without classes (and use prototypes instead) ?
* can you live without continuations ?

if the answer is "yes" then newLISP is a serious candidate.
otherwise one may be happier with Scheme.

anyway, i don't see why newLISP should be bashed.
someone who devotes time and efforts should always be praised.

Lutz
Posts: 5289
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

* can you live without closures ?

A context in newLISP is a lexical closure

* can you live without classes (and use prototypes instead) ?

Absolutely, and so do many others in 'Python' or in research languages like 'Self'. In fact it seems that newer languages seem to prefer the prototype based approach and see it as the better soution of OO programming.

* can you live without continuations ?

newLISP has everything to program a type of continuation, if you want to, i.e. 'catch' and 'throw'

But those three questions are all not relevant, they are the wrong questions. The real question is:

Can newLISP be used to write your program or application or script? Most users on this board proove they can, and they produce shorter and faster solutions than with other tools.

Just let your mind come out of the box, fire up newLISP and do some creative work, solve real problems.

Lutz

Jeremy Dunn
Posts: 95
Joined: Wed Oct 13, 2004 8:02 pm
Location: Bellingham WA

Post by Jeremy Dunn »

I find the complaint about the factorial function a little ridiculous. For most normal situations it is probably more efficient to have the function look up a precalculated value from a table rather than brute force it every time. How high do we need to go, factorial 200? Use Sterling's formula for an approximate value or code your problem in Mathematica if you are trying to some weird number theory thing. Yes it would be fun to have bignums integrated but give Lutz some time, Perl didn't start out perfect either.

nigelbrown
Posts: 429
Joined: Tue Nov 11, 2003 2:11 am
Location: Brisbane, Australia

Post by nigelbrown »

Automatically throwing a system into bignum mode seems to be giving a false sense of security to those who haven't thought about the numerical side of their programming. It can be of value in number theory etc to have bignum but a more thorough approach to planning your calculations is probably a better step most times.
Nigel

Qrczak
Posts: 12
Joined: Fri Oct 01, 2004 8:46 am
Location: Warszawa

Post by Qrczak »

nigelbrown wrote:Automatically throwing a system into bignum mode seems to be giving a false sense of security to those who haven't thought about the numerical side of their programming.
Oh, really? I have a file of size of 10GB. newLisp's file-info function returns nil for it. Could this be fixed? For example Python has no problem with delivering the correct result.

So you are saying that letting it "just work" in the language would be bad, and it's the fault of the script writer who hasn't thought that files may be that big. Ok, let's assume that he is aware of that. What can he do?

Locked