emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What's missing in ELisp that makes people want to use cl-lib?


From: Richard Stallman
Subject: Re: What's missing in ELisp that makes people want to use cl-lib?
Date: Wed, 20 Dec 2023 23:20:58 -0500

[[[ 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. ]]]

  > IMNSHO, extending Emacs Lisp as the language is not the main goal of
  > Emacs development.  Emacs Lisp is not a programming language on its
  > own, it is a language for implementing and extending features and
  > extensions in Emacs.  Thus, the main goal of Emacs development is to
  > develop applications and application-level features, and provide more
  > opportunities for extending the core where that is considered useful.

I agree fully.

  > Objectively, adding new syntax and semantics to Emacs Lisp does make
  > the source code harder to read and maintain, because it makes the
  > language larger and requires familiarization with those new language
  > features, which more often than not look and feel completely different
  > from the "traditional" Emacs Lisp.  So even if we conclude that these
  > additions are worthwhile, we should not pretend they come without a
  > price, and IMO we should think carefully whether their use is
  > justified before we use them in each and every case.

I agree with that point too.

Extensions to Emacs Lisp can have very different effects
on the use of Emacs Lisp.  We should distinguish between

1. Narrow-purpose extensions, such as open-network-stream

2. General-purposes extensions, such as pcase.

The narrow-purpose exensions tend to be useful without increasing the
effective complexity of programming.  If you want to do what
open-network-stream does, you will find it very helpful.  Otherwise,
it probably won't be called from the code you work on, so its
existence won't affect you at all -- you will never need to know about
it.

General-purposes estensions are just the opposite.  They could show up
in any code whatsoever, so everyone will need to learn about all of
them.  Thus, they burden everyone.  But they are never _needed_ in any
code/


-- 
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 via email to

[Prev in Thread] Current Thread [Next in Thread]