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: dash.el [was: Re: Imports / inclusion of s.el into Emacs] Date: Fri, 08 May 2020 23:23:02 +0100 Message-ID: <871rnudq2h.fsf@russet.org.uk> References: <0c88192c-3c33-46ed-95cb-b4c6928016e3@default> <87wo5mc04t.fsf@fastmail.fm> <87blmye2jf.fsf@russet.org.uk> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="7275"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.90 (gnu/linux) Cc: joostkremers@fastmail.fm, emacs-devel@gnu.org To: ams@gnu.org (Alfred M. Szmidt) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat May 09 00:23:47 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 1jXBPG-0001np-MZ for ged-emacs-devel@m.gmane-mx.org; Sat, 09 May 2020 00:23:46 +0200 Original-Received: from localhost ([::1]:46916 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jXBPD-0003hi-Nj for ged-emacs-devel@m.gmane-mx.org; Fri, 08 May 2020 18:23:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44482) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jXBOh-0003FA-Hi for emacs-devel@gnu.org; Fri, 08 May 2020 18:23:11 -0400 Original-Received: from cloud103.planethippo.com ([78.129.138.110]:52738) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jXBOf-0000xd-I6; Fri, 08 May 2020 18:23:11 -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=noJfxyLwj7HJWEsgwgK0fzMZt4vjMnfe3eWM9Acc2xs=; b=w6E5w+qcO7TTgB2gr2jDcx6Yr yN/fMc4CyEZZ1SdQ73bP9DiB2+moVBHOjSx8d1GySDrkEtejQZfZRswTOMD5eQeqqB0IyU41z79sO U42wGrvxpYUOonF94t5JjUz+vKu6cNaklL/hnugEZxtkIES4122mJSRf9Uw3BIAipMM2lpoy9SbXu 8F6t0t5OywrUqxntQRPS/uwa2cxpOddWYKqb7l3jM6XTpoh0RGMYQj78XEaYo2Nr6baoZFETdSr6p M+spYHMWAs6syMiPa3N1fvCHk6W/BlOVal3fOR3hj77tOvdyNrwH2FPQafg0DdpFXln+pjEDNTTZN sDlxqC2Zw==; Original-Received: from cpc142652-benw12-2-0-cust953.16-2.cable.virginm.net ([82.21.43.186]:34582 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 1jXBOc-0007E0-Co; Fri, 08 May 2020 23:23:06 +0100 In-Reply-To: (Alfred M. Szmidt's message of "Fri, 08 May 2020 14:31:35 -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/08 18:23:07 X-ACL-Warn: Detected OS = Linux 3.11 and newer 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:249332 Archived-At: ams@gnu.org (Alfred M. Szmidt) writes: > Finally, dash just adds a lot of things ready rolled. If the history of > programming languages tells us anything at all, it is that languages > tend toward higher and higher levels. Emacs could do with more of this. > > I think Emacs already does that; only that the POV is just different. > > The way we manipulate buffers doesn't lend it self easily to a > `functional' paradigm -- consider only forward-char! > > I find both forms easy enough, they are easy to understand and easy to > write. I barley need to understand what each of those functions do to > understand what the code does. I don't see how dash.el or s.el could > make the above easier to grok (one reads code more than writes it). > > What do you suggest as the alternative? Using my own library (m-buffer) this switches all "a" with "x". (defun switch-a-1 () (interactive) (m-buffer-replace-match (m-buffer-match (current-buffer) "a") "x")) or just the first two occurences (defun switch-a-2 () (interactive) (m-buffer-replace-match (-take 2 (m-buffer-match (current-buffer) "a")) "x")) or if you don't like too much indentation (defun switch-a-3 () (interactive) (--> (m-buffer-match (current-buffer) "a") (-take 2 it) (m-buffer-replace-match it "x"))) > > > > or what to use it for. > > > > Well, you use it if you want to program in a Clojure-like style. > > > > Isn't that the crux then? > > > > I as a user want to program in an Emacs Lisp style, not Clojure-style. > > Emacs lisp is not a constant, of course. One of the joys of lisp having > very little syntax it is possible to re-invent for different > generations. Many people do find > > End of sentence missing? "Many people find that they want to program in different styles", or something like that! > I disagree that Lisp lacks syntax (it has probobly more of it than > other languages) Lisp has parens and some other stuff. It's hard to add control-flow structures in most other languages, while it's trivial in lisp. > or that one should `re-invent' things. But that is more of a > philosophical debate than anything. And the soul of what we are talking about I think. > > As a user, I found many of the functions to have alien names, strange > > behaviour and very unintuitve to use in the style that is Emacs lisp > > (Classical Lisp?). But some functions seem useful, though with > > non-Emacsy names and calling conventions. > > Yes, this is true. seq.el does a better job there. But, again, it > assumes we cannot re-invent Emacs. The question is whether we > should. 2million downloads for dash.el tells me many users think the > answer is yes. > > I don't know what it means to re-invent Emacs, or what it would entail > so that is making a leap of faith into an abyss of unknowns. > > What I do know is that "millions of downloads" is not good metric of > what is good, e.g. many more people download non-free software than > free software. It's not a bad metric either! Yes, there are many people downloading > We do not know, or so I assume, how many of those supposed millions > activley use dash.el, or if it is simply a dependency that is > automatically pulled in by some other package. Well, it's a programmatic library, so "actively using" is really about being a dependency. So, I downloaded MELPA till I got to packages starting with "i" and grepped for "require 'dash", which gets me 160 matches. It's a lot. > And even so, it doesn't automatically mean that it would be a good > addition to Emacs -- such things shouldn't be decided only based on > popularity. Happy to hear the criteria that you would apply. Phil