>Perl is portable shell — Guy Keren

Which still has many of the terrible problems of the shell, because its original design was an imitation of several different shell scripting languages.

If all you know is Perl and you're incapable of learning any other languages, or for some perverse reason you like the way Perl scripts look just as incomprehensible as shell scripts, and you're absolutely sure nobody else will ever need to look at or maintain your code, then by all means use Perl. But if you don't hate the people who will have to clean up after you or decipher and maintain what you're done, then please use Python or JavaScript instead of Perl or shell scripts.

I can understand Python (it has a library in stdlib for running subprocess, and it is specially good after Python 3.4). However AFAIK JavaScript is bad for shell scripting. You need a external library to have sane subprocess call, unless you give up and allow command injection inside your scripts. Last time I looked even the alternatives in npm were not as good as what Python offered in stdlib.

Actually, I don't know many languages that have a good way to call subprocess in stdlib. Ruby's Open3 comes in mind, however the API is kind horrible.

You didn't think I meant running JavaScript in the browser, did you??!

Of course JavaScript has an external library for sane subprocess calls, and is perfectly fine and commonly used for writing process management and system administration scripts. Please google "node.js" and "npm".

[Edited for tone -- thanks mkesper.]

Javascript and numerics. That is my takedown of javascript. If you don't know why its bad for numerics[1] or just generally weird [2][3] ...

No, JS shouldn't be used as a systems language IMO. It gives you enough rope to shoot yourself in the foot (multiple mixed metaphors for a reason).

[1] https://charlieharvey.org.uk/page/javascript_the_weird_parts

[2] https://hackernoon.com/js-wtf-with-math-79da9a941ec1

[3] https://github.com/denysdovhan/wtfjs