Hacker News new | past | comments | ask | show | jobs | submit login

Maybe You should newLISP (www.newlisp.org) give a try. I'm using it for my CLI programs (like Dropbox background syncing, web scraping). newLISP scripts can be linked to portable executables :-)

See here: http://www.newlisp.org/downloads/newlisp_manual.html#linking




The only thing I heard about (I think, don't remember that well) newLISP was a statement that the language lacks lexical scoping because the author didn't know how to implement it.

Is it true (I mean dynamic scoping)? If so, why was the choice to exclude lexical scoping made? Is it practical to write a bit larger apps/scripts in newLISP?


IIRC the author wanted simplicity was the reason invoked by the author. Newlisp has dynamic scoping and contexts (namespaces), in which you get lexical scoping, plus other features. For instance when you want to close some function over some variable, one creates a new function by expanding the free variables inside the existing function (or lambda), to their local value at runtime. Which shouldn't be too much expensive if used in a smart way, I guess. This might be a bit weird, this and the Only One Reference (ORO) memory management strategy, but Newlisp executable is very small with regards to the craptons of functions that are included in the core. I could make it on a low-end 32bits micro-controller, where few interpreters can pretend to run at acceptable speeds and/or fit (a couple MB of flash space). The context and ORO thingies may be use in conjunction to use what they call "FOOP", for functional object oriented programming. The association of both paradigms, in theory, should let users scale to larger applications, assuming they can grok it.


Dynamic scoping is true. But I've never encountered any problems in my large newLISP projects, because I'm working in small modules (newLISP calls it Context).

Like a Scheme closure a newLISP context is a lexically closed space.

See here for a short introduction to Contexts http://en.wikibooks.org/wiki/Introduction_to_newLISP/Context...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: