develooper Front page | perl.perl5.porters | Postings from August 2020

Re: Q: what the hell is going on? // A: ...

Thread Previous | Thread Next
Paul "LeoNerd" Evans
August 6, 2020 10:42
Re: Q: what the hell is going on? // A: ...
Message ID:
On Thu, 6 Aug 2020 11:51:43 +0200
"H.Merijn Brand" <> wrote:

> 4. The point is not "just" to make the language more attractive to new
>    programmers. (if that was the only point to make, Raku could well
>    be the answer). We - as core developers - are currently hindered in
>    making changes to the core to fix issues or add features we want to
>    have (with end users in focus) *without* breaking the world. 

I am getting very tired of hearing this as an argument.

As a person who actually *has* added a feature (the `isa` operator),
*is* adding a feature (`FINALLY` blocks), and plans to add many more
(try/catch, dumbmatch, ...) I can categorically state that none of this
has ever got in my way. Not one thing that could be called "supporting
legacy" has ever been in the way of my adding any of these things, and
I don't anticipate any of them being so.

There is a huge long list of things that could be better, which would
make adding these things easier. Such ideas as:

  *) There is almost no documentation at all of how to actually add new
     features, warnings, keywords, opcodes, syntax, ... I have had to
     discover it all from scratch, and lots of asking questions -
     mostly to DaveM. We have a very tiny bus-factor about this and
     frankly it scares me :(

  *) The whole "regen" system is a bit weird.

  *) A lot of the core tests are very fragile to breakage by adding new
     features. t/op/coreamp.t and the "untagged opcode" warnings that
     come from B/ in relation to the "Safe" feature, are two
     that come to mind. Fixing those is each a trivial one-word change
     but first you have to know and understand them. That takes time.

>    As an example, $Foo'Bar'x was perl4 syntax for
>    $Foo::Bar::x and it is *still* supported. Getting rid of that in a
>    limited scope will make the parser a lot easier to extend and e.g.
>    support try/catch. (this may be a false dependency, but used just
>    as an example).

It definitely is a false example. I can again state with absolute
certainty that never once have I had to think about Package'Separators
when adding `isa` or `FINALLY` and I don't expect I will have to when
adding try/catch either.

>    I honestly think that there is less than 0.01% of the
>    users who would object to dropping support for "'" as package
>    separator if that would open the road to full-featured exception
>    handling. *Those* are the changed being discussed.

We haven't discussed dropping anything. The only discussions about
"Perl 7" we've ever had have been about what features and pragmata to
enable by default, on the hope of being nicer to new users. Never was
any of that aimed at making our lives as core maintainers easier. It is
totally orthogonal to that.

In summary can we *please* put this whole argument to bed, that "Perl 7
makes it easier for us to maintain core". It doesn't. There are other
things core could do to make that easier but this is not one of them.

Paul "LeoNerd" Evans      |  |

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About