From: Rainer Joswig on
In article
<7a360a2d-c283-41d4-a4f5-40c176fb4d12(a)a70g2000hsh.googlegroups.com>,
viper-2 <visionat(a)mail.infochan.com> wrote:

> On May 6, 12:14 pm, Didier Verna <did...(a)xemacs.org> wrote:
> > viper-2 <visio...(a)mail.infochan.com> wrote:
> > > On May 6, 3:57 am, Didier Verna <did...(a)xemacs.org> wrote:
> >
> >
> > You have got to be kidding me. I don't see how being dynamically
> > scoped by default helps you in any way (even in a self-blah-blah editor
> > in which user options could simply be defined in terms of CL's
> > defparameter). I don't see how not having lexical scope helps you in any
> > way either.
>
> Remember that Elisp (a variant of MacLisp) preceded Common Lisp, hence
> no CLOS.

Well, RMS worked on the Lisp Machine. He even wrote manuals for it.
He wrote for example the Zmail manual
and co-wrote the Window System Manual. He knew the system very well.
Including Flavors, the object system. He himself wrote an
object-system before there was Flavors. Lisp Machine Lisp was
dynamically scoped with some support for closures.
There was more experience with dynamically scoped Lisps at that time.

> The reasons for the use of dynamic scoping have to do with
> the design decisions RMS made at the time he decided to rewrite his
> TECO based EMACS. I believe (but I could be wrong here) that at the
> time, Steele's and Sussman's Scheme project performed poorly with
> lexical scoping. Dynamic scoping was thought to be more efficient; see
> http://www.gnu.org/software/emacs/emacs-paper.html#SEC17.

Well, the language Elisp could have been changed - if lexical scope
or an object system had been important to the language users.

> >
> > BTW, what exactly do you mean by "customize and extend [...]" ?
>
> I quoted this from the GNU EMACS Manual http://www.gnu.org/software/emacs/manual/html_mono/emacs.html.
>
> That is how EMACS is commonly referred to by its devotees. Maybe
> someone else would clue you in? I'd like to go into more detail, but
> I'm completely tied up right now with my law project - the ICC and
> suppression of a complaint ( reference Nos. OTP-CR-313/04 and 113-07/
> VZ/OO) against the University of Aberdeen (Scotland) for the crime of
> apartheid. :-(
>
> I would much prefer to spend my time with mathematics, engineering,
> and Lisp.
>
> agt

--
http://lispm.dyndns.org/
From: Pascal J. Bourguignon on
viper-2 <visionat(a)mail.infochan.com> writes:

> On May 6, 12:14 pm, Didier Verna <did...(a)xemacs.org> wrote:
>> viper-2 <visio...(a)mail.infochan.com> wrote:
>> > On May 6, 3:57 am, Didier Verna <did...(a)xemacs.org> wrote:
>>
>>
>> You have got to be kidding me. I don't see how being dynamically
>> scoped by default helps you in any way (even in a self-blah-blah editor
>> in which user options could simply be defined in terms of CL's
>> defparameter). I don't see how not having lexical scope helps you in any
>> way either.
>
> Remember that Elisp (a variant of MacLisp) preceded Common Lisp, hence
> no CLOS.

However, there are libraries. For example, eieio implements CLOS
http://cedet.sourceforge.net/eieio.shtml

(with some differences, of course:
http://cedet.sourceforge.net/info/eieio.html#SEC6
)


--
__Pascal Bourguignon__
From: Pascal J. Bourguignon on
Didier Verna <didier(a)lrde.epita.fr> writes:

> viper-2 <visionat(a)mail.infochan.com> wrote:
>
>> Remember that Elisp (a variant of MacLisp) preceded Common Lisp, hence
>> no CLOS. [...]
>
> I know all that. History doesn't change the fact that elisp is a
> really poor dialect of Lisp.
>
>
>>> BTW, what exactly do you mean by "customize and extend [...]" ?
>>
>> I quoted this from the GNU EMACS Manual
>> http://www.gnu.org/software/emacs/manual/html_mono/emacs.html.
>>
>> That is how EMACS is commonly referred to by its devotees. Maybe
>> someone else would clue you in?
>
> Ha ha :-) Like I said, for (most) people thinking that "customizing
> and extending" their favorite editor merely boils down to hacking their
> .emacs, yes elisp is probably fine. elisp is *not* fine for writing 30%
> of the program itself, or a general purpose mailer/newser...

