develooper Front page | perl.perl5.porters | Postings from November 2010

Re: [PATCH] deprecate ?PATTERN?

Thread Previous | Thread Next
Steffen Schwigon
November 24, 2010 03:20
Re: [PATCH] deprecate ?PATTERN?
Message ID:
Zefram <> writes:
> In discussing (on #p5p) possible new operators, we ran into the
> issue that the obscure ?PATTERN? syntax gets in the way of most uses
> we could potentially make of the question mark.  It was proposed
> that we could deprecate that syntax to reclaim the question mark.
> Attached patch does so.  It leaves the match-once semantics still
> available through m?PATTERN?.

Just an opinion from a user:

I never used the pattern but I have read it so often in any kind of
manuals or blogs (how were they called 10 years ago?) or auxiliary
modules (think Emacs modes) in the last 10 years that I expect
thousands of modules and scripts out there using it *somehow*.

And remember the trouble on 5.12 release when removing perl4
libs. Perl4! [sic]. With 5.12 I even struggled with trivial
deprecations like “defined %hash”. 

I also learned to struggle with other languages that make deprecations
all the time, which makes deploying applications a mess and made this
other language completely unusable from an administration point of
view. I don't want to see people say this about Perl.

So I learned the high value of Perl's strong backwards compatibility.

And that's just a single story from me (just a pseudo admin for some
weeks), think of 1 million real overloaded administrators out there.

The easiness how to fix a deprecation is *not* a decision criteria for
a deprecation.

It's simply impossible to investigate deprecations in millions of
foreign lines of code. Code that comes in via 20 levels of
dependencies. Code by authors that don't even live anymore or fell of
the net. Fixes that already overworked admins would have to apply in
their own automatic setup scripts that accumulated over decades and
are a maintenance nightmare on its own. Monkey patching, distroprefs,
they just don't have time to fiddle with that. It's simply a horror
burden. We should not put it on the users or administrators. Never.

I would even accept any nastyness of new syntax if it helps avoiding
deprecations. Even forgetting a new feature *at all* just due to
syntax conflicts would be ok for me.

Backwards compatibility is one of Perl's strongest meta features.  
It helps it to survive because Perl Just Works(tm).

It even helps to argue on Perl6 because there is always the stable big
brother to the weak little sister one can refer to. Everything known
breaks in Perl6, how can it survive if Perl5 also starts breaking?
(So, Larry, if you read me, please don't support deprecations in
Perl5. :-))

Please avoid deprecations. Always.


Kind regards,
Steffen Schwigon <>
Dresden Perl Mongers <>

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