What happened to Perl 7?
What happened to Perl 7?
Posted May 27, 2022 19:25 UTC (Fri) by Gladrim (subscriber, #45751)In reply to: What happened to Perl 7? by NYKevin
Parent article: What happened to Perl 7?
Did I insist on postulating that all new features break ... anything? I don't think so.
Is there an increased risk of breakage if the rate of change increases? Yes. Of course.
Do I think it's where a mature, stable language should be focusing its energy? No.
YMMV
Posted May 27, 2022 23:36 UTC (Fri)
by tialaramex (subscriber, #21167)
[Link]
Maybe that's less obvious than you think it is. Once we accept that change is inevitable (which you seem to) then there's actually some reason to think we should prefer a somewhat steady tempo of change, not necessarily the minimum possible delta.
One reason is rust. Not the language, the problem. If you don't exercise freedom of motion it rusts into place without you realising. This is why TLS 1.3 is spelled SSL 0x0303 on the wire, first TLS needed to pretend to just be SSL 3 (hence TLS 1.0 was SSL 3.1, TLS 1.2 wsa SSL 3.3 aka 0x0303) and then even that rusted into place so TLS 1.3 pretends to be TLS 1.2 or else it won't work. So long as Perl ships new versions with new syntactical features every year or two, the propensity for things to rust into place can be curtailed, but imagine if Perl today and Perl from 2008 had the exact same syntax, by now some software would expect and require that syntax. New Perl would find that introducing features, even much needed and long awaited features, tripped this rusted into place hazard despite the supposed promise to be able to exercise this option. Ouch. You may have experienced something similar with muscle tone if you had "stay at home" restrictions during the pandemic.
Also, a steady pace of change means that tooling and culture adapts properly. If the last substantive change to Perl syntax had been in 2008, what's the chance automated testing catches syntax errors related to a new change made tomorrow? Approximately zero. But if such changes happen about every 18 months on average there's a good chance somebody actually wrote a test by now. Likewise if the last change was 2008 people who expect to be warned might not realise they weren't tracking this any more. People forget how the process works. If there are on average two features proposed every year, experienced users know how to read a proposed change, where to debate it, stuff like that. The community is prepared for, and equipped to handle change, because it's just routine.
Posted May 29, 2022 23:57 UTC (Sun)
by rra (subscriber, #99804)
[Link]
Perl has been exceptional at backward compatibility for many years. I have code I wrote in 1999 that is still running with no changes whatsoever. Given that, I'm happy to extend the benefit of the doubt and assume that this work will be done with the usual amount of care and deliberation, and I'm happy that they're working their way through the backlog of experimental features that were added to the language and then never resolved one way or the other.
Posted May 29, 2022 23:58 UTC (Sun)
by NYKevin (subscriber, #129325)
[Link] (3 responses)
Look, I've been there. I know that changes cause breakage, and I know that you can stop things from breaking if you stop making changes. The problem is, that's a short-term solution at best. For a few weeks or months, this can be highly effective:
* You had a bad week, you're all out of error budget, and you need some time to recover your SLO.
The problem is that this is not sustainable in the long run. You can't just freeze prod forever. The world is going to move on, with or without you. Eventually, you will need to change prod, and if it's been frozen for the past three years, then you are basically screwed, because you'll have to completely rebuild and redeploy absolutely everything, and make a massive change all at once. Some software won't exist anymore. Some software will exist, but will no longer be meaningfully maintained. Every piece of your technology stack is moving at a different speed, and you'll have to redo all of your version mix-and-matching from scratch. This is much, much riskier than smaller, incremental changes on a more frequent basis.
A language that barely changes is not a good thing. It's a liability. Eventually, developers will tire of working in that language, because it is missing features relative to other languages, and some of them will stop maintaining libraries and other stuff that you (probably unknowingly) depend on. Or they will get old and die/retire, and nobody will be interested in picking up the work, so it will go unmaintained by default. It's the https://xkcd.com/2347/ problem, but on a language-wide scale.
Posted May 30, 2022 14:24 UTC (Mon)
by tialaramex (subscriber, #21167)
[Link] (2 responses)
One of the problems we repeatedly had in the Web PKI is that institutions will agree that "End of next year" is an acceptable last cut off, but then as December Y+1 approaches, they suddenly remember that they've got a "No changes during the holidays" policy - once their employees sign off before Thanksgiving (or similar) they won't make any changes until after New Year - and so, now they want the thing they agreed for December pushed back to February. Nope, if you really can't make changes during the holidays, when you agreed "End of next year" you needed to schedule in work before the holidays to hit that deadline. That's how time works. You aren't being "pragmatic" or showing "foresight" you are in fact incompetent because you are going to fail and then redefine it as success.
However, some of this stuff is getting easier as our industry matures. Examples: There probably won't ever be another encoding for the character 'A' having settled upon 65. If your code written in 1985 chose ASCII 'A' of 65 it's still fine today in an environment where UTF-8 'A' is deliberately also 65, while some of the other 1960s encodings did not agree. There's a good chance you'll never need a different symmetric encryption algorithm, AES is fine for conceivable problems. It looks like we're agreed that the octet is a byte and too bad if that's inconvenient. Even some ideas in programming are probably here to stay. As a result, although I agree change is constant and it's something Perl is wise to embrace as necessary and good, we shouldn't expect more seismic changes, often or perhaps ever. If Perl 7 ever does happen, I expect it will be less different from today's Perl than that Perl is from Perl 4 despite the big number.
Posted May 30, 2022 16:21 UTC (Mon)
by NYKevin (subscriber, #129325)
[Link]
Posted May 31, 2022 23:12 UTC (Tue)
by bartoc (guest, #124262)
[Link]
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
* Your company is having a big presentation or other event, and it would be really embarrassing to have an outage right at this moment.
* It's the holidays, and you really don't want to be stuck troubleshooting a production issue from your parents' house, while your great-but-technologically-illiterate uncle is trying to sell some cryptocurrency scam to your second cousin downstairs, when you would otherwise be able to prevent that transaction from taking place.
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?