In the case of GNU emacs, lisp sources represent 75% of the lines, 78%
of the characters, (taking into account only .el, .h and .c files).

[pjb(a)simias emacs-22.1]$ find . -name \*.\[hc] -exec cat {} \; | wc ; find . -name \*.el -exec cat {} \; | wc
396223 1509839 11483825
1163546 4639410 41193794

And of course, this is without considering the add-ons.

[pjb(a)simias emacs-22.1]$ cd /usr/share/emacs/site-lisp/
[pjb(a)simias site-lisp]$ find . -name \*.\[hc] -exec cat {} \; | wc ; find . -name \*.el -exec cat {} \; | wc
210 566 3823
1315561 5358721 49378935

A fully loaded GNU emacs image will come from at least 89% of emacs lisp
source characters.

And yes, this include several MUAs entirely written in emacs lisp, so
if it's not fine to do that, at least it doesn't discourrage emacs
lisp programmers...

--
__Pascal Bourguignon__
From: Didier Verna on
pjb(a)informatimago.com (Pascal J. Bourguignon) wrote:

> viper-2 <visionat(a)mail.infochan.com> writes:
>>
>> Remember that Elisp (a variant of MacLisp) preceded Common Lisp,
>> hence no CLOS.
>
> However, there are libraries. For example, eieio implements CLOS
> http://cedet.sourceforge.net/eieio.shtml

Yup. I don't remember exactly when eieio came out, but the point is,
given the amount of already existing elisp code, both in the editors
themselves and in external libraries, the time and energy required to
rewrite the whole stuff in a better way would be tremendous...

Not to mention that every time I express the wish to rewrite XEmacs in
CL, some of the other guys jump at me and express their wish to rewrite
it in Scheme ;-)

--
5th European Lisp Workshop at ECOOP 2008, July 7: http://elw.bknr.net/2008/

Didier Verna, didier(a)lrde.epita.fr, http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (0)1 44 08 01 85
94276 Le Kremlin-Bic�tre, France Fax.+33 (0)1 53 14 59 22 didier(a)xemacs.org
From: Didier Verna on
pjb(a)informatimago.com (Pascal J. Bourguignon) wrote:

> And yes, this include several MUAs entirely written in emacs lisp, so
> if it's not fine to do that, at least it doesn't discourrage emacs
> lisp programmers...

Right :-) You can always knock in a nail with a screw driver. You just
wish you had a hammer ;-)

But to be really fair, once you get a hammer, it doesn't mean you know
how to use it properly. So part of the problem we have today is also due
to extremely bad design and ugly code in most elisp lines out there.

So on the one hand, we have elisp code, mostly a collection of crappy
hacks on top of each other, but it works... and I'm really wondering, if
a standard elisp object system had existed in the first place, would the
original programmers have been skilled enough to use it and design their
stuff properly ?

On the other hand, we have XEmacs code base, which is very well designed
and abstracted, OO actually[1], but it is written in C with a bunch of ugly
macrology on top because it is rather hard to object-orient plain C code...

Life is hard :-)


Footnotes:
[1] That's the Second Big XEmacs Existential Question. I wish the
codebase were rewritten in C++, but the Schemers "object" to that (ha
ha, didn't actually mean it to turn out as a joke :-)

--
5th European Lisp Workshop at ECOOP 2008, July 7: http://elw.bknr.net/2008/

Didier Verna, didier(a)lrde.epita.fr, http://www.lrde.epita.fr/~didier

EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (0)1 44 08 01 85
94276 Le Kremlin-Bic�tre, France Fax.+33 (0)1 53 14 59 22 didier(a)xemacs.org