all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dmitry@gutov.dev>
To: Alan Mackenzie <acm@muc.de>
Cc: Eli Zaretskii <eliz@gnu.org>,
	stefankangas@gmail.com, emacs-devel@gnu.org
Subject: Re: Installing cond* in core
Date: Sun, 28 Jan 2024 18:54:18 +0200	[thread overview]
Message-ID: <0f7c3969-7b57-4ce4-87e7-5f86e712c2b5@gutov.dev> (raw)
In-Reply-To: <ZbZlkOnQVKPraPKt@ACM>

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.



  reply	other threads:[~2024-01-28 16:54 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-27 21:36 Installing cond* in core Stefan Kangas
2024-01-27 23:33 ` Alan Mackenzie
2024-01-28  0:26   ` Stefan Kangas
2024-01-28  2:43     ` Po Lu
2024-01-28  6:46       ` Eli Zaretskii
2024-01-28  7:21         ` Po Lu
2024-01-28  7:32           ` Eli Zaretskii
2024-01-28  6:14     ` Eli Zaretskii
2024-01-28 15:58     ` Alan Mackenzie
2024-01-28  6:09   ` Eli Zaretskii
2024-01-28 12:38     ` Alan Mackenzie
2024-01-28 13:02       ` Dmitry Gutov
2024-01-28 13:38         ` Alan Mackenzie
2024-01-28 13:48           ` Dmitry Gutov
2024-01-28 14:32             ` Alan Mackenzie
2024-01-28 16:54               ` Dmitry Gutov [this message]
2024-01-28 19:14                 ` Alan Mackenzie
2024-01-28 19:26                   ` Eli Zaretskii
2024-01-28 20:43                   ` Dmitry Gutov
2024-01-30  3:56                 ` Richard Stallman
2024-01-28 13:19       ` Emanuel Berg
2024-01-28 14:18       ` Eli Zaretskii
2024-01-28 15:26         ` Alan Mackenzie
2024-01-28 15:40           ` Eli Zaretskii
2024-01-30  3:57             ` Richard Stallman
2024-01-28  4:28 ` Stefan Monnier via Emacs development discussions.
2024-01-30  3:58   ` Richard Stallman
2024-01-30 14:33     ` Stefan Monnier
2024-02-02  3:39       ` Richard Stallman
2024-02-02 13:17         ` Stefan Monnier
2024-02-02 15:24           ` Alan Mackenzie
2024-02-02 18:50             ` Stefan Monnier
2024-02-04  4:47               ` Richard Stallman
2024-02-04 14:12                 ` Stefan Monnier
2024-02-06  3:49                   ` Richard Stallman
2024-02-05  3:33           ` Richard Stallman
2024-02-05 12:39             ` Stefan Monnier
2024-03-13  2:27               ` Richard Stallman
2024-03-13  3:05                 ` Stefan Monnier
2024-03-16  1:45                   ` Richard Stallman
2024-03-16 16:15                     ` Stefan Monnier
2024-03-18  2:42                       ` Richard Stallman
2024-03-18  3:06                         ` Stefan Monnier
2024-03-19  9:19                           ` Peter Hull
2024-03-20 22:40                           ` Richard Stallman
2024-03-20 22:54                             ` Stefan Monnier
2024-01-28 14:28 ` Emanuel Berg
2024-01-30  3:58 ` Richard Stallman
2024-01-30 13:04   ` Eli Zaretskii
2024-03-16 20:53 ` Lynn Winebarger
2024-03-18  2:41   ` Richard Stallman
2024-03-19 19:48     ` Lynn Winebarger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0f7c3969-7b57-4ce4-87e7-5f86e712c2b5@gutov.dev \
    --to=dmitry@gutov.dev \
    --cc=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=stefankangas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.