From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Installing cond* in core Date: Sun, 28 Jan 2024 18:54:18 +0200 Message-ID: <0f7c3969-7b57-4ce4-87e7-5f86e712c2b5@gutov.dev> References: <868r4a6lbb.fsf@gnu.org> <3cf3ba2d-873f-44d8-81f4-420d8954fd8e@gutov.dev> <6415235c-b06c-41b2-9909-39ecc74a6873@gutov.dev> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16643"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: Eli Zaretskii , stefankangas@gmail.com, emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jan 28 17:55:22 2024 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 1rU8RE-00048r-VA for ged-emacs-devel@m.gmane-mx.org; Sun, 28 Jan 2024 17:55:22 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rU8QP-0000lg-0W; Sun, 28 Jan 2024 11:54:29 -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 1rU8QM-0000lJ-Uc for emacs-devel@gnu.org; Sun, 28 Jan 2024 11:54:26 -0500 Original-Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rU8QK-0007nU-RW; Sun, 28 Jan 2024 11:54:26 -0500 Original-Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id D976432009F9; Sun, 28 Jan 2024 11:54:21 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Sun, 28 Jan 2024 11:54:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1706460861; x=1706547261; bh=zUDnZv5ENI5cAteV2P/rkoK9gkax6g4JUfT2Psim8Zw=; b= P64Cei1mokdQ6NhrVFtpELSADlD9lx4QMzzK7d3rV4VsxfOPpVhALIrkSA1gY8rU cJ415X9yXlRvL4XMEB2Ag9ROrGzyF7FQfLKJk+HTS3sawjHnVSgTFoDqUm1uVwno G59B5Z3e4PTM8DZiuEmkiEUGvfMQ8pRvOZVXqZwDpVoYsiKJWBLIU7h0aaMfs7Lb Y6qIPbCbkLEOLw2uvx8UqC906qHCSVloMMZcCQhwNOXfRMf9l/f4PIArccKtQtNn wR6bNzxVNxupdzl4Y77Q547N0aXBha2Jx9f7Ay3I/bkAsyYf4iBuj4xd9IMAXXWl xZ53NvFv8fTAOMr7QH/3zg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1706460861; x= 1706547261; bh=zUDnZv5ENI5cAteV2P/rkoK9gkax6g4JUfT2Psim8Zw=; b=k 1Ftkj/sOfh28ItGW0Ia0osvIn9IJpLlinAZ48VfrBC+Z/1L23NyplIhovtUjCVCm hCm++atjUfF200VwAXsWs3jGlL9Amx8rbHQzT5IHbTi+JvKJ6ddaSzpFVZiLZbDR Dhaio7JIoRXmAF+ReLCvrpgz74dU+kNhWhn/A7qbiCEv4Sczi5nNwqMy8jCrI6ry +XN+IccXKbcve6TVeCXFDsjPMAvf/akmpcItV6m9ZoaYq3G8IrqFkeChd408pl9/ x6pbQx51qe4q5mP2itnnkzHI3CYvUvFXByKjddgI8nmC5E/RlkwsGYi7tJheeU+v eL6OtJEMjouORwzUqRZ/w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrfedtvddgleegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepteduleejgeehtefgheegjeekueehvdevieekueeftddvtdevfefhvdevgedu jeehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 28 Jan 2024 11:54:19 -0500 (EST) Content-Language: en-US In-Reply-To: Received-SPF: pass client-ip=64.147.123.25; envelope-from=dmitry@gutov.dev; helo=wout2-smtp.messagingengine.com X-Spam_score_int: -36 X-Spam_score: -3.7 X-Spam_bar: --- X-Spam_report: (-3.7 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_SBL_A=0.1 autolearn=ham autolearn_force=no X-Spam_action: no action 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:315560 Archived-At: Hi Alan, On 28/01/2024 16:32, Alan Mackenzie wrote: >>> But if pcase were so good, why is Richard writing a better replacement? > >> It all started with some people not understanding what pcase does and >> how it works. > > I don't think that's true. People understand how it works. Enough > people have difficulty reading and debugging pcase and its numerous > variants to matter. Richard explicitly asked a number of questions about what it does and how it works. A number others also expressed confusion about it, what the syntax means and how to interpret it. >> We're yet to see whether cond* is any better in those areas. > > This is true, but it's highly likely cond* will be better. It's being > designed by an expert designer, and has been through a phase of open > comment and revision. Also, it takes advantage of the experience of > pcase. A new macro that went through a few rounds of revision with no real consumers yet vs a macro that's been in use for 14 years. Have you actually tried it yourself? E.g. to rewrite some code conversion logic that you urge to replace? > [ .... ] > >>> That's not the way things happened. pcase was simply installed in >>> Emacs, with all its faults, and then proliferated round Emacs. Where >>> was the room for discussion? Discussion is difficult after something >>> has already been done. > >> We're doing it all the time by commenting on commits in an email to >> emacs-devel. > > To have been effective, such comment would have resulted in the removal > or fundamental alteration of pcase long after it had been ground into the > core of Emacs. That just wasn't going to happen. > > You weren't there at the time. I was. I was completely unaware of pcase > happening, and it was a shock being confronted by it for the first time. If you weren't aware, then you weren't working on that area of code, right? >>> If you're trying to say that pcase is better than nothing, so people use >>> it, then I'd agree. But if you're trying to insist it's as good as it >>> could be, > >> One does not need to insist on that to disagree with your original >> statements. > > You cannot disagree with my original statement made last night. As I > said, you weren't there at the time. I don't have to insist it's as good as it could be to object to throwing it out. >>> I'd ask you why Richard is spending a lot of time crafting a >>> better replacement. > >> Rewriting other people's code that one doesn't understand has a long and >> varied history in software development. We even have a term for it. > > You're suggesting in that paragraph that the fault lies in Richard's lack > of ability. That's uncalled for. He has trouble reading and > understanding code written with pcase, as do I, and as do others here. > The fault is in pcase; it is flawed. At the same time, it is not doubted > that there are people here fully conversant with pcase. Having such a > split in the project is a bad thing. Having trouble with doing something is the literal definition of lack of ability. Not the lack of talent, mind you, or potential, but insufficient understanding and skill with that tool (destructuring pattern matching--which is not unique to Elisp and has carryover from a number of other programming languages) is what motivated this whole argument. And I'm really skeptical that when cond* goes through all the additional revisions and gets as powerful as pcase, that it won't raise all the similar questions. But I guess we shall see.