From: Drew Adams <drew.adams@oracle.com>
To: Christopher Dimech <dimech@gmx.com>, Jeremy Bryant <jb@jeremybryant.net>
Cc: Eli Zaretskii <eliz@gnu.org>,
"emacs-devel@gnu.org" <emacs-devel@gnu.org>,
"rms@gnu.org" <rms@gnu.org>
Subject: RE: [External] : Emacs website, Lisp, and other
Date: Tue, 6 Aug 2024 20:35:45 +0000 [thread overview]
Message-ID: <BLAPR10MB5219692C7A9F536BCA442ABDF3BF2@BLAPR10MB5219.namprd10.prod.outlook.com> (raw)
In-Reply-To: <trinity-095d4d25-5510-4167-81eb-124105b9eaf2-1722973850111@3c-app-mailcom-bs08>
> A balanced documentation example would be:
>
> Emacs Lisp (Elisp) is a dialect of the Lisp
> programming language, chosen by Richard Stallman
> for its flexibility and his familiarity with it...
>
> While Elisp's power and versatility make it
> well-suited for writing editing commands, it's
> important to recognize that different languages
> have their own strengths and may be better suited
> for other specific tasks.
>
> This approach provides necessary background
> information without making exaggerated claims,
> reducing the likelihood of sparking heated debates
> among users.
While I agree with general advice to avoid inflated
language / hyperbole, IMO that description is not
only too subdued, it misses the reasons why Elisp
is important for Emacs:
> Lisp programming language, chosen by Richard
> Stallman for its flexibility and his familiarity
> with it
Flexibility: Certainly, but without some support
that's just a weasel word - unhelpful, near
meaningless.
And RMS didn't choose Lisp because it was what he
was familiar with. There's a little more to it -
and to Lisp - than you suggest there. RMS has,
himself, written about it. You can take him at his
1981 word about why Lisp is important for Emacs.
https://www.gnu.org/software/emacs/emacs-paper.html
Comprehension of the user's program reaches its
greatest heights for Lisp programs, because the
simplicity of Lisp syntax makes intelligent
editing operations easier to implement, while
the complexity of other languages discourages
their users from implementing similar operations
for them. In fact, EMACS offers most of the same
facilities as editors such as the Interlisp editor
which operate on list structure, but combined with
display editing. The simple syntax of Lisp,
together with the powerful editing features made
possible by that simple syntax, add up to a more
convenient programming system than is practical
with other languages. Lisp and extensible editors
are made for each other, in this way. We will see
below that this is not the only way...
An on-line extensible system must be able to accept
and then execute new code while it is running.
This eliminates most popular programming languages
except Lisp, APL and Snobol. At the same time,
Lisp's interpreter and its ability to treat
functions as data are exactly what we need...
A PASCAL or PL/I implementation which uses an
interpreter, and allows the user program to access
the interpreter data structures sufficiently, could
be used just as a Lisp implementation would be used.
However, such implementations are very rare, because
these languages are not designed for them. If the
implementor appreciates the importance of the
interpreter, and of treating functions as data, he
will usually choose to implement Lisp...
When a language is used for implementing extensible
systems, certain control structure and data
structure features become vital:
* Global Variables...
* Dynamic Binding...
* Variables Local to a File...
* Hooks...
* User handling of errors...
* Non-Local Control Transfer...
The traditional attitude towards Lisp holds that
it is useful only for esoteric amusements and
Artificial Intelligence... The special properties
of Lisp, which make extensibility possible, are
a key feature, even though many of the users will
not be programmers.
tl;dr:
"Lisp and extensible editors are made for each other"
Sure, that was 43 years ago. But still germane.
> it's important to recognize that different
> languages have their own strengths and may be
> better suited for other specific tasks.
What's the point of saying that in the context for
which you suggest it?
next prev parent reply other threads:[~2024-08-06 20:35 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-04 22:27 Emacs website, Lisp, and other Jeremy Bryant
2024-08-04 22:55 ` Emanuel Berg
2024-08-05 4:29 ` Emanuel Berg
2024-08-05 9:23 ` Christopher Dimech
2024-08-05 10:43 ` Emanuel Berg
2024-08-05 11:37 ` divya
2024-08-05 11:56 ` Christopher Dimech
2024-08-05 12:33 ` Eli Zaretskii
2024-08-05 11:45 ` Christopher Dimech
2024-08-05 12:56 ` Dr. Arne Babenhauserheide
2024-08-05 13:16 ` Dr. Arne Babenhauserheide
2024-08-05 14:46 ` Christopher Dimech
2024-08-05 21:28 ` Dr. Arne Babenhauserheide
2024-08-05 14:55 ` Eli Zaretskii
2024-08-05 12:28 ` Eli Zaretskii
2024-08-05 16:27 ` 10 problems with Elisp, part 10 (was: Re: Emacs website, Lisp, and other) Emanuel Berg
2024-08-05 16:38 ` Eli Zaretskii
2024-08-05 17:03 ` Emanuel Berg
2024-08-05 18:32 ` 10 problems with Elisp, part 10 Dr. Arne Babenhauserheide
2024-08-05 20:20 ` Emanuel Berg
2024-08-06 7:14 ` Dr. Arne Babenhauserheide
2024-08-06 7:21 ` Org mode API (was: 10 problems with Elisp, part 10) Ihor Radchenko
2024-08-06 8:23 ` Org mode API Dr. Arne Babenhauserheide
2024-08-10 16:55 ` Ihor Radchenko
2024-08-06 11:54 ` 10 problems with Elisp, part 10 Eli Zaretskii
2024-08-08 2:01 ` Richard Stallman
2024-08-09 22:39 ` Emanuel Berg
2024-08-13 1:28 ` Richard Stallman
2024-08-09 22:46 ` Emanuel Berg
2024-08-10 5:41 ` Emanuel Berg
2024-08-10 6:09 ` Eli Zaretskii
2024-08-13 1:28 ` Richard Stallman
2024-08-05 18:58 ` 10 problems with Elisp, part 10 (was: Re: Emacs website, Lisp, and other) Christopher Dimech
2024-08-05 19:30 ` 10 problems with Elisp, part 10 Dr. Arne Babenhauserheide
2024-08-05 20:02 ` Christopher Dimech
2024-08-08 2:01 ` Richard Stallman
2024-08-06 2:28 ` Eli Zaretskii
2024-08-05 17:13 ` 10 problems with Elisp, part 10 (was: Re: Emacs website, Lisp, and other) Yuri Khan
2024-08-06 6:39 ` Emanuel Berg
2024-08-06 11:16 ` Richard Stallman
2024-08-06 22:08 ` Emanuel Berg
2024-08-05 11:56 ` Emacs website, Lisp, and other Eli Zaretskii
2024-08-06 19:09 ` Jeremy Bryant
2024-08-06 19:50 ` Christopher Dimech
2024-08-06 20:35 ` Drew Adams [this message]
2024-08-06 22:10 ` [External] : " Dr. Arne Babenhauserheide
2024-08-06 22:48 ` Christopher Dimech
2024-08-06 23:09 ` Drew Adams
2024-08-06 23:21 ` Christopher Dimech
2024-08-07 1:09 ` Dr. Arne Babenhauserheide
2024-08-06 22:26 ` Christopher Dimech
2024-08-07 5:45 ` Emanuel Berg
2024-08-15 3:53 ` Madhu
2024-08-15 5:50 ` Emanuel Berg
2024-08-15 9:17 ` Madhu
2024-08-15 9:57 ` Emanuel Berg
2024-08-15 6:17 ` Emanuel Berg
2024-08-15 7:10 ` Eli Zaretskii
2024-08-15 8:06 ` Emanuel Berg
2024-08-15 9:27 ` Emanuel Berg
2024-08-15 16:03 ` Emanuel Berg
2024-08-07 11:13 ` Eli Zaretskii
2024-08-07 12:03 ` Andrea Corallo
2024-08-07 12:16 ` Christopher Dimech
2024-08-08 2:01 ` Richard Stallman
2024-08-08 6:51 ` Joel Reicher
2024-08-07 12:31 ` Christopher Dimech
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BLAPR10MB5219692C7A9F536BCA442ABDF3BF2@BLAPR10MB5219.namprd10.prod.outlook.com \
--to=drew.adams@oracle.com \
--cc=dimech@gmx.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=jb@jeremybryant.net \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).