I should have also mentioned that I was tilly on Perlmonks. For a long time I was the top rated poster, on the dominant question and answer site for Perl questions.
Life is alright I suppose. There’s been a lot of cancer in our families, which is rough. There’s been some wonderful responses to treatment though. My job since late 2022 I mostly really like. My fiancee and I moved from Texas back to Illinois in June. We got engaged in late August.
I’m sorry to hear how life’s treating you. I wish you well.
If you want to connect on some social media platform, I’m on FB, Mastodon, and Bluesky. Or I do check Perlmonks still once in a while, and Slashdot.
Between perlbrew and cpanm it's pretty easy to have multiple perl installs with different versions and quite simple to manage your dependencies.
Carton (manage and bundle your perl modules based on lock files) and Pinto (easily run your own private CPAN) provided the icing on the cake that made things really powerful.
I miss working in Perl, but the job market has pulled me in other directions.
This combined with a cpanfile is how I rescued someone else's workshop from being an "Install these missing dependencies" session to being back on track in 3 minutes with "Here's this file, run 'cpanm --installdeps --notest .'"
If they specified ‘perldoc -v $|’ instead of just ‘man perldoc’ I’d have been thankful for that as the entire response. It’s literally a pointer to where the answer is and to how to use the canonical tool to find it.
I think more specifically it was the hesitance to move Perl 5 significantly forward in the meantime that caused the damage. That has been decidedly changed the last few years, with great strides being made. That time in between is lost, though.
This is the key - you need to cannibalize from the "new" for the "old" if you're making a grandiose change with no set release date. Perl 5 continuing to get some "back ported" improvements from Perl 6 would have kept it alive for quite a lot longer.
You run the risk of killing the new in the cradle, though, and often that scares people.
It’s strong as a better shell. Perl is even getting an increasingly good and complete default object model in the core language. One of the big complaints was always that the TIMTOWTDI included object libraries, of which there are many. Most of the popular ones are working on becoming wrappers around the new core one, and you can write new code directly with what’s in core.
One of Python’s killer features is how easy it is to find a Python library wrapping some native code library written in C or Fortran. Those used to be notoriously difficult to write for Perl.
I was writing a comment asking if it was really easier. Then I took a look at Cython. Yes, this looks easier than Perl's XS, which I have some experience with! There are ways to do something similar in Perl these days, notably https://metacpan.org/pod/FFI::Platypus. But these are relatively new (starting in the 2010s) compared to the history of Perl, and Cython goes back to the early 2000s.
Somewhere in the continuum from SWIG through XS and on to Platypus there are also the Inline modules these days. They allow one to put inline sections of other languages into Perl code the way many language tools used to allow one to inline assembly into C or Pascal code.
There are some of these modules for other languages than those listed here, a lot of them as high level as Perl (including Raku and even another Perl system for some reason).
True. For whatever reason, these never displaced XS. For wrapping C libraries in particular, it's not clear to me how much Inline::C helps with this. You're still stuck using a lot of Perl C API calls, AFAICT, which I think is the biggest challenge of using XS (I still have nightmares from trying to figure out where and when to add `sv2mortal` in my XS code).
One or two calls into a library with a simple C interface isn’t that bad with Inline. You just use Inline to handle the Perl to C to Perl part, and actually do the interfacing in the inline C. It’s a lot more mess if you’re doing complex things and bringing complex data structures back to Perl, or having Perl make a lot of intermediate decisions and doing a lot of round trips. So if you use Perl to get the data ready to pass in, pass it in, do all the work in C that you need the library for, then pass the results back to Perl once it’s not terrible.
I’ve tried not to get into XS, so I couldn’t really compare.
Using Inline::C with your own C code in places where Perl is too much overhead is certainly easier than wrapping a complex existing library with a lot of interactions across the boundary.
FFI::Platypus or something like it really is the way of the future though for existing C calling convention libraries in other languages.
What exactly are we counting as “a conditional”? Is it only “if” statements? Do “case” or “switch” statements count? Do loops with loop conditions count? Do all the included functions being abused count for all the conditionals in them? Do short-circuited boolean operations count, or only boolean variables?
I mean, if we want to play fast and loose with those definitions then this also has no conditionals and no booleans.(Warning: Perl, somewhat golfed)
There are also only certain ways each character can tell him those things without him shooting them down and shutting them out. Chuckie is a lot more free to talk to him about where he’s coming from and a lot more free to be blunt than his new math mentor. If we over-apply logic to human relationships and human experience without consideration for the depth and breadth of those in people’s lives, then we’re not actually being that logical in the end.
Chuckie is the one who can say that so plainly to his face, too. A math professor he’s only getting to know saying plainly that his life to this point is inferior, that he should leave all his friends and compatriots behind, and that he’s wasting his time with the people he loves is going to come off as condescending and arrogant.
Showing him his potential and telling him he can do great things is awesome. Crapping all over him for not having the background of the average student would just push him away.
A few things in the article are Douglas Adams quotes, and more specifically from the Hitchhiker’s Guide series.
Creating the universe being regarded as a mistake and making many unhappy is from those books. Whenever someone figures out the universe it gets replaced with something stranger and having evidence that’s happened repeatedly is too. The Restaurant at the End of the Universe is reference in the article.
I’m a bit surprised nothing in the article was mentioned as being “mostly harmless”.