What happened to Perl 7?
What happened to Perl 7?
Posted May 27, 2022 9:23 UTC (Fri) by Gladrim (subscriber, #45751)Parent article: What happened to Perl 7?
That's pretty much the opposite of what I look for in a programming language.
I want stable. I want my programs to run unchanged in 10 or 20 years time. Sure, *bugs* need fixing, but programs shouldn't need updating because the language has changed underneath them. That kind of breakage is what frameworks are for.
Posted May 27, 2022 10:12 UTC (Fri)
by jorgegv (subscriber, #60484)
[Link]
Posted May 27, 2022 12:31 UTC (Fri)
by rahulsundaram (subscriber, #21946)
[Link] (17 responses)
There is nothing at all wrong with accelerating the rate of change as long as backward compatibility is maintained and Perl developers have a good track record of doing so. I don't see the problem.
Posted May 27, 2022 13:04 UTC (Fri)
by Gladrim (subscriber, #45751)
[Link] (16 responses)
Posted May 27, 2022 15:03 UTC (Fri)
by rahulsundaram (subscriber, #21946)
[Link] (3 responses)
Other languages including C++ and Python are adding new features all the time despite being decades old. This is hardly unusual.
Posted May 27, 2022 16:39 UTC (Fri)
by Gladrim (subscriber, #45751)
[Link] (2 responses)
Posted May 27, 2022 20:30 UTC (Fri)
by rahulsundaram (subscriber, #21946)
[Link] (1 responses)
This is a bogus comparison. Car accidental are strictly harmful. Language changes can introduce substantial new widely anticipated features that are objectively an improvement to developers (I can point to any number of relatively recent C++ changes as examples here) although not universally so. If you have a preference for a more static language, just stick to an older version or continue using a language that barely changes at all, Perl may not be suitable for you. As long as backward compatibility is maintained, I still don't see a problem.
Posted May 27, 2022 21:07 UTC (Fri)
by Gladrim (subscriber, #45751)
[Link]
> If you have a preference for a more static language, just stick to an older version or continue using a language that barely changes at all, Perl may not be suitable for you.
Precisely. I think that was clear from my first comment.
Posted May 27, 2022 16:33 UTC (Fri)
by tialaramex (subscriber, #21167)
[Link] (11 responses)
There's a lot of room between stuff that's hot this week but nobody will care about a year from now [which I agree Perl has no need for], versus stuff that if you still don't have it ten years from now people will laugh at grandpa's language for old-timey computers. I don't think the people writing this essay expect to ship a new Perl feature every week, but on the other hand it gets old fast when you're teaching newcomers your language but have to caution them that the feature you added *last* year still won't really be usable *next* year because the ecosystem is so slow to adopt change, so here's a nasty hack instead.
Posted May 27, 2022 16:47 UTC (Fri)
by Gladrim (subscriber, #45751)
[Link] (10 responses)
Posted May 27, 2022 18:58 UTC (Fri)
by NYKevin (subscriber, #129325)
[Link] (7 responses)
The baseline assumption of this discussion is that we don't break backwards compatibility. If you insist on postulating that all new features break backwards compatibility, then yeah, you're going to come to the conclusion that new features are bad.
That conclusion is wrong, though.
Posted May 27, 2022 19:25 UTC (Fri)
by Gladrim (subscriber, #45751)
[Link] (6 responses)
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]
Posted May 28, 2022 2:58 UTC (Sat)
by rsidd (subscriber, #2582)
[Link] (1 responses)
Python continues to dominate despite all the whining about python 3, because it is a good language that continues to add new features (eg, recently, pattern matching which is something I sorely missed from ML-type languages like ocaml). A bit longer ago, python 2 added list comprehensions (borrowing from haskell) which I personally use all the time, far more expressive (to my eyes) and more concise than map+filter. Who wants to use python 1 today?
Posted May 31, 2022 9:16 UTC (Tue)
by anton (subscriber, #25547)
[Link]
Posted May 30, 2022 15:11 UTC (Mon)
by jafd (subscriber, #129642)
[Link] (2 responses)
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
What happened to Perl 7?
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?
What happened to Perl 7?
I was puzzled by what you wrote, but I think you meant: "Pattern matching is something from ML that you sorely missed in (earlier) Python."
What happened to Perl 7?
What happened to Perl 7?