develooper Front page | perl.perl5.porters | Postings from February 2021

Re: De-experimentalising "signatures"

Thread Previous | Thread Next
Darren Duncan
February 7, 2021 20:53
Re: De-experimentalising "signatures"
Message ID:
I strongly disagree with immediately making signatures non-experimental, and 
that this should wait.

We still have the Cor effort steaming ahead with serious consideration to be 
defining a Perl built-in feature, and the full realization of this would also be 
defining the format of signatures.

A key promise of Cor, built-in optional strong typing, is such that this is what 
I'm looking forward to in Perl more than any other planned feature.

We need to have the flexibility to possibly make breaking changes to the 
signature syntax so that Perl is internally consistent in syntax for typing 
parameters and variables and attributes.

Jumping to making the current signature syntax non-experimental would risk 
significant longer term problems.

So lets give this more time and hold off making the signature change, people can 
still continue to use it now.

-- Darren Duncan

On 2021-02-07 8:54 a.m., Paul "LeoNerd" Evans wrote:
> `use feature 'signatures';` was added in 5.20 - May 2014 (over 6 years
> ago). Since then, it has seen some minor adjustment to the order of
> signatures vs. attribute notation; swapped in 5.22 then back again to
> its now-current form in 5.24 - May 2016 (over 4 years ago).
> It has remained "stable" (i.e. not being changed) in its current form
> ever since then, yet the "experimental" feature tag remains.
> Why?
> I know Dave M has plans to add lots more things (type assertions,
> generic query syntax, named variables, etc...) and I'm excited about
> and definitely want to see many of those things. But I don't know of
> any firm reason why signatures in their current form need to be marked
> "experimental" to do so. All over the language we are able to
> experimentally add new things without marking the entire surrounding
> context as "experimental".
> In the meantime, a lot of feedback I've been seeing for a long time on
> Freenode #perl, and more recently at FOSDEM over this weekend, is that
> folks don't want to wait, or aren't allowed to use signatures as they
> stand, because it is still marked "experimental" and thus they are
> forbidden by whatever local policy development houses may have. Yet
> other developers are simply put off by the scary "e" word. I have heard
> - on more than one occasion - that devs have been firmly told by their
> manager "do not use signatures" for the sole reason of them being
> "experimental".
> I would therefore like to propose that signatures - in their current
> form unchanged between 5.24 and 5.32 - be declared no longer
> experimental and promoted to a fully-fledged first-class language
> feature. Any further additions (which as already mentioned are very
> welcome and keenly anticipated) can perhaps be done either under a new
> experiment name, or by adding the "experimental" warning to that part
> of the syntax alone. I don't see why signatures *as a whole* should
> still be declared experimental. Many developers and CPAN modules are
> already using them as if they were stable first-class features. I think
> by now the ship has *already* sailed on us ever changing any existing
> details of them.
> (cross-posted to github as )

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