Re: Symbol clashes: how to avoid them. Part 2
- From: budden <budden01@xxxxxxxxxx>
- Date: Fri, 31 Oct 2008 11:37:19 -0700 (PDT)
Hi Lars,
Problem is not with Symbolicweb itself. Most of the problems arose
from my attempt to use iterate in Symbolicweb.
I'm afraid what I say might lead to a LOTS of flame, but the problems
are multiple:
- poor design of standard loop, so one would want iterate instead;
E.g., Iterate allows to iterate on sql datasets, systems, children of
sw:container or whatever you want; All you need is to write a driver
consisting of several lines.
- iterate is not ideal too due to that symbol problems. In fact, it
needs redesign to allow keywords to be used for denoting clauses. But
this is not that easy as symbols are used in a special way in an
Iterate. Anyway, suppose I'll make a patch to iterate. Who would use
it? I'll need to promote it and the community says all is ok in the
current state of a lisp (well, it is possible to do things on lisp, in
this sence it is really ok);
- no standard library in lisp (compare that to STL/Boost or to Java
libraries). Anyone tries to add things that are apparently missing
from standard or fix those that are apparently ugly. So there are
multiple loop constructs, for, collecting, etc. When real-world open-
source application is being developed, each new developer comes with
its own habits and tries to import utilities which he find most
useful. It was iterate in my case but might be someone else and
something else. As an other example, I can note that there are at
least two incompatible popular variants of 'with-gensyms over the web.
One is that you use and another is from cllib (yours is better).
- package system is a complete mess (I insist on that whatever true
lispers say)
- every independent expert would say very definitely that a.b.c is
much easier to read that (c-of (b-of a)). Don't even say about (slot-
value (slot-value a 'b) 'c). I showed my lisp sources printed to my
girl-friend (she is a linguist) and I was unable to explain why eight
closing parens go in a row... It was a luck she didn't ask :) Parens
_are__there_ . One might filter them out at "high level" of brain's
OCR/text parser, but eye keep working upon it and neurons get
overheated occasionally... Real lisper's never notice that as there is
a special "sleep" function in a brain which simply turns your mind off
every time your eyes stumble against unnecessary nesting levels with
let/flet/macrolet or (c-of ...). It can be verified in a strict, clear
scientific experiment, but it is so evident that it needs no proof at
all. I know this is one of lisper's dogmas that parens are not there
and syntax does not matter. But (unfortunately for me) I can't
convince myself on that despite all my lisp experience.
Additionally I was disappointed when you told me about parenscript. MP
with code generation from a lisp is an area of my strategic interests
and if the author of parenscript is disappointed with it, it is a
shock for me. Of course, one reason can be easily seen from the same
a.b.c problem: javascript is just much shorter and easier to read. Add
here a possibility to quote strings with either single or double
quotes and... lisp loses despite defmacro (don't forget javaScript has
some MP abilities too).
Finally, I began to think that lisp is NOT a language for a web
development. It might work well as an MP tool or as a server platform,
but some more convinient syntax should be exposed to application
developer. It would be ideally if it could combine adequate syntax
with elegance of AST management and other successful design choices
unique to lisp. Something like Nemerle or even shell. I think such a
language is not too hard to develop using lisp as a platform, and I
have already started some prototype.
What goes to symbolicweb, I think you might want to add some
"symbolicweb-dsl" package, which would reexports most popular symbols
from :sw, :tbnl, :cl-who, etc... And tell a users to use that
symbolicweb-dsl. In fact, when you are combining new system from
several smaller ones, you definitely need to specify how it is
composed for potential users.
Sorry, there are many offtopics...
.
- Follow-Ups:
- Re: Symbol clashes: how to avoid them. Part 2
- From: Lars Rune Nøstdal
- Re: Symbol clashes: how to avoid them. Part 2
- From: Kaz Kylheku
- Re: Symbol clashes: how to avoid them. Part 2
- From: Tamas K Papp
- Re: Symbol clashes: how to avoid them. Part 2
- From: Sacha
- Re: Symbol clashes: how to avoid them. Part 2
- References:
- Re: Symbol clashes: how to avoid them. Part 2
- From: Lars Rune Nøstdal
- Re: Symbol clashes: how to avoid them. Part 2
- Prev by Date: Re: Is it a bad sign...
- Next by Date: Re: How to programmatically exit?
- Previous by thread: Re: Symbol clashes: how to avoid them. Part 2
- Next by thread: Re: Symbol clashes: how to avoid them. Part 2
- Index(es):
Relevant Pages
|