Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Perl

Should Perl 7 Be Backwards Compatible? (lwn.net) 128

Long-time Slashdot reader destinyland writes: What's up with Perl 7? Perl Foundation board member Ricardo Signes tried to sum up the state of the community in a detailed post to the "Perl 5 porters" mailing list. And in a section titled "To Break or Not To Break," he writes that "The central Perl 7 question is not about version numbering, but rather about backward compatibility guarantees..." And more specifically, it's how to respond to the question of whether Perl 5 "is too constrained by backward compatibility to grow significantly in utility or rate of use." He presents three possible responses:

— Reject the premise. "There is a lot of room for forward motion without breaking changes, if we would just stop trying to change the rules and move forward."

— Accept the premise, but then "let Perl continue along its current course, becoming ever more stable as it is used by an ever-diminishing audience until it is given its rightful place in the Hall of the Honored Dead."

— Or, "figure out which constraints can, like chains, be shrugged off so we can move ahead..."

While he sees merit in all three positions, the core hope of the Perl 7 plan is choice #3. "Maybe there are kinds of backward compatibility that can be shrugged off without disrupting the vast majority of Perl users, while making the language easier to use and (very importantly) easy to *continue* to improve." And more to the point, "We aren't picking up new core developers for a bunch of reasons, but one is 'it's just too much of a slog to -do- anything.' So I am in favor of making selective breakages in order to make the language better and the implementation more workable. I think this is the core of the Perl 7 plan, and the big question is 'what are those selective breakages.'"

That section is followed by another one titled "How Shall I Break Thee?" ("The impact on existing code is a big question to be answered. Nobody is arguing that we'll attract a new set of users and developers by first alienating all the existing ones.") While there's good suggestions, right now "The plan is to come up with a plan."

And this starts with creating a document to formalize the governance model of the Perl Steering Committee as their way of pre-forming some early consensus and refining ideas before they're then put up for general discussion on the mailing list, with a project manager giving final approval to the larger community's decisions. This will then be followed by "producing a clear set of intended changes..."

"Until that happens, I just hope for a little period of calm and good faith."

This discussion has been archived. No new comments can be posted.

Should Perl 7 Be Backwards Compatible?

Comments Filter:
  • Fourth option (Score:5, Insightful)

    by NicknameUnavailable ( 4134147 ) on Saturday August 15, 2020 @06:38PM (#60405025)
    Change the starting line from #!/usr/bin/perl to #!/usr/bin/perl7 and maintain backward compatibility while adding new features.
    • Fifth option (Score:5, Interesting)

      by goombah99 ( 560566 ) on Saturday August 15, 2020 @07:33PM (#60405101)

      Just stop developing perl. Keep it maintained.
      Perl is a freaking awesome language for many many uses. It's so much better than Bash for example. It's not like Bash has to keep developing. So why does perl? Just let it be the awesome language it is without people needing to learn new useless things just to read other people's code.

      • by raymorris ( 2726007 ) on Saturday August 15, 2020 @08:51PM (#60405233) Journal

        I've wondered why more people don't use Perl. It was the most-used language for web development, by a large margin. I've programmed a lot of things in a lot of languages and Perl is my main go-to for tasks where that general type of language is suited. So why don't more people use it? What could be improved or adjusted to make it better for more people? I have two theories. I wonder what everyone else thinks it might be.

        First, I hear "it's hard to read". People don't say that for no reason, something must actually be hard to read, at least for people who aren't used to it. Is the general syntax hard to read:

        for $person ( @people ) {
                print "Hello $person\n";
        }

        I don't think they mean that is hard. Am I right? I think what's hard to read is the way most people write regular expressions. Most people write regular expressions without any whitespace, and without meaningful names. Yeah that's hard to read! Any language is hard to read if you don't ise any whitespace!

        A lot of people write regular expressions like this: /([0-9]+)(.+@.+)(.+)/
        $s = $1
        $e = $2
        $n=$3

        That matches some pattern of characters, but what - what is it?

        That's a very short regex, but it definitely harder to read than it needs to be. You can (and should?) use whitespace and meaningful names, just like any other language. Here is the same regex, with whitespace:

        /
            (?[0-9]+)
            (?.+@.+)
            (?.+) /x

        That's the same regex, with whitepace and meaningful names. I think that's much clearer (though of course it helps if you know the regex language). Does that make it easier? I think so, especially as the regular expressions get longer.

        Funny thing, that regex is also just the same in .Net and Python. Python and .Net are no more readable for regex - they are just the same. It just so happens that Perl is often used for processing structured text, and regular expressions are used for text processing, so many times people use them together. If you don't want to use regular expressions, you don't need to. Perl doesn't force you to use regex any more than Python or .Net does. Yet, traditionally Perl programmers have used them often.

        My other theory has something to do with perceptions and "the hot new thing". Perl stopped being THE language for web development when PHP caught on. (Which is funny because PHP was originally a CMS written in Perl and C.) People liked PHP because they could arbitrarily mix PHP programming code with their HTML UI code. PHP became the hot new thing and Perl was seen as "old-fashioned".

        Later, people started recognizing the problems with PHP. The PHP designer, Rasmus Lerdorf, has said that he wasn't trying to design a programming language and he doesn't have any know anything about how to design a programming language. It shows.

        So we had the "old-fashioned" Perl and somewhat crappy PHP available when Python showed up on the scene. Python was easy. So easy, it's what Lego chose to let kids control their Lego Mindstorms toys. Lego is an easy way build things and so is Python, so they are popular and they work well together.

        When Python was introduced, Perl was more mature, stable, powerful, etc, but there was seen as "old fashioned" after the PHP fad.

        * For anyone wanting to claim Python has always been mature and stable, let me remind you of three different mutually incompatible languages you might have forgotten about:
        Python 2.6
        Python 2.7
        Python 3.0

        • by raymorris ( 2726007 ) on Saturday August 15, 2020 @08:53PM (#60405243) Journal
          That more-readable example should have been:

          /
            (?<score>[0-9]+)
            (?<email>.+@.+)
            (?<name>.+)
          /x
        • Everyone chooses their programming language for their own reasons, but a lot of people choose Python because it's the language they first learned in college. Why do colleges teach it as a first language? Again, each college has their own reason, but when they started, Python had a more mature class model than Perl, at a time when Object Oriented Programming was very important to professors.
          • by raymorris ( 2726007 ) on Saturday August 15, 2020 @11:17PM (#60405443) Journal

            > a lot of people choose Python because it's the language they first learned in college. Why do colleges teach it as a first language? Again, each college has their own reason, but

            If I'm teaching Programming 101 (which I do at times), I'm going to choose a language that is easy to learn and easy to do simple things. Python is easy in this way. Python is a good intro language, to learn the basics of programming.

            If I'm teaching Programming 102, I might well continue to use the same language students learned in 101. So it makes sense that schools would choose Python for the first couple of classes teaching programming concepts. It's well-suited to that need.

            Having said that Python is easy, I should be clear about the down sides of that as well. In Python, it's easy to make simple things, including mistakes. Including bad mistakes. Python is an easy way to build simple things; Lego is an easy way to build simple things. You don't build your enterprise-grade products from Lego. Python is easy for simple things and quick to write because it doesn't demand rigor. Just for one example it's untyped / dynamically typed. That means it's *harder* to make more complex things, bugs happen more. It takes less time to make something simple in Python than in a language that is more careful (and will avoid time-consuming bugs in more complex software).

            I'm not trying to put Python down nor be a cheerleader for Python - different tools for different tasks. Python is well suited to teaching the basics and scripting simple tasks that aren't business-critical. It's also great for working with very large integers quickly and easily, such as used in cryptography.

              Personally, I use it for breaking crypto and doing crypto POC because it's a quick way to do those things. For other tasks, I use a language designed to have fewer bugs by being more explicit.

            • Personally, I use it for breaking crypto and doing crypto POC because it's a quick way to do those things

              It's quit mainly because there are libraries available for that in Python.

              • > It's quit mainly because there are libraries available for that in Python.

                I think I missed your message, probably due to a typo messing up one word.

                Anyway, the cool thing about Python for crypto is you don't NEED to use a cumbersome large integer library - big ass numbers "just work" in Python. In Python I can do this:

                847493639462036303602630362037936 - 749360372036026394

            • by aralin ( 107264 )

              You teach Python in schools because people work on their own or in small 5-10 member teams at most. Choosing this language handicaps the students in major way because it is really problematic when working in large teams. Work in large teams is something universities already struggle to teach and when it is coupled with teaching a language that is just really bad at that, they multiply their current problems.

            • by sjames ( 1099 )

              You don't build your enterprise-grade products from Lego.

              Of course not, Lego isn't nearly brittle enough or brutal enough for the enterprise.

        • by raymorris ( 2726007 ) on Saturday August 15, 2020 @10:10PM (#60405361) Journal

          I mentioned that Perl and regex are often used together because they are good at processing text-based data. While that's true, ot occurred to me that's not the full story of why they are often used together. The tradition of knowing and using regex is based on the history of a series of related languages.

          In the beginning was the text editor, named ed.

          For use in pipelines, McMahon made stream-ed, or sed.
          Sed mostly used regex to specify which lines to operate on, and how.

          Sed had a command to globally print lines matching a regex, g/re/p
          g/re/p was used so much, a grep command was created

          Sed and grep were good for text streams.The Unix creators, Bell Labs, wanted to add better handling of numbers, so they extended sed and grep to make awk.

          Awk was so useful, Bell programmers wrote large programs in it, despite the fact it had originally been designed primarily for one-liners.

          There was a need for a language with the strengths of awk, plus language features for longer programs. Larry Wall created Perl to fill this need.

          Perl was immensely popular, and so quickly grew to be much more than just awk plus.

          So:
          ed -> sed -> grep -> awk -> Perl
          And regex was important in sed, so people who used this line of tools knew how to use regular expressions.

          • by TechyImmigrant ( 175943 ) on Saturday August 15, 2020 @11:51PM (#60405481) Homepage Journal

            My problem with regex is that it is so unmemorable. I've been using regexes is various languages on and off for over 30 years. But each time I return to it I have to get my regex reference out to remind myself of which symbol means what. If full keywords had been used instead of random punctuation symbols, it would have been a lot easier to remember.
             

            • The other issue with regex is that it seems that everyone has an implementation that is slightly incompatible with everyone else's. A good portion of that is also syntax-related, as different things either need or not need to be escaped.

              • That was a problem. Over the last few years, most things have either switched to or added PCRE (Perl Compatible Regular Expressions). If you find the native regex in any given tool awkward, check to see if it doesn't also have a PCRE function/mode.

            • That's an interesting point. I wish some key people had read this comment 40 years ago. :)
              Just as Perl has the English module which gives plain-English names for the special variables, it would have been easy to add a "verbose" or "English" syntax for regex, which would translate directly to the symbolic representation.

              Personally, I use Linux a lot, so I use regex frequently with sed, grep, awk, etc, so I remember all of the regex stuff that is used by any but a small number of people. I could see how it c

        • I've wondered why more people don't use Perl.

          Because PHP is a better option for the Web. PHP is basically Perl as a template engine. With Perl you still had to jump through some hoops, with PHP it's beyond trivial to programm SSI for the Web. Hello World in PHP is "Hello World!", deployment in PHP is "copy, paste, finished". PHP has no memory leaks, only the occasional timeout. And because it's a template language, you can keep your static documents and slowly infuse them with logic whenever the need arises

        • by AmiMoJo ( 196126 )

          Perl is great for processing arbitrary text but most of the world has moved on to structured text where stuff like regex isn't needed. Data is stored in JSON or XML.

          Other languages have additional benefits like a clearer syntax, better debugging tools, more modern libraries etc. Perl also has some issues like tending towards becoming unmaintainable as time goes on due to programmers using too many clever regexes and loosely structured text formats for data storage.

          Perhaps it's a bit like C, ideal for some t

        • Because everything is done in teams these days, and getting Perl developers to work together is like herding cats.
        • by jrumney ( 197329 )

          I've wondered why more people don't use Perl. It was the most-used language for web development, by a large margin.

          You forgot to qualify that. Between 1993 and 1995 would probably be about accurate.

          • TIOBE shows Perl's peak was 2002-2006, with over 10% of *all* programming during those years.
            https://jaxenter.com/perl-tiob... [jaxenter.com]

            It was the language for server side (cgi scripts) from about 1992-2006, when PHP took over the web. Then Python came along later.

            • by jrumney ( 197329 )

              By the early 2000's, Java was the language of server side. PHP was making serious inroads around then also. Perl, stuck in the CGI past, was already fading for web use. Python has never been significant for web use, its dominance has always been in test automation and now AI.

        • by doom ( 14564 )

          I've wondered why more people don't use Perl.

          More people don't use perl because the computer science intelligensia regarded him as a weirdo outsider who had the temerity to suggest they don't always know what they're doing.

          Larry Wall intentionally used elements of human languages in perl's design (meaning inferred from context, pronouns), and ignored the mathematical elegance that's a religious obsession among the CS gang.

          They responded with what amounts to a smear campaign that dragged on for many

      • by gweihir ( 88907 )

        Indeed. Perl 5 is not broken. Please stop trying to fix it. It makes things worse.

    • by Z00L00K ( 682162 )

      Breaking backwards compatibility is bound to cause headache for users of legacy solutions that then no longer works when the new script engine comes out and nobody can figure out why because it was written in some obnoxious way and the developer of that has moved on or passed away.

    • Comment removed based on user account deletion
  • Have enough changes to make it look like a simple change in print statements is sufficient when the reality is that there are a bunch of subtle deprecations. Itâ(TM)ll really work out well as it did for python.

    • by AuMatar ( 183847 )

      Forget Python 3, look at Perl 6- they dropped backwards compatibility, and nobody ever used it. The confusion and long stagnation of Perl caused it go from the most commonly used scripting language to sub COBOL levels of use.

      You can deprecate a library. You can't deprecate syntax features. If you feel the need to do that, its time to write a completely new language rather than co-opt an existing one.

      • by Megane ( 129182 )

        I didn't realize just how out of control the Perl 6 design was until I found this thread. [thedailywtf.com] They went full retard with Unicode characters in the syntax. (Everybody knows you never go full retard!) It makes APL look easy to type, at least they made keyboards specifically for the set of funny characters that APL used. You shouldn't have to have a Unicode code palette open when writing code.

  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Saturday August 15, 2020 @06:44PM (#60405047)

    Perl 5.x has been around since forever and is doing just fine. I get that they want "Perl 7" because it's a cool number, but the truth of the matter is, Perl is mature and only needs incremental updates, which still trickle in and probably will for another century or so. That's great! Keep it that way!

    If you want to build yet another PL, do *not* break syntax, just build another PL.
    Better yet join another language team or focus on regex libraries or something because if there's one thing we definitely do *not* need is yet another PL. So please don't.

    Perl 5.x is perfect as it is and if you insist, do some additions to the existing project and name it Perl 7 for crisakes, if it makes you happy. But don't break it. Perls popularity is still strong with old school admins, you do *not* want to piss those off and become a footnote of PL history, because they're your only remaining userbase.

    • Perl used to be the de facto scripting language. Python has taken that place and very few people have any interest in learning Perl because of its reputation as being difficult to write, let alone edit someone else's work. It's still used in some major projects (I think DuckDuckGo still relies heavily on it), but overall, it's fading away with little chance of coming back, mostly getting replaced by Python.

      • Perl is easy to write. I submit as proof that I have written perl scripts which did useful work. And it's as easy to maintain as your comments are good.

        You're right that Python has gained dominance, but I would still use Perl, especially if I had to process a lot of text... unless I needed some module that was available for Python and not Perl. But so far, Perl has done everything I needed a scripting language to do.

        • I work at a company worth 20+ mil. All of our backend code is perl. I dont mind it too much, there is definitely quite a few symbols you have to learn and get used to though.

          I much prefer writing python or php.

      • by Megane ( 129182 )

        It's still used in some major projects

        I heard there's this one site that uses it, slash-something...

    • Define a language, let's call it Oyster, that has semantics that can be satisfied by perl expressions, then mechanically translate between the languages. It could look like anything you like, including (funcname arg arg), but the operations in the runtime are a proper superset of perl. Done? OK, now rename it to perl N (;-))
    • Not just sysadmins. I work in EDA (physical design) and use Perl almost everyday (my colleagues do as well though indirectly via the various EDA flows that I wrote)
      Learned it in middle school, and haven't stopped using it since.
    • by gweihir ( 88907 ) on Sunday August 16, 2020 @12:43AM (#60405573)

      Some people apparently cannot let a thing that works well alone. Hence they try to "make it better" and all they do is create a big mess. Perl 5 is not broken, stop trying to fix it.

    • > Perl 5.x is perfect as it is and if you insist, do some additions to the existing project and name it Perl 7 for crisakes, if it makes you happy.

      Nobody is taking your Perl 5 away for a while.

      I learned on Perl 4 and updated my code. The world didn't end. I just got rid of an indirect reference a few days ago.

      Frankly %hash{'sub'){'thing'} was better syntax, but oh well.

      There are things in advanced Perl that still suck and require underlying knowledge of the object system to get the syntax right. I see

  • Perl 7 will be mostly backward compatible in all cases. The question is how much stuff will it break? There are some constructs that need to go away because they introduce parsing ambiguities and it can be argued that they are already broken. Some of those break if newer concepts about the OOD system are to be introduced. An example of this is the bare word file handles and which cause a bunch of parsing grief but go all the way back to Perl 1.

    • What does "mostly backwards compatible in all cases" mean? Sounds like an oxymoron to me. "mostly compatible " == "not always compatible". So "not always compatible in all cases", which just means "not compatible" as far as running large legacy code base. It doesn't matter even if there is a clear bug in Perl 5, but fixing it breaks existing scripts. What's easier, go through thousands of lines of code to port to a new language, or just keep using the old language? New stuff will continue to get written fo

      • by thogard ( 43403 )

        A vast amount of perl code lines will be backwards compatible. 99% of all existing code lines will work in perl 7. The problem is that 1% that won't come from the oldest parts of perl and those parts must change for the language to progress. Part of that 1% includes stuff like while() but best practice has been to write that as while() for a long time now. There are other issues of bare word names that allowed shell scripts to migrate into perl scripts with little work and some of that needs to go away

        • As a hint, if it hasn't been giving an obligatory warning for at least two language versions you must not break it. No -w flag - preferably a warning you can't hide, but maybe one that can be hidden with an explicit --dont-warn-about-wierd-variables-just-now-I-really-promise-I know-I-have-to-fix-them-now flag.

          The perl community has become small and dated. This is not the moment to break it into two incompatible groups (perl5 and perl7). Code from perl5 just needs to come over and work. Any non-backwar

  • Why not just toss in a GUI that generates large BLOBS without doing actual coding, creating synergy and a blazing new path to future non-supported obsolescence?

    Has PERL gone the way of COBOL already? As a legacy support language?

    Aren't all the cool kids coding in Rust or Go or Java or C* nowadays?

  • by 93 Escort Wagon ( 326346 ) on Saturday August 15, 2020 @07:29PM (#60405099)

    Then I don't see the point in perl 7.

    • The point of it would be that we would have modern language unconstrained by old baggage but a much quicker learning curve (when coming from perl 5) due to it keeping the with the design and methodology whenever possible.
      • They'd need to be very careful going that route, since that's exactly the same reasoning that drove the development of Python 3. We all know how smoothly that transition went.

      • The point of it would be that we would have modern language unconstrained by old baggage but a much quicker learning curve (when coming from perl 5) due to it keeping the with the design and methodology whenever possible.

        To me, that sounds like a recipe for repeating perl 6. Which is great, it you don't want anyone using your language.

        • by gweihir ( 88907 )

          To me, that sounds like a recipe for repeating perl 6. Which is great, it you don't want anyone using your language.

          Delayed second system effect all over with Perl 6. And then they apparently do not learn from their mistake and are now trying to make it again.

  • by 140Mandak262Jamuna ( 970587 ) on Saturday August 15, 2020 @07:35PM (#60405103) Journal
    eom
    • python 2.7 or 3.x?

      My employer's code base is 2.7 and that will be supported in the major distros for a loooong time.

      • by BobC ( 101861 )

        The key here is the Py3 breakage decision was made with a long commitment to 2.7, which gave 3 the time it needed to mature with minimal industrial pressure. And also to evolve the tools to simplify 2.7 conversion.

        But as the process proceeded, I often found myself wondering: "You created breakage and kept the GIL? WHYYYYYYYY??!"

  • by iggymanz ( 596061 ) on Saturday August 15, 2020 @07:41PM (#60405115)

    20 years for Perl 6 to come out, while Larry threw in everything that caught his fancy including the kitchen sink. That language from Mars was a flop, so it was retroactively named to something else, but it was Perl 6. Now that they've lost mindshare after that two decade circle jerk they claimed they'd make a language to be the natural backwards compatible successor, Perl 7. But now they're going to go off on the path of madness again, and make yet another irrelevant curiosity that will be used by no one.

    • perl 6 was designed with "response 1." Lets just change things to work this way instead of the old way for no particular reason than that's the way I want it. If I understand "response 3" correctly, old behavior will only be changed if there are very good reasons to do so.
    • by gweihir ( 88907 )

      Indeed. Second system effect, complete failure, and they seem to have learned nothing from that disaster.

  • by slipped_bit ( 2842229 ) on Saturday August 15, 2020 @07:51PM (#60405127) Homepage

    How about they just ask the two users what the would prefer?

  • I'm waiting for Perl 8, personally.
  • It's just as readable in that direction.
  • I loved Perl but it's done, a victim of stagnation after the Perl 6 debacle.

    I haven't done any serious Perl in years and it's unlikely I ever will again. Just considering it makes people roll their eyes.

    • Good job - if everyone follows your lead, we'll never get proper UTF support on Slashdot!

      • by cas2000 ( 148703 )

        perl has had unicode support (including utf8 & utf16) for over 17 years now - native (i.e. built-in) since 5.6 in 2003 (greatly improved with the release of perl 5.8 in 2008), and via modules like Unicode::String long before either of those.

        don't blame the language for what the programmers fail to use. or, more likely, for what management doesn't give a shit about or want to spend money/developer time on.

        if they cared, they could have implemented unicode support in a few weeks....over 10 years ago.

        Even

      • by Megane ( 129182 )

        slashdot.jp (now srad.jp) has had Unicode support for a long time. The main two problems in main-line Slashdot are:
        1: wanting to white-list character ranges because people will post art (hint: they already do with regular ASCII) to the point of even blocking most named HTML character entities, then white-listing almost nothing, and
        2: apparently advertising the wrong encoding for the web page, causing the wrong encoding to be returned in the POST, or interpreting it as the wrong encoding, and then it becom

  • A Clean Destination (Score:3, Interesting)

    by crahman ( 6461600 ) on Saturday August 15, 2020 @10:43PM (#60405409)

    Perl started as a combination and extension of sh and awk. It was amazing and innovative, as all of Larry's projects were. I ported perl 1 to the PDP-11, and I loved it. Things that were hard to do became enjoyable. Most of you have no idea what things were like before perl.

    But as the years went by one kludge was pasted atop another. The language became unwieldy with horrible quantities of 'magic' incantations. It went from a wonderful extension of the Bourne shell to something dreadful. The endless extensions added vital functionality but made the language ugly and strange. It became a horrible mess.

    Larry used to wonder what would become of it, hoping of course that his child would prosper. Well it did, but now it's decrepit.

    What would be good? Well, keeping the important elements learned after many years of development but creating something new, designed with all that knowledge and experience. This new thing would most certainly not be backwards compatible. Perhaps it would be like Python but without invisible things only the computer can see to parse. This was probably a reaction to Perl's awful and noisy excesses of '$' and "::' and so forth.

    I still love perl for generating reports and for small projects. I would not use it again for something large; there are better options.

    Perhaps the time has not yet come for this new language. Perhaps perl 7 should be more about discovering what should come next than cranking out code. Perl really was about discovering what should come next all along. Thank you, Larry (and all the rest of you).

  • by zkiwi34 ( 974563 ) on Saturday August 15, 2020 @11:22PM (#60405453)

    Thatâ(TM)s the key.

  • My vote is for sane backwards compatibility, with options.

    By default, "/usr/bin/perl" should be Perl 5 compatible.

    That doesn't mean code can't contain a "options perl7" or equivalent that enables new features.

    That means it's up to the code author to use perl5 or perl7 constructs, and if you pass a perl7 program to an actual perl5 interpreter, it should halt with "Sorry, this code uses unsupported features".

    One of the reasons I still prefer Perl over python, is all of my systems can handle perl5 scripts. So

  • by scrib ( 1277042 ) on Sunday August 16, 2020 @12:01AM (#60405495)

    Make `compatible_with_perl_5_33_0` a config option or better yet make it something you can apply per file with `use perl5ish` or `use perl7ish`.
    That way Perl can continue to be all things to all people.
    And continue to be utterly awful.

    I've been a profession programmer for more than 25 years and last year got an otherwise great job working to maintain and migrate an old Perl project. I'll sum up my experience with the following phrase:
    The more I learn about Perl, the less I know about good coding practices.

    • turning on some features including ones that have some breakage has been done before in perl with "use" statements at the top of the file.

      The minimum extreme can be to simply EMBED a separate perl5 as overhead within perl7 and maintain a strong bridge between the two with "use perl5.08" as the mode flipper. So legacy modules almost entirely work without change.

      perl1-4 eventually were migrated to perl5. similar would happen but the few things that didn't could still function.

      A solid scheme for handling bre

  • If backwards compatibility is so important then just keep Perl 5 going, even just for maintenance. Because it should be obvious from the reaction that Perl 6 (Raku) got that interest in the language is mainly for legacy uses.
  • Welcome to Perl. This conversation is completely irrelevant to anyone from any other language, for the simple reason that it SOUNDS like their talking about removing backwards compatibility. They are not doing anything of the sort.

    They are talking about removing backwards compatibility BY DEFAULT.

    Currently, a very old-school (~30 years) perl programmer starts with an empty file.

    Currently, a reasonably old-school (~20 years) perl programmer starts with a file of ~5 lines. Things like "make me declare vari

  • If so, then breaking compatibility will be the death knell for those apps. However, if the Perl application development community is still vibrant, then bring on the incompatibilities and let the community keep up with progress. My guess is that Perl is looked at mostly in the rear-view mirror nowadays, so it should really just be Perl5 going forward in maintenance mode.
  • Maybe we should learn the lesson from the Python 2/3 fiasco. Perl is when it comes to features and the language capabilities still much ahead of both Python and Rails. The main problem that I see is not in the language, but in its use. Namely the way coding standard you can see at CPAN and in most example perl code, with heavy use of "use" statements and pre-compilation of most code in BEGIN blocks and the chaos created by importing way too many methods and constants into the main:: namespace. Well written

    • My opinion, as one who is admittedly not an expert and doesn't have huge systems using Python; I use it for scripting of up to moderate complexity:

      We were warned that Python3 would not be backwardly compatible; we were given tools to manage and assist with the migration; we were given YEARS after deprecating Python2 before it stopped being officially supported.

      Some part of the Python ecosystem held out and didn't update to 3, even though they had years of warning that v2 would eventually stop being supporte

      • by aralin ( 107264 )

        Well, that is sort of the thing. It did not cause any inconvenience for those working on small to moderate projects.

        I am an SRE at Cisco and I previously worked at Oracle and other companies, always supporting the development process for up to about 20k developers. So many things still depend on Python 2.7, you would be absolutely floored to see that. Python 3 is just now starting to break into the conscience of those organizations. Just starting. You have to understand that everything is running on at lea

  • Should Perl 7 Be.

    Or should it have been put out of its misery somewhere around version 3~4.

I'd rather just believe that it's done by little elves running around.

Working...