leonerd,
@leonerd@fosstodon.org avatar

In a +1 score to 's great back-compatibility, I've had a script called from procmail that's been 100% reliable for the past 15 years maintaining my email, over many years of regular Perl updates.

A month ago it broke - because procmail. https://github.com/BuGlessRB/procmail/issues/5

But the perl itself still runs absolutely fine.

purple,
@purple@nya.social avatar

@leonerd the only personal application i've written to make it to version 1.0 and see distribution was written in perl. i picked perl because i know i won't have to spend the rest of my life keeping track of dependencies.

folks don't realize perl is the duct tape holding the internet together.

ChristosArgyrop,
@ChristosArgyrop@mstdn.science avatar

@leonerd There is a meltdown in the bioinformatics community about now for the same reasons. The stuff I wrote 20+ years ago for my PhD in & still work (after installing a modern version of PerlMagick)

leonerd,
@leonerd@fosstodon.org avatar

@ChristosArgyrop I do really wish we - the Perl community - were much much louder about this strong back-compat stuff.

You can update your perl and everything keeps running just as it did.

We really need to be shouting this from the hills.

pjakobs,
@pjakobs@mastodon.green avatar

@leonerd @ChristosArgyrop agreed! I still get the shivers from using pyenv! Perl never gave me any grief like that.

leonerd,
@leonerd@fosstodon.org avatar

@pjakobs Yeah I get that. People ask me what is the Perl equivalent of pyenv, and I ask what it does, and they explain and then I wonder "Uhm, I don't know, I've never felt a need to have that in Perl".

They wonder how I maintain different versions of Perl for different things and I say "I dunno, I just use latest for everything and it all works fine". I get these sortof blank stares of disbelief.

mjgardner, (edited )
@mjgardner@social.sdf.org avatar

@pjakobs I mainly manage different versions with (https://asdf-vm.com) to test code that has to run in less upgradeable environments elsewhere. $work, for example, susbscribes to 's Pro so we're on Perl v5.34.0 of their 22.04 LTS distribution (“ Jellyfish”).

But like @leonerd, personal stuff is on the latest.

ChristosArgyrop,
@ChristosArgyrop@mstdn.science avatar

@mjgardner @leonerd @pjakobs I just use for this, though the shebang gets in the way

mjgardner,
@mjgardner@social.sdf.org avatar

@ChristosArgyrop @leonerd @pjakobs #!/usr/bin/env perl

is the typical way to call whatever happens to be first in your environment's path

The nice thing about is it reads a .tool-versions file in a given project's directory and will use the specified perl, ruby, node, whatever version via its shim scripts: https://asdf-vm.com/guide/getting-started.html#_6-set-a-version

I used to use , which is like plus asdf but for Perl only: https://github.com/tokuhirom/plenv

perigrin,
@perigrin@nerdfight.online avatar

@mjgardner @ChristosArgyrop @leonerd @pjakobs I use plenv in my development environments, and whenever I have a machine that has the misfortune of me being its admin. I specifically use plenv because it supports the .perl-version file so I can commit that to the repo.

I also heavily use Carton so all my libraries are installed in a local/ directory.

My production environment is containerized so I used the perl:latest Docker image.

perigrin,
@perigrin@nerdfight.online avatar

@mjgardner @ChristosArgyrop @leonerd @pjakobs Also one of the great benefits of my current employment situations is that my production is not only using 5.38 but it’s using feature class extensively.

mjgardner,
@mjgardner@social.sdf.org avatar

@perigrin @ChristosArgyrop @leonerd @pjakobs Brave lad, shipping experimental dependencies

isotopp,
@isotopp@chaos.social avatar

@leonerd @pjakobs

To be fair, I never had need for Pyenv before I had to have a Python 2.7 to run old Python 2.5 code to be able to port it to Python 3.

mcgrew,
@mcgrew@dice.camp avatar

@leonerd @pjakobs to be honest I think the pyenv users are crazy. I've been developing in Python for 20 years and I've never used it.

Migrating from Python 2 to Python 3 did break a lot of stuff, but aside from that I seldom have a problem. I suppose third party libraries do sometimes break things, but that's not really Python's fault.

I think the problem stems from the over-introduction of dependencies. I blame java & typescript devs for that culture.

raptor85,
@raptor85@mastodon.gamedev.place avatar

@mcgrew @leonerd @pjakobs Python updates are probably the most painful thing about maintaining linux systems, even minor point releases tend to make everything incompatible and require waiting for software updates, so you end up with nonsense like having 5 different python environments to support different system tools because of breaking changes requiring rewrites even in point releases. Major distros "hide" this problem from you but it's BAD with python.

sldrant,
@sldrant@mastodon.social avatar

@leonerd @pjakobs I know stuff must break in perl upgrades, but I never experienced it when I was a perl dev. Testing was just part of all code in cpan

foo,
@foo@fosstodon.org avatar

@leonerd @pjakobs I'm an old 90s/2000s Perl programmer. Since then I've come to like Python /as a language/ better and that now accounts for about 90% of my coding, but it can't be ignored that there are some Perl scripts I wrote literally 20 years ago are still running unmodified on modern Perl.

penryu,
@penryu@hachyderm.io avatar

@leonerd @pjakobs True. The key being that Perl hasn't really changed (at least not in any way that would really break code) in 20+years.

I never really understood why a language so ostensibly simple and straightforward as Python couldn't do the same.

jwz,
@jwz@mastodon.social avatar

@leonerd @pjakobs That time I dug out a perl script I wrote 25 years ago and haven't touched since, ran it on some historical data with the current version of perl, and it just worked: https://jwz.org/b/yj88

Sdowney,
@Sdowney@mastodon.social avatar

@jwz @leonerd @pjakobs
Entirely abandoning the perl6 project while perl5 was unchanged for a decade has a lot to do with all this.

leonerd,
@leonerd@fosstodon.org avatar

@Sdowney @jwz @pjakobs Yeah; that whole "Perl 6" distraction was unfortunate, yes. That particular project has now been renamed Raku thus leaving Perl a clear runway to bump the version number up to 7 and onwards someday, so it's at least fixed now.

Though sure that reputation still hangs around far longer... Not a lot we can do about that, besides trying to override it with more positive noises now.

Sdowney,
@Sdowney@mastodon.social avatar

@leonerd @jwz @pjakobs it did have the benefit of keeping all of the people who wanted to make breaking changes occupied, leaving those who wanted to get work done a stable platform to do so with.

leonerd,
@leonerd@fosstodon.org avatar

@Sdowney @jwz @pjakobs A charitable way to consider it, is that it split the group into "make new thing" and "keep existing thing" camps.

In reality I fear the outcome was more that it also created a third camp of "screw this I'm off elsewhere", and a lot of otherwise-good devs just disappeared.

It's certainly a regrettable part of history I wish had not happened. But then you can say that of a lot of historical happenings ;)

jwz,
@jwz@mastodon.social avatar

@leonerd @Sdowney @pjakobs Yes, exactly! Perl 6 was a perfect honeypot to get those people out of the way. It was the Golgafrincham B Ark of language design. Look, over here, shiiiiiiny.

pjakobs,
@pjakobs@mastodon.green avatar

@jwz @leonerd @Sdowney that might be a tiny bit mean, but it's funny :D

mjgardner,
@mjgardner@social.sdf.org avatar

@pjakobs @jwz @leonerd @Sdowney I think it’s charitable to the 6 splitters. The Golgafrinchan Ark B group in "The Hitchhiker's Guide to the Galaxy" was mostly harmless 😉 (and useless); the effort was, at best, neglecting compatibility, and at worst, actively throwing bombs at it.

Sdowney,
@Sdowney@mastodon.social avatar

@mjgardner @pjakobs @jwz @leonerd except for the people responsible for handset sanitization.

mjgardner,
@mjgardner@social.sdf.org avatar

@Sdowney @pjakobs @jwz @leonerd If the human race succumbs to extinction via dirty telephone handsets due to a lack of twigils and hyper operators, we will have deserved it.

jacobydave,
@jacobydave@mastodon.xyz avatar

@Sdowney @jwz @leonerd @pjakobs Perl changed a lot between 5.8 and 5.38. It was just backward-compatable.

jbqueru,
@jbqueru@fosstodon.org avatar

@leonerd @ChristosArgyrop Maintaining compatibility is proper software engineering, something to be definitely proud of.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • megavids
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • provamag3
  • JUstTest
  • All magazines