From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: ams@gnu.org (Alfred M. Szmidt) Newsgroups: gmane.emacs.devel Subject: Re: dash.el [was: Re: Imports / inclusion of s.el into Emacs] Date: Fri, 08 May 2020 14:31:35 -0400 Message-ID: References: <0c88192c-3c33-46ed-95cb-b4c6928016e3@default> <87wo5mc04t.fsf@fastmail.fm> <87blmye2jf.fsf@russet.org.uk> Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="107991"; mail-complaints-to="usenet@ciao.gmane.io" Cc: joostkremers@fastmail.fm, emacs-devel@gnu.org To: Phillip Lord Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri May 08 20:45:03 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 1jX7zb-000S0a-Oq for ged-emacs-devel@m.gmane-mx.org; Fri, 08 May 2020 20:45:03 +0200 Original-Received: from localhost ([::1]:35614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jX7za-0006CO-R7 for ged-emacs-devel@m.gmane-mx.org; Fri, 08 May 2020 14:45:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34468) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jX7ma-0007np-TV for emacs-devel@gnu.org; Fri, 08 May 2020 14:31:38 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:35294) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jX7mZ-0000vv-NV; Fri, 08 May 2020 14:31:36 -0400 Original-Received: from ams by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1jX7mZ-0003kC-BH; Fri, 08 May 2020 14:31:35 -0400 In-reply-to: <87blmye2jf.fsf@russet.org.uk> (message from Phillip Lord on Fri, 08 May 2020 18:53:40 +0100) 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:249314 Archived-At: 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! Consider: (while (re-search-forward "foo[ \t]+bar" nil t) (replace-match "foobar")) from the documentation. And, if you want to not nobble the user facing location of point (save-excursion (while (re-search-forward "foo[ \t]+bar" nil t) (replace-match "foobar"))) And, don't forget to beware what you are searching for and what you are replacing. Because if point does not advance, you'll loop for ever. I don't want to have to remember all of this. 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? > > 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? I disagree that Lisp lacks syntax (it has probobly more of it than other languages) or that one should `re-invent' things. But that is more of a philosophical debate than anything. > 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. 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. 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.