12 ms·
I don't think working on the perl5 internals is quite as hard as you make it sound. Yes, there's brittle dependencies between many parts. Yes, it's a very compl
by smueller1234 8y ago
I don't think working on the perl5 internals is quite as hard as you make it sound. Yes, there's brittle dependencies between many parts. Yes, it's a very complex piece of software (and in intrinsic and implementation specific ways). But the single biggest barrier for Perl devs to hack on it is that most of them aren't also great C programmers. To wit, I'd tried many times to get the hang of it as a Perl dev and struggled. After I learned C properly for unrelated reasons, the nextb attempt went swimmingly. I've also seen folks show up on the porters list and get up to speed in just a few weeks.
Now, I'll concede the point regarding language design though: the Perl 5 Porters have become very conservative wrt language evolution. I used to be highly skeptical of this (I convinced folks of strict by default in 5.12 and oh how much I lobbied behind the scenes for fully @_ eschewing function signatures!) but since we made a number of blunders in such changes in the decade prior, I understand the conservativism.
- justinator 8y agoI don't mind conservative changes to the language honestly. Knowing that what you get is what you get is quite empowering. But I'm not going to confuse and lie to myself into thinking there's going to be massive new features in any new version of Perl (5). That's what Perl 6 was supposed to be, but "Perl 6" isn't Perl and that's not a great thing, as choices to add to my tool box just puts Perl 6/Raku in line against Python, Ruby, Scala, Java, etc, etc, etc. I'm not saying anything new... that's the existential crisis created by not having backwards compat. Does Perl 6/Raku seem AWESOME?! Yeah; but not production-ready. The idea of extending things via modules in Perl 5 was a great one, but there's a limit on what you can without features guaranteed to be in core. I also get the idea that keeping the core small is probably a good one (by not shipping every module in the world), and keeping the language opinionated (by letter you select just what type of meta-object system you want, but after a while, it doesn't seem like these things help with architecting a future for the core language. So it goes, I suppose.