From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Phillip Lord Newsgroups: gmane.emacs.devel Subject: Re: Imports / inclusion of s.el into Emacs Date: Wed, 06 May 2020 10:37:52 +0100 Message-ID: <87tv0tl7yn.fsf@russet.org.uk> References: <266155d4-f9c0-8ed3-8df5-32feea171076@yandex.ru> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="63271"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.90 (gnu/linux) Cc: dgutov@yandex.ru, emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed May 06 11:38:37 2020 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 1jWGVf-000GKq-Ux for ged-emacs-devel@m.gmane-mx.org; Wed, 06 May 2020 11:38:35 +0200 Original-Received: from localhost ([::1]:42040 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jWGVe-0001tj-Uq for ged-emacs-devel@m.gmane-mx.org; Wed, 06 May 2020 05:38:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jWGV4-0001TA-8O for emacs-devel@gnu.org; Wed, 06 May 2020 05:37:58 -0400 Original-Received: from cloud103.planethippo.com ([78.129.138.110]:34876) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jWGV2-00072H-NA; Wed, 06 May 2020 05:37:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=russet.org.uk; s=default; h=Content-Type:MIME-Version:Message-ID: In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Mfpy2szxVzGcdLAn0vfoWEcsWzvRF+wQN2Zjm5lmQRM=; b=d3hkIRn4fA4ISGzNdHkcAPZz5 HJ95Qa83oMRuuPsdXnu+Xtlujfjkn3h/jjSmfptk5WZ8esu/bJo2DT02V/vceFauQCDwK3Aw8HAGY hPIMuWEJBYlX5QZaCG/Tc++pAE7X6Gd5m/KflIpJ39wa/HOwdlDKtenWbw4hMvQvyWOTu6vsZd2MW 6LbeXu+ogRlhB2onFY9bZYEWuru/7t6DUmyAueDDs1+KOUOyoykYLjxAWlu5DyLtl5oRfBTEGsWIZ jMG2fMcnM4+ODusKKum0d9Uok/UB6p/VWBVCUlzDun/mz9safoBAHNc15g0zu/pEsG7da2Vax/qr/ 9iSQIeRsQ==; Original-Received: from cpc142652-benw12-2-0-cust953.16-2.cable.virginm.net ([82.21.43.186]:37168 helo=russet.org.uk) by cloud103.planethippo.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1jWGUz-00055Y-Gr; Wed, 06 May 2020 10:37:53 +0100 In-Reply-To: (Richard Stallman's message of "Sat, 02 May 2020 23:40:31 -0400") X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cloud103.planethippo.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - russet.org.uk X-Get-Message-Sender-Via: cloud103.planethippo.com: authenticated_id: phillip.lord@russet.org.uk X-Authenticated-Sender: cloud103.planethippo.com: phillip.lord@russet.org.uk Received-SPF: none client-ip=78.129.138.110; envelope-from=phillip.lord@russet.org.uk; helo=cloud103.planethippo.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/06 05:37:54 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:249077 Archived-At: I would set this against the cognitive overload of the current API which is difficult and complex to remember, because of its lack of consistency, and low level nature. This is in addition to the it's tendency to side-effect, particularly with moving point, hence the necessity for regular use of save-excursion. s.el (like dash, f.el) provides a clean API, documented at a single point. Of course there is a maintaince cost, but people have already written these packages and are maintaining them. They also help to provide a breath of modernity, and familiarity for newer developers. There is a reason that s.el is currently registering 2 million downloads on MELPA -- part of that will come from downloads in continuous integration of course, but this is a large number. Perhaps you think it is gratuitous, but many other people do not. Phil Richard Stallman writes: > [[[ 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. ]]] > > You're proposing that we adopt a policy of adding functions to Emacs's > standard name space as if that cost nothing. Any function that anyone > thinks provides the tiniest simplification, we would add. > > Adding so many functions would be detrimental in many ways. > > Perhaps nowadays the increased computer memory size would not matter. > It would not matter for five or ten new functions; for hundreds, > perhaps it would. But computer memory size is the smallest part of > the problems they would cause. > > There is also human memory size. That policy would mean more names > that every Emacs Lisp programmer would need to remember. > > It would mean more names to document in the Emacs Lisp Reference Manual. > > It would mean more pages to print the Emacs Lisp Reference Manual, > making it cost more. > > It would mean more text to maintain when something changes. > > With such a weak thresold for adding a functionb name, we would have > these costs over and over. > > The cl library caused these problems. It was not gratuitous -- it > provided useful features. But eventually we decided that no package > included in Emacs can use the cl library an run time. We fix packages > to use those facilities in other ways that don't pollute the namespace. > > I suggest we adopt the same policy towards s.el, which is entirely > gratuitous. > > We can also improve the standard names for string functions. They > were invented a few at a time, and there is room to make them more > systematic. > > This way we would get the improvement that is actually useful, while > paying much lower costs in incompatibility and bloat. The s.el > approach is designed to maximize the costs.