From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: What's missing in ELisp that makes people want to use cl-lib? Date: Wed, 20 Dec 2023 23:20:58 -0500 Message-ID: References: <46ab3c7d-d820-4bb4-8ec4-97c614d7c8a0@alphapapa.net> <871qd8sfdx.fsf@posteo.net> <838r7g8pys.fsf@gnu.org> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10946"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, joaotavora@gmail.com, adam@alphapapa.net, emacs-devel@gnu.org, stefankangas@gmail.com To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Dec 21 05:21:25 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rGAYm-0002de-L0 for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Dec 2023 05:21:24 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rGAYZ-0004E2-9c; Wed, 20 Dec 2023 23:21:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGAYQ-00048B-6V for emacs-devel@gnu.org; Wed, 20 Dec 2023 23:21:03 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rGAYP-0005EZ-T9; Wed, 20 Dec 2023 23:21:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=ACtOlqw+/Dv8OGaElo0dBRBJ09/WC0oiRD8Hesu0D+E=; b=ESGoKFIG9Gui U3NBXCdS6zT6QuHCImGplDCDTx6QHT6i7br3ez2/rh4gvmP0QPJEVY/StpCYYpFqn98yxdWiH0ZZL LST/w0T5aHfzKciUrmkhaXcjGGMSsgAYASQAq0V6ulbPw4KfxULopcupSgOt9Ug1v+ie906shN9mw WEDoYX7NwhD5nFAiL8eHWTMoVfUZsmPEKhgIzsQrRpC2c+X6IHc8IiJPViobfsLQJL+tT1gfyay8I 5QzuYb3a/v/NlY5/s1JTvwaC1WuGVR+B/vFwSqyrL7AphqTar01I+HJ6zKTdC2Q33MsQeDI2EhxCY d+RjNCC9f4xhpCbbBWvlLw==; Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1rGAYM-00071F-1w; Wed, 20 Dec 2023 23:20:59 -0500 In-Reply-To: <838r7g8pys.fsf@gnu.org> (message from Eli Zaretskii on Thu, 02 Nov 2023 11:27:39 +0200) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:314027 Archived-At: [[[ 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)