

Dragonfly 0.60 - a newLisp web framework - itistoday
http://www.rundragonfly.com/

======
uggedal
Bad name, already used for a BSD flavor and Opera's debug thingie

------
pchristensen
Note that it's _newLisp_ web framework, not a new Lisp web framework.

------
vdm
When I see 'Dragonfly' on HN, I think of DragonflyBSD.

<http://www.dragonflybsd.org/>

Did you even Google the name?

~~~
itistoday
Yes. The word Dragonfly is used to describe many things, have you Googled it?
It's used by so many companies and projects that qualifying it (DragonflyBSD,
Dragonfly Web Framework, etc.) is practically a requirement.

Why Dragonfly? Because newLISP's clever logo is a Dragonfly made out of
parenthesis:

<http://www.newlisp.org/index.cgi?page=Art>

------
Ixiaus
Cool post, I never new about newLISP before this; just checked out the
language and it looks really cool!

~~~
abstractbill
Beware. It isn't cool. It rehashes some awful mistakes that were made in the
design of early Lisp languages - in particular dynamic scope.

It's a shame, as some effort has clearly been put in to making newLisp
something that people can get up-and-running with very quickly. But with the
language itself being broken, this effort is wasted.

~~~
KazimirMajorinc
In my opinion, dynamic scope is adequate solution for Lisp approach, i.e.
expressive power on the first place. Newlisp is very simple and expressive
dialect, and it is pleasure using it. Dynamic scope allow some things statical
scope doesn't. Sure, the price for that expressive power is that one has to be
more careful, but this is not really that hard, and it shouldn't be the
problem to anyone who really accept basic Lisp ideas.

I can see how dynamic scope - just like dynamic typing, eval or macros - could
be seen as problem for people who want language like, say, Ada that puts
safety on the first place. It is legitimate position. But it is not design
goal or tradition of Lisp. Lisp is designed for AI, exploratory programming,
hacking, expressive power, adventure. Owner of this site, Paul Graham,
frequently wrote in that vein. It is simply not consistent to brag about
expressive power of Lisp, and then turn into safety freak when one mentions
dynamic scope.

OK safety freak is maybe too strong, but you get the point.

~~~
pg
Dynamic scope is a decrease in expressive power. You don't get closures.

~~~
plinkplonk
PG on newLisp a long time ago

"I took a quick look at it. It looked to me as if the way you're supposed to
avoid variable capture is to use variables with unusual names. Is this really
the plan? What about expansions that occur within expansions?"

<http://lambda-the-ultimate.org/node/257#comment-1889>

~~~
KazimirMajorinc
There are few ways out of that:

1\. use of "contexts" i.e. Newlisp namespaces

2\. use of same approach as in CL or Scheme macros. In CL it is automatic
generation of unusual names, gensyms, in Scheme it is even more automatic
"hygiene". Both of these approaches are available in Newlisp as well. One can
check my blog post at: [http://kazimirmajorinc.blogspot.com/2009/12/symbols-
as-sexpr...](http://kazimirmajorinc.blogspot.com/2009/12/symbols-as-
sexprs.html) It is not simple reading if one didn't used dynamic scope, but
essentially it is how one can write hygienic fexprs (Newlisp macros are
actually fexprs).

3\. use of some "OO" additions. I am bit of OO sceptic, but for those who are
not, there are at least two OO systems for Newlisp.

3.1. Official FOOP system, still in development
[http://newlispfanclub.alh.net/forum/viewtopic.php?f=2&t=...](http://newlispfanclub.alh.net/forum/viewtopic.php?f=2&t=3408&start=0)

3.2. Greg's OO system [http://www.taoeffect.com/blog/2009/12/introducing-
objective-...](http://www.taoeffect.com/blog/2009/12/introducing-objective-
newlisp/)

