[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Installing cond* in core

From: Dmitry Gutov
Subject: Re: Installing cond* in core
Date: Sun, 28 Jan 2024 18:54:18 +0200
User-agent: Mozilla Thunderbird

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

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

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

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 via email to

[Prev in Thread] Current Thread [Next in Thread]