|
|
Subscribe / Log in / New account

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?

"We want to drive the language forwards, increasing the rate at which new features are introduced"

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.


to post comments

What happened to Perl 7?

Posted May 27, 2022 10:12 UTC (Fri) by jorgegv (subscriber, #60484) [Link]

Absolutely +10!!

What happened to Perl 7?

Posted May 27, 2022 12:31 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link] (17 responses)

> 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.

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.

What happened to Perl 7?

Posted May 27, 2022 13:04 UTC (Fri) by Gladrim (subscriber, #45751) [Link] (16 responses)

Why does a mature programming language (>30 years in this case) need to be rapidly adding new features? I'd dubious that this should be a goal, or that it is compatible with being a stable, usable language.

What happened to Perl 7?

Posted May 27, 2022 15:03 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link] (3 responses)

> Why does a mature programming language (>30 years in this case) need to be rapidly adding new features?

Other languages including C++ and Python are adding new features all the time despite being decades old. This is hardly unusual.

What happened to Perl 7?

Posted May 27, 2022 16:39 UTC (Fri) by Gladrim (subscriber, #45751) [Link] (2 responses)

Unusual? Sadly not. Car accidents aren't unusual either. Doesn't mean they're a good idea or something we should aspire to involve ourselves in.

What happened to Perl 7?

Posted May 27, 2022 20:30 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

> Unusual? Sadly not. Car accidents aren't unusual either.

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.

What happened to Perl 7?

Posted May 27, 2022 21:07 UTC (Fri) by Gladrim (subscriber, #45751) [Link]

It was a simple illustration that just because something is "hardly unusual" doesn't mean it's a good thing.

> 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.

What happened to Perl 7?

Posted May 27, 2022 16:33 UTC (Fri) by tialaramex (subscriber, #21167) [Link] (11 responses)

Turns out we learn stuff over time, in thirty years you can learn a lot. And as a result you may wish to introduce features reflecting what you learned. If the language insists on conservatism then the language as a whole reaps no benefit from what you learned, each individual programmer must cherish the lessons and maybe hope to pass them on, but the language doesn't help at all.

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.

What happened to Perl 7?

Posted May 27, 2022 16:47 UTC (Fri) by Gladrim (subscriber, #45751) [Link] (10 responses)

Perl has evolved over thirty years, sure. So has C. Neither have evolved particularly rapidly, which is something I like about them. Perl6 aside, perl has been reasonably stable. I don't think speeding up the rate of change of a language is a worthwhile goal. Quite the opposite. There are plenty of fast-moving languages where this morning's code is this afternoon's bitrot. And whole new languages to try with different features for those that need or want to try them.

What happened to Perl 7?

Posted May 27, 2022 18:58 UTC (Fri) by NYKevin (subscriber, #129325) [Link] (7 responses)

> languages where this morning's code is this afternoon's bitrot

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.

What happened to Perl 7?

Posted May 27, 2022 19:25 UTC (Fri) by Gladrim (subscriber, #45751) [Link] (6 responses)

No, my original comment was simply stating that I don't view faster moving as a benefit. It's not what I look for in a language. Quite the opposite. That was all.

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

What happened to Perl 7?

Posted May 27, 2022 23:36 UTC (Fri) by tialaramex (subscriber, #21167) [Link]

> Is there an increased risk of breakage if the rate of change increases? Yes. Of course.

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.

What happened to Perl 7?

Posted May 29, 2022 23:57 UTC (Sun) by rra (subscriber, #99804) [Link]

You seem extremely upset over a possible problem that you have identified based on a small portion of a blog post and essentially no other confirming information. Maybe consider that you might be overreacting to a phrasing that happened to hit a sore point for you?

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.

What happened to Perl 7?

Posted May 29, 2022 23:58 UTC (Sun) by NYKevin (subscriber, #129325) [Link] (3 responses)

(puts SRE hat on)

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.
* 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.

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.

What happened to Perl 7?

Posted May 30, 2022 14:24 UTC (Mon) by tialaramex (subscriber, #21167) [Link] (2 responses)

For the holidays one, I'd really like companies who insist they can't change anything during the holidays to understand that this means they need to bring changes forward, to before the holiday.

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.

What happened to Perl 7?

Posted May 30, 2022 16:21 UTC (Mon) by NYKevin (subscriber, #129325) [Link]

Always read and understand the fine print. If the fine print says that the year ends in February, then unfortunately, that means the year ends in February (for the purposes of that agreement). If the fine print doesn't say any such thing, then sure, hold them to their promises. Not pushing things during holidays is obviously a foreseeable event and they should plan for that. But it's possible that they "planned" for it by sticking a clause in the contract to allow for a delay, rather than by actually doing the work on-time like a sensible company.

What happened to Perl 7?

Posted May 31, 2022 23:12 UTC (Tue) by bartoc (guest, #124262) [Link]

You say that about encodings being stable (and they are for latin alphabetic characters) but there's a few characters in the 7-bit ascii set with a different encoding under GB18030, which is an encoding we'll probably have to care about for a long time, at least a little bit. That said UTF-8 is objectively better so I suspect the Chinese will slowly start to sunset 18030.

What happened to Perl 7?

Posted May 28, 2022 2:58 UTC (Sat) by rsidd (subscriber, #2582) [Link] (1 responses)

Also, perl dominated in the 1990s. Those new languages took away a lot of its mindshare because they had features programmers actually liked.

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?

What happened to Perl 7?

Posted May 31, 2022 9:16 UTC (Tue) by anton (subscriber, #25547) [Link]

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?

Posted May 30, 2022 15:11 UTC (Mon) by jafd (subscriber, #129642) [Link] (2 responses)

I’d also like some performance improvements on top of what you said.

What happened to Perl 7?

Posted May 30, 2022 16:25 UTC (Mon) by pebolle (guest, #35204) [Link] (1 responses)

I would go for a pony!

What happened to Perl 7?

Posted Jun 2, 2022 1:52 UTC (Thu) by NYKevin (subscriber, #129325) [Link]

That's easy, just pass O_PONIES to open(2).


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds