LWN.net Logo

newLISP

newLISP

Posted Feb 17, 2011 23:28 UTC (Thu) by mhw (guest, #13931)
In reply to: newLISP by roskegg
Parent article: GNU Guile 2.0.0 released

And everything Guile does, newLISP does.

I will try to be polite, but this is an extremely ignorant statement. Guile has many features which newLISP lacks. To give just a few examples: modern hygienic macros, first-class continuations, composable continuations, an extensible compiler system allowing new languages to be added easily, a far more powerful object-oriented programming system with multi-method dispatch based on a real meta-object protocol, a full numeric tower including arbitrary-precision integers and exact rationals, proper support for tail calls without using stack space. And that's just what I could discover in about 5 minutes of research.

Now, I have nothing against newLISP. I'm sure it's well-suited to many tasks, but please don't make ignorant claims that it does everything that Guile does.


(Log in to post comments)

newLISP

Posted Apr 18, 2012 19:37 UTC (Wed) by roskegg (subscriber, #105) [Link]

I said "does", not "has". True, newLISP, by design, lacks many of Guile's language features. But when it comes to buckling down and getting stuff done, newLISP does indeed "do" anything that Guile can do. Often much more simply.

Compilers? Who needs them. We have a linker that can create a "binary" blob that you can drop in place and run. Close enough.

Multi method dispatch? Our OO system (FOOP) does what we need it to. OO is an often over-used and overrated paradigm.

Hygeinic macros? They just tie you down. Yuck. First class and composable continuations? If you need them, you can implement them in a few lines of newLISP. Most people don't.

Full numeric tower? We use the Gnu GMP library when we need big numbers. Otherwise, we keep it close to the machine, just like C. floats and ints and chars. Saves cpu cycles, and let's me enjoy all the bit-banging fun I had back in my Assembly programming days.

Tail calls would be nice, but I really haven't missed them. The iteration primitives are well done, and tail calls can always be implemented with iteration, if speed turns out to be an issue.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds