One huge pain point for me in perl 5 was just how incredibly slow CPAN was compared to `go import`, like two orders of magnitude slower. I remember putting up with those times in the ‘90s because package management was a kind of miracle over FTP sites, but it’s a big ask in today’s world.
What’s raku’s story here, out of curiosity?
the raku package manager - zef comes bundled with the rakudo compiler - I use https://rakubrew.org
https://raku.land is a directory of raku packages
I would say that zef is very good (it avoids the frustrations of Python package managers like pip and conda) like perl before it, raku was designed with packages and installers in mind with a concern for a healthy ecosystem
for example, all versions (via the META6.json payload descriptor) carry versioning and the module version descriptor is a built in language type https://docs.raku.org/type/Version that does stuff like this:
say v1.0.1 ~~ v1.*.1; # OUTPUT: «True»
and this zef install Dan::Pandas:ver<4.2.3>:auth<github:jane>:api<1>
and this use Dan::Pandas:ver<4.3.2+>:auth<github:jane>:api<1>;
(of course, authors must authenticate to upload modules)
raku has good package compatibility via Inline::Perl5 and Inline::Python and FFI to languages like Rust and Zig
among the many downsides of the transition, one upside is that raku is a clean sheet of paper and has some interesting new work for example in LLM support
I have started work on a new raku module called Dan::Polars and would welcome contributions from Numpy/Pandas folks with a vision of how to improve the APIs and abstractions … it’s a good place to make a real contribution, help make something new and better and get to grips with some raku and some rust.
just connect via https://github.com/librasteve/raku-Dan-Polars if you are interested and would like to know more