From: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
To: emacs-devel@gnu.org
Subject: Re: 10 problems with Elisp, part 10
Date: Tue, 06 Aug 2024 09:14:57 +0200 [thread overview]
Message-ID: <87mslqceby.fsf@web.de> (raw)
In-Reply-To: <874j7ypvr4.fsf@dataswamp.org> (Emanuel Berg's message of "Mon, 05 Aug 2024 22:20:15 +0200")
[-- Attachment #1: Type: text/plain, Size: 2205 bytes --]
Emanuel Berg <incal@dataswamp.org> writes:
> Dr Arne Babenhauserheide wrote:
>
>> After having seen how I could write interactive indentation
>> highlighting in wisp-mode in a few hours of hacking and
>> a few dozen lines of code [...]
>
> Excellent, now have a look at ispell.el - 4 323 lines - or
> flyspell.el that is 2 393 lines - you can reduce it a lot,
> I take it.
That’s not my point.
My point is that the buffer as abstraction is already pretty good.
If you forgo that, you add a lot of complexity with finding the right
entry points, defining how elisp should interact with text — all while
increasing the separation from regular editing, so creating a package
requires a higher up-front investment to find the right APIs.
As a counter-point: An example of a higher level of abstraction is the
org-mode API. But thinking back how long it took me to get that to
actually do what I needed, I doubt that that’s the model I want for most
packages. But I agree that without this, what I wrote would have been
more brittle.
Another example for specialized APIs that are used by others, too, are
completion APIs — auto-complete or company.
Currently Emacs is the environment I know that has the lowest barrier of
entry for writing a package. To check my memory on that, I now looked at
an IntelliJ plugin that just does replace-regex, and that clocks in at
about 200 LOC, using specialized entry points. To get another sample, I
checked a VS-code extension that just flashes the region on copy. To
implement the equivalent of
(if mark-active (list (point) (mark)) '())
it needs 20 lines of code.
That said: going by the example of the orgmode API and completion APIs,
building specialized APIs for certain tasks and releasing them as
packages could be a way to move forward to experiment with abstractions.
If similar APIs prove useful for very different tasks, and other people
start using them, that would build a case that generalizing them and
integrating them in Emacs and elisp as a default API could be a good way
forward.
Best wishes,
Arne
--
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 1125 bytes --]
next prev parent reply other threads:[~2024-08-06 7:14 UTC|newest]
Thread overview: 109+ 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 [this message]
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-10-23 19:25 ` Jean Louis
2024-10-23 21:13 ` Emanuel Berg
2024-10-23 21:36 ` Jean Louis
2024-10-25 6:44 ` Emanuel Berg
2024-10-28 3:27 ` 10 problems with Elisp, part 10 Joel Reicher
2024-10-24 6:48 ` Dr. Arne Babenhauserheide via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
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-10-23 19:45 ` Jean Louis
2024-10-23 20:25 ` Drew Adams via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2024-10-23 20:50 ` Jean Louis
2024-10-23 21:21 ` Drew Adams via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
2024-10-23 21:37 ` Jean Louis
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-10-23 19:48 ` Jean Louis
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-10-23 19:52 ` Jean Louis
2024-10-23 19:41 ` Jean Louis
2024-10-24 6:39 ` Dr. Arne Babenhauserheide via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
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-10-23 20:11 ` Jean Louis
2024-10-23 20:06 ` Jean Louis
2024-10-29 13:42 ` Abraham S.A.H. via Emacs news and miscellaneous discussions outside the scope of other Emacs mailing lists
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=87mslqceby.fsf@web.de \
--to=arne_bab@web.de \
--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.