Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Amicable divorce

by ribasushi (Pilgrim)
on Jul 06, 2020 at 04:53 UTC ( #11118950=perlmeditation: print w/replies, xml ) Need Help??

( this is a re-post of recent thoughts from the perl5-porters mailing list. Further interesting points articulated in an adjacent thread. )

An incredibly unlikely combination of recent events have placed Perl (the language) at an exceedingly rare crossroads. Various "factions" have openly stated their worldviews, but war has not broken out just yet.

While there is a ton of nuance, the two main "philosophies" at odds are roughly:

  • Software-as-a-solution (SAAS), where code is targeted at solving a specific problem, in a dynamic world. When the problem inevitably changes as the world around it continuously moves along, it is only fair and even prudent to continuously modify the existing solution to said problem.
  • Software-as-a-tool (SAAT), where code is targeted at *other* professionals, to combine it with an increasing array of other tools to then solve a specific problem. A hammer from 50 years ago looks strikingly identical to a hammer you can buy today, and it better look like a hammer after 2038, or else...

The series of mega-threads all boil down to a profound misunderstanding within the p5p list itself of the magnitude of the clash-of-values between these sub-communities.

I strongly believe, that if a more honest conversation takes places not over the "how" but the "what", a massive amount of effort will be saved on all sides.


  • Instead of dancing around the issue of having nice things with cpan: let's admit the need for 2 CPANs: one to cater to folks excited by the prospect of perl 7 and one for people who will never write anything above 'use 5.0XX' within their code.
  • Begin a discussion acknowledging the amount of "better bash" tooling investment outside of the handful of companies named as stakeholders, and have an honest conversation what is the expectation for "system perl" and "system perlng" in the mid-to-long-term.

Everything else discussed so far is dressing to obscure the substance: "Perl" and "perl" are *both* about ready to file for divorce. This is an incredibly rare chance for an Unionsupplösningen or a Velvet Divorce. Please, do not squander it.


Replies are listed 'Best First'.
Re: Amicable divorce
by shmem (Chancellor) on Jul 06, 2020 at 13:36 UTC

    All this sounds like bikeshedding. I'm with Philip R Brenan on the notion that development should go on in a pragmatic way, via pragmas.

    If that's not possible, there's prolly something seriously wrong in the codebase, which is to be expected, and which cleanup task nobody wants to tackle. So let's build a bike shed meanwhile and label it 7.

    OTOH, all this p5-vs-p7 hullaballoo should seriously calm down. One step after another. After all, the perl7 label is just a leap to get rid of perl6, and perl7 is just all perl since the shism between perl5 and perl6. Nothing wrong with that, but nothing more either. That done, work goes on with the new version number.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
      I agree mostly.

      Given the planned timeline of Perl 7, it's unlikely to be more than other default pragmas.

      And Perl 5 will still stick around as backup.

      People are actually mostly discussing a future Perl 8

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

        I think this whole numbering thing is ridiculous nonsense.

        We just got over the whole Perl6 fiasco that lasted nearly two decades, and now we're right back where we started.

        Just rename it to Purl, and start back at version 1.0.

Re: Amicable divorce (The Camel Paradox)
by LanX (Sage) on Jul 06, 2020 at 09:18 UTC
    You are advocating a clean break from backwards compatibility?

    I'm curious, how will this new language compete against JS, Ruby and Python? Will it start with a dominant market position like PHP?

    Why wouldn't it share the niche fate of Perl 6 or cperl or ... (name a branch)?

    I think if you want a break, it would be far easier to implement a Perlish syntax on top of Javascript to succeed.

    I agree with you that most discussions are fruitless because most players only see their own use cases and fail to speak a common "language" (sic ;)

    My take on this is to keep one language (read "engine") which is tailored by "master" pragmas to those needs.

    Perl's selling point being:

    "yes it's deeper than the specialists like bash or python, ...

    ... but you don't need to learn different languages to fill all these use cases" °

    See also The Camel Paradox

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery

    °) /and if you stick to your niche's master pragma it's even not that much more difficult.

      > You are advocating a clean break from backwards compatibility?

      I am definitely not advocating this. Some, however, do. All your questions are excellent, and you should ask them in the corresponding threads.

      What I am interested in is that /usr/bin/perl doesn't get to go on a risky roadtrip along with Perl.

        > What I am interested in is that /usr/bin/perl doesn't get to go on a risky roadtrip along with Perl.

        What does that mean? Are you saying that Linux distributions might abandon system Perl?

        > you should ask them in the corresponding threads

        I can't cope with P5P.

        It reminds me about the story (myth?) how the Bolsheviks dominated the Russian parliament after revolution, just by delaying decisions till the majority was too tired to attend discussions.

        Instead of redesigning the language we should rather start by redesigning the politics.

        And design decisions should be based on proof of concepts, not spectacular presentations and random commit bits.

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

Re: Amicable divorce
by perlfan (Vicar) on Jul 11, 2020 at 14:54 UTC
    The analogy of a divorce is a good one, however I think it's premature. There is no cheating, no plundering of the bank account, no kidnapping of the kids (or worse).

    I do like how you've broken it down. In those terms I am decidedly in the SAAT camp. But I love my hammer, and with it everything is a nail.

    We need to stay together for the kids, and this is not some naive pollyannish view or line about Catholic GuiltTM. To many coding communities have become broken homes (PHP, Python, etc) with one left to choose which parent to live with. Too many others have died in utero or been prematurely aborted or abandoned before gaining the ability to fend for themselves or have a mature outlook on life.

    Somehow perl must remain perl, yet progress. I don't care if you call it 5.x or 7.x. I do care that there is and always will be the One True InterpreterTM on any system, even if it won't run my shitty line noise I hacked together in a fit one night.

    And being part of the SAAT camp, I am part of my grandfather's camp. I prefer to slow down and look backwards, not forwards. I reject shiny things. I like his hammer. It's made of real steel and rock hard hickory. It's never had to be re-headed. I mock hammers sold at Walmart that are made in China and fail after 1 year. Preferring the latter is no different than immature javascript fanbois who don't realize what they're tossing away when they jump from fad to fad .. or to Rust. Or whatever. You lose a little bit of power in your tools (and yourself) every time you do that. I treasure perl just like I treasure my grandfathers tools. Be careful what you toss out and replace with a cheap product in pursuit of some modernity. You will lose every time.

    Why did "perl 6" fail to replace the True InterpreterTM? Because people forgot about things like this,, and the collective power and wisdom that was present back then (and thankfully remains strongly today).

    Another adage that they say about divorce it that it really just results in everyone but the blood sucking lawyers losing. And they get richer. And it costs each parter just as much to live alone as it does together, even more so when kids are involved. In this case we'd risk throwing away a beautiful life built on strong fundamentals and collective wisdom. As they say, the bones are GOOD. We can work with this.

    Let's stay together. for the kids.


    update - fixed minor spelling and formatting

      The kids are long grown. One of them passed away. The rest moved as far away as they could and do not pick up the phone when the parents call. It's time.
A reply falls below the community's threshold of quality. You may see it by logging in.
A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://11118950]
Approved by LanX
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (2)
As of 2023-02-07 01:52 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (38 votes). Check out past polls.