Perl 5 can be terse or verbose depending on your needs. It is not "one size fits all" like Python, it fits many different sizes depending on your needs (TIMTOWTDI).
You also have tons of modules available via CPAN, so you can get a script done quickly.
Don't get me wrong: I use Python too, but some systems only have Python 2 and Python's significant white space can be problematic at times. Perl is an old, reliable camel that you can trust to get you through your problem desert quickly, frequently before the Python caravan has started out.
Perl 5.30 just came out in May. So it is still actively being maintained and improved.
Perl 5 is included by default in most Linux distros and there are Perl distributions available for all major operating systems and platforms. (See http://www.cpan.org/ports/index.html for the comprehensive list.)
Obsolete != Trendy / popular
Perl 6 was a bit slow to start and has not seen wide adoption. With Python, Ruby, and now even Powershell as scripting competitors, people have more options and aren't choosing it as much.
Perl 5 was an easy choice when it was practically a standard part of LAMP stacks via mod_perl in the Apache web server. Now there are so many backend web server choices you can pretty much use any major programming language.
I don't think Perl 6 will displace Perl 5. Perl 5 may even out last Perl 6.
Seriously?
#LeftPad listen I get the negatives. I’m not on HN to argue with people who are too buy letting good be the enemy of great. I’ve got work to do and NodeJS lets me do that. If you want to hate or spread FUD then that’s on you, me? I’ve got better things to do.
I have probably written a hundred data migration scripts (call bunch of services/databases, parse/move data around, etc) and Node is an awesome fit.
Speed isn't even a concern because my script isn't going to be the bottleneck.
Just like every language ever, it has some warts, and it has some features that make it less readable and maintainable, but POSIX shell above all others (to me) having less features actually makes it easy to avoid the pitfalls.
Of course in general I don't write massively complicated programs in POSIX shell but that's not the point, but it can take you very far, you just have to wrap your mind around how to implement certain things compared to other languages. I think the time taken to do that, in the long run will pay off. Of course if figuring it out takes too long, then move on to something else.
As for the something else Perl is a very good candidate and is influenced in certain ways by shell programming. It just makes things easier. To me Perl is as readable as Python. I say this as someone who uses Python and Node.js in the day job, so in terms of LOC they are my main used languages, it's just that POSIX shell and Perl are better suited to the tasks as stated by the question. Also they are more portable, as in, both seem to be already present on a lot of Unices (I have no idea about macOS which I never have to touch or really care about).
EDIT: also virtualenvs make my head explode. I think node/npm is currently the best in terms of dependency management.
import subprocess
subprocess.run(["ls", "-l"])
# or
subprocess.run("exit 1", shell=True, check=True)
Reference: https://docs.python.org/3/library/subprocess.html
exec ls -l
from subprocess import run run("ls -la".split())
This is what I do to reduce noise
$groovy -e ' println "ls -l /".execute().text'
Without the "run the example on the command line" baggage, it reduces to: println "ls -l".execute().text
assuming you just want to spit out the results. What's nice about this is that it's ultimately just syntactic sugar over the standard Java ProcessBuilder / Process mechanism, and it's relatively easy to support more advanced cases like defining your own input, output, and error streams for the underlying process, etc.Sadly Rails outshined plain Ruby, except in Japan.
I tried learning Perl once but reverted back to Bash the first thing I needed to do something in a hurry. And, my IDE is also my interpreter. It's pretty hard to argue with. I can just take a one-liner and throw it in a file and now I can distribute it. It's that simple.
I suppose if I could write Python one-liners (maybe you can, I don't know...) and it was as universally installed and configured, I'd use it- if I needed to.
What it comes down to is this: My needs are simple, and if I can't do it in bash, then I'm probably going about it wrong.
$groovy -e ' println "ls /".execute().text'FWIW, Rexx is readily available on Linux.
[prhodes@whiskey pdfs]$ dnf search rexx
Last metadata expiration check: 0:29:48 ago on Sat 06 Jul 2019 10:50:28 PM EDT.
========================================================== Name & Summary Matched: rexx ==========================================================
oorexx.x86_64 : Open Object Rexx
oorexx.x86_64 : Open Object Rexx
oorexx-libs.x86_64 : Libraries for ooRexx
oorexx-libs.i686 : Libraries for ooRexx
oorexx-libs.x86_64 : Libraries for ooRexx
brexx.x86_64 : Classic Rexx Implementation
oorexx-docs.x86_64 : Documentation for ooRexx
oorexx-docs.x86_64 : Documentation for ooRexx
rexx-imc.x86_64 : IMC's interpreter for the Rexx
oorexx-devel.x86_64 : Header files and libraries for ooRexx
oorexx-devel.i686 : Header files and libraries for ooRexx
oorexx-devel.x86_64 : Header files and libraries for ooRexxNetRexx is also open source and readily available, which is one more option for any Rexx junkies out there.
I know he has taken a liking to Dart / Flutter, but I have not seen / heard what he said.
I mostly use ruby, but perl5 and python will do, too.
To write: escript (part of Erlang)