all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: arne_bab@web.de, emacs-devel@gnu.org
Subject: Re: 10 problems with Elisp, part 10
Date: Wed, 07 Aug 2024 22:01:19 -0400	[thread overview]
Message-ID: <E1sbsSt-0000lI-Ka@fencepost.gnu.org> (raw)
In-Reply-To: <86bk25q33b.fsf@gnu.org> (message from Eli Zaretskii on Tue, 06 Aug 2024 14:54:00 +0300)

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > My point is that the buffer as abstraction is already pretty good.

  > Indeed.  As is looking-at and beginning-of-line, btw.

I dont know of an editor which doesn't have a concept of buffers or
the buffer.  However, the GNU Emacs approach, where you move poimt and
then call fuctions which operate at poit, is not the only possible way.

Shortly before writing GNU Emacs, I maintained Zwei, the second
Emacs-like editor for the MIT Lisp Machine.  In Zwei, every function
to operate on text required specifying a start and end position as
arguments -- one or wo of them.  Point and the mark existed for users,
but the main calling covention for functions to operate on text was
that you stored positions in Lisp varianles and set point or the mark
only for the user's benefit.

After working with that for a douple of years, I was convinced that
that was clunky, and using point and mark was a better Lisp calling
interface.

In addition, this made it possible to call a function from Lisp just
like the way a user would invoke the same command for editing.  It was
usually convenient to have just one function to call, convenient from
Lisp code and as a user command.

In Zwei one usually needed two different functions for each operation
on text, one to be the keyboard command and one to operate on
a position and return a position.  In GNU Emacs, there is just one
and it works in both ways.

I designed `interactive' to make it easier to do that.

When people criticize this functiob/command calling convention,
it is not clear to me what other alternative they would prefer.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





  reply	other threads:[~2024-08-08  2:01 UTC|newest]

Thread overview: 91+ 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 [this message]
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 20:03   ` Emacs website, Lisp, and other Alan Mackenzie
2024-08-05 21:07     ` Christopher Dimech via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2024-08-06  7:42     ` Jean Louis
2024-08-06 11:14     ` Immanuel Litzroth
2024-08-05 11:56 ` Eli Zaretskii
2024-08-06 19:09   ` Jeremy Bryant
2024-08-06 19:50     ` Christopher Dimech
2024-08-06 20:35       ` [External] : " Drew Adams
2024-08-06 22:10         ` 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
  -- strict thread matches above, loose matches on Subject: below --
2024-08-06 17:38 10 problems with Elisp, part 10 Abraham S.A.H. via Emacs development discussions.
2024-08-07  7:44 ` Emanuel Berg
2024-08-07 11:30   ` Christopher Dimech
2024-08-07 18:57 Abraham S.A.H. via Emacs development discussions.
2024-08-07 20:46 ` Sebastián Monía
2024-08-08  4:58 ` Eli Zaretskii
2024-08-08  5:40   ` Christopher Dimech
2024-08-08  6:00 ` Dr. Arne Babenhauserheide via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2024-08-09  7:08 ` Emanuel Berg
2024-08-09  8:21   ` Dr. Arne Babenhauserheide
2024-08-09  8:36     ` Emanuel Berg
2024-08-09 10:46       ` Eli Zaretskii
2024-08-09 22:27         ` Emanuel Berg
2024-08-09 13:47       ` Eduardo Ochs
2024-08-09 14:03         ` Emanuel Berg
2024-08-09 22:47       ` Bob Rogers
2024-08-09 23:21         ` Emanuel Berg
2024-08-10  5:56           ` Eli Zaretskii
2024-08-11  2:12       ` Richard Stallman
2024-08-09  7:21 Johan Myréen

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1sbsSt-0000lI-Ka@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=arne_bab@web.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.