3 ms·
Due to poor coding practices (eg monkeypatching) and a weaker testing culture (by default Ruby does not run unit tests when installing libraries) I've found Rub
by btilly 4y ago
Due to poor coding practices (eg monkeypatching) and a weaker testing culture (by default Ruby does not run unit tests when installing libraries) I've found Ruby to be substantially less reliable than Perl.
However the world has moved on to Python. So I curse every time I again have to look up how subprocess works for what I'd do in Perl with backticks.
- int_19h 4y agohttps://amoffat.github.io/sh/ https://amoffat.github.io/sh/
- btilly 4y agoThe documentation for that says, "Specifically, Windows is not supported." My use case was for scripting git operations. And the list of target environments included Windows. So no, that wouldn't have worked for me.
- thenipper 4y agoCheck out plumbum: https://plumbum.readthedocs.io/en/latest/ https://plumbum.readthedocs.io/en/latest/ It supports mac, Linux and windows.
- fomine3 4y agoTIL (as a light Perl user alternative to awk) CPAN runs test on install. Is there any other language package manager runs tests by default?
- liveoneggs 4y agothat is super dangerous, just like some other dangerous parts of perl where it can run code during the compilation phase
- btilly 4y agoA lot of languages allow the running of arbitrary code on install, so it is not particularly dangerous that Perl allowed it. However you have no idea how many bugs got caught because the test run uncovered platform specific bugs. This is exactly what gave Perl a good name for being portable. Doubly so given that Perl always did this, starting back in the 1980s.
- zaphar 4y agoEven better is cpan testers who will run your cpan package on the widest variety of platforms I have ever seen. To my knowledge no other package ecosystem will do this.
- cutler 4y agoTo be fair to Python subprocess is not simply a substitute for backticks in Perl or Ruby. It's supposed to protect you from some of the more obscure problems which can happen with shell expansion.