yea its still used for shell/web/config management. i would only use it for data conversion and shell scripts anymore. not serious: you can learn good and bad of language design. i guess its going away b/c u can use php/node/ruby/python for scripts more and there are more stand alone apps for shell to do jobs you used have to code by hand in perl.
Perl I think, if nothing else, shows a great example of how a language can evolve dramatically. You can almost date the code you're reading (or the programmer, or the age of the online tutorials the coder read) based on style of the code.
I've been paid to write perl in a team maintaining high-volume web properties and internal APIs for a large telco, and I also spent a few years in a Bioinformatics role which used it a fair bit at a national science agency (the research community in that particular corner of the discipline had some pretty awesome tools/libraries written in perl, but the full gamut of stuff we used also included ruby, python, R, C, Fortran...)
Just a few days ago I wrote how I missed Perl's Moose OO framework now that I'm doing mostly Python [1] [2], and that interestingly it's this that has prompted me to think more seriously about using a more strongly/statically typed language for large projects in future.
I'm at a military hospital, the only language they'll allow is perl. But I can have any version I want installed (eg Padre). But I can remote I to HPC systems with ipython. Not sure if the left hand is talking to the right.
Although large organisations tend to have a goal of minimizing the number of languages and platforms they depend on, rarely does this turn out to be the case in practice. HPC systems in particular are expensive assets which could never justify themselves if they could only run one kind of workload in one particular language :-)
If I had to guess, you're working in a business unit that is heavily invested in perl and so sticking other stuff in that environment is perceived as an unnecessary future maintenance burden. The HPC system on the other hand is perhaps shared across multiple business units who don't have the exact same stacks as each other so it's flexible in that way.
python + pandas is pretty awesome though, I was able to delete thousands of lines old perl code dealing with irregular time series when I re-wrote with pandas - it made sense in that instance to ditch the old perl code, it doesn't always though.
Ah, so a little more arbitrary than I assumed. I initially hated perl when I first started with it, for what it's worth. I guess you've progressed beyond the point of finding [1] helpful (even if the perl looks a bit strange to me in places). And, apart from Moose I also miss perl's lexically scoped variables :)
It would suck to do numerical work without pandas though. I love pandas.
Perl is still used in bioinformatics daily. People can write for days about why to use x instead of Perl, but at the end of the day, people can use modern perl 5 to do anything anyone can do in any other technical community.
The only serious downside to Perl (which is a pretty serious one I'll admit) is that it might be harder to lure in good programmers. I have met plenty of Perl programmers who advocate Perl because they are afraid to learn anything else. Still, I know a lot of Perl programmers who are so good they are not insecure and simply enjoy using it.
At this point, I only use Perl for ad-hoc data munging-- things that I could just as easily use python for.
Hm, I'm using ruby for bio-informatics[1]. I've found the 'bio' gem pretty much complete, but there is a serious lack of documentation. The best option for scientific-related project, programming-wise appears to be Python because it has a huge set of libraries and much better documentation than ruby (and I guess perl too).
I pretty much only use perl. And use it every day. What can you learn? What ever you want, you can use any paradigm: oop, functional, procedural, ect. You can make webapps, or database driven apps. To really learn you are going to have to make it to one of the perl conferences though. I used perl for 3 years, but at my first perl conference, I learned more in a couple of days and than the last 3 years....
As a programmer looking for a job? Maybe. A lot of places looking for Perl developers are looking for senior developers who understand the tooling, eco-system and a selection of "modern Perl" best practices and modules, as well as the language itself.
That's probably what you would need to learn if you wanted to be employed as a Perl developer.
Of course, if you are less experienced, you could work for a larger, modern Perl-using company where you can learn these things.
13 comments
[ 3.8 ms ] story [ 35.8 ms ] threadI've been paid to write perl in a team maintaining high-volume web properties and internal APIs for a large telco, and I also spent a few years in a Bioinformatics role which used it a fair bit at a national science agency (the research community in that particular corner of the discipline had some pretty awesome tools/libraries written in perl, but the full gamut of stuff we used also included ruby, python, R, C, Fortran...)
Just a few days ago I wrote how I missed Perl's Moose OO framework now that I'm doing mostly Python [1] [2], and that interestingly it's this that has prompted me to think more seriously about using a more strongly/statically typed language for large projects in future.
[1] https://news.ycombinator.com/item?id=8627143 [2] https://news.ycombinator.com/item?id=8627819
If I had to guess, you're working in a business unit that is heavily invested in perl and so sticking other stuff in that environment is perceived as an unnecessary future maintenance burden. The HPC system on the other hand is perhaps shared across multiple business units who don't have the exact same stacks as each other so it's flexible in that way.
python + pandas is pretty awesome though, I was able to delete thousands of lines old perl code dealing with irregular time series when I re-wrote with pandas - it made sense in that instance to ditch the old perl code, it doesn't always though.
It would suck to do numerical work without pandas though. I love pandas.
[1] https://wiki.python.org/moin/PerlPhrasebook
The only serious downside to Perl (which is a pretty serious one I'll admit) is that it might be harder to lure in good programmers. I have met plenty of Perl programmers who advocate Perl because they are afraid to learn anything else. Still, I know a lot of Perl programmers who are so good they are not insecure and simply enjoy using it.
At this point, I only use Perl for ad-hoc data munging-- things that I could just as easily use python for.
[1] https://github.com/atmosx/dogma
PCRE has been widely adopted. http://www.PCRE.org/
I know several dynamic languages and perl is still my go to choice for smaller jobs. Personal preference perhaps.
That's probably what you would need to learn if you wanted to be employed as a Perl developer.
Of course, if you are less experienced, you could work for a larger, modern Perl-using company where you can learn these things.