shankonit has asked for the wisdom of the Perl Monks concerning the following question:

I'm a newbie in scripting and I read lot about which language to learn for scripting. I found out that perl is powerful but has gone down in recent time.

I want you to convince me that spending time in learning perl wont be waste and as a newbie in year 2015 which should i go perl 5 or perl 6.

If Perl is not dead then what are the fields its currently used.What are job opportunities. and Will Perl 6 strike back to python.

I really love perl as it is but as a carrer i think i should choose which has high payment and has wide opportunities

Kindly help me i'm very confused between these languages and unable to take decisions on it. I dont want to waste time in one thing then skiping to another.

If perl 6 is good and better then should i skip perl5.

Thank you in advance for taking time to read and answer :)

Replies are listed 'Best First'.
Re: Should I learn perl 5 in 2015
by stevieb (Canon) on Jun 10, 2015 at 15:49 UTC

    Perl 5 and Perl 6 are completely different; so much so that some people believe Perl 6 shouldn't be called Perl at all. Perl 6 is 100% object-based (like Python) whereas Perl 5 isn't (you can do Object Oriented Programing in Perl 5, but that's not what it was designed around).

    I started with Perl almost 15 years ago through a need in my then current job. It flourished from there, now I know Perl 5 exceptionally well, Perl 6 to a degree, Python very well and can understand a lot of C/C++ etc. Once you understand programming concepts in general, learning a new language's subtleties isn't that difficult.

    I'd say start with Perl 5, but I'm pretty biased. It appears as though there are more opportunities for Python hackers, but I'm sure that's based on industry, location and a bunch of other things. There is definitely a market for Perl hackers to maintain, fix, update and even translate old Perl code in many businesses. Although I code Python for work now, I'm always dabbling in Perl. I love it.

    Cheers, and good luck!

    -stevieb

    ps. There is a significant market for Java developers, so keep that in mind too.

      Python is doing well but only reached job listing parity with Perl last year according to indeed.com; and this year doing better. The most new opportunities in high level languages are likely to continue to be in web, telecom, and, with federal laws regarding medical records finally coming to deadlines, medical. Java has the real toe-hold there with Perl trailing but included in some important and winning “greenfield” companies; JavaScript being the wild-card since in-browser graphics are increasingly important. I only see Python as an advantage in “big data” and only because of Google’s choices.

        Thanks for this info Your Mother.

        As I said to ww, I'm not a programmer (in the typical sense) so it's just what I see in what I do.

        I'll code in any language to make my life easier, and as I said in my original reply, jobs per language are based on many things and I'm definitely not authoritative on the subject. For me, Perl is everything. I can code circles in Perl around many 'programmers' using any other language for the work I do and have done in the same amount of time (especially thanks to those on PerlMonks).

        I'd choose Perl 5 over any language, any day, if I got a side job for anything where a program would be needed. Besides, I've been here on PerlMonks for ~six years now, and know a LOT of people here who I could pass a job onto if ever necessary.

        -stevieb

Re: Should I learn perl 5 in 2015
by ww (Archbishop) on Jun 10, 2015 at 18:36 UTC
    "perl ...has gone down"
    "If Perl is not dead..."

    First, and foremost, if you want a career as a programmer, learn to be a lot more precise than the first phase and to be wary of the second unless you can actually see the coroner.

    On the matter of precise thought and expresssion: "has gone down" in what respect, from what, to what, by whose judgement (and what was the data upon which that judgement was made)? As it stands, without citation of a presumably trustworthy source (many in the popular press and perhaps even most in the internet are NOT!) and data to back the claim, I would rate its value at slightly below the value of the weeds in my garden; the pests in my pastureland; or the bugs in my code.

    By some measures (job ads, for example), Perl may rank lower than at some time in the past... but that's erratically variable and dependent (among other things) on accurate evaluation of the language in the ads.

    Then, there's your mention of "python." Here's an unsourced, unsupported observation: there seems to me to be an increasing inclination in some places to deprecate Python. (Aside: I did notice that Google notes that the "official" Python site offers "Download - ‎Python 3.4.2 - ‎Documentation - ‎Python 2.7.9." Scary? Maybe it should be to someone considering staking their future on a language whose docs don't keep up with it's current version... but that's probably just a glitch in the websites SEA or a burp in Google's analysis. But the earlier observation that Perl 6 is unlikely to convert a majority of Snake Charmers seems likely to be correct for many years yet.)

    And then there's Java. It's hot... and managers love to be associated with current popular memes (fads, etc)...but you can't count on a cutting-edge, high prestige and high-pay career in java from now thru retirement age. As with Cobol, Fortran and other languages, there will likely be jobs there (and in Perl 5 and maybe Python) because there's so much legacy code in use in production.

    So one answer would be: "learn'em all." That's not even an absurd answer. By and large, new languages get easier to learn the more you already know. And it tends to make you more employeable, because even employers who are most devout ___[fill in a language]____ adherents tend to use multiple languages in reality.

      This is an excellent post, ww. As I've always said, "I'm not a programmer" (and technically after 15 years in tech it still isn't my core job function, so I'm not really one to speak on the job market other than my simplistic, superficial observations).

      I like how you've eloquently replied to the OP.

      -stevieb

Re: Should I learn perl 5 in 2015
by Hermano23 (Beadle) on Jun 10, 2015 at 15:58 UTC
    I use Perl at work, largely due to that being what much of our legacy code is written in, however it's not something I interviewed for or was searching for explicitly. Personally, I've only used the language in any capacity over the last two years, and I would say that it is worth learning. If nothing else, I've gotten some good practice with a fun language that I would not have learned otherwise.
    For Perl 5 vs 6, 5 is the stable release that you will want to work with. 6 is still being developed, and I certainly don't see it replacing Python any time soon. Give it a shot if you have some time, it's a useful tool to have in your belt.
Re: Should I learn perl 5 in 2015
by ExReg (Priest) on Jun 10, 2015 at 17:28 UTC
    I think it depends on what your goals are. There aren't as many applications being developed in Perl as there are in Java, for example. But developers are not the only kind of software engineers. I have been using it for many years to analyze the code the developers create. Perl is absolutely the best tool for analyzing text files like the developers make.

    It's been a long time since I wrote any "code." I will probably never write any more "code." But in the mean time, I have written tens of thousands of lines of Perl to analyze the millions of lines of "code" I look at that the developers wrote. And I probably get paid more than most of them.

    I am partial to Perl 5, but that is just because it is what I am used to and comfortable with.
      I will probably never write any more "code." But in the mean time, I have written tens of thousands of lines of Perl to analyze the millions of lines of "code" I look at that the developers wrote.

      Your job title maybe something like "Quality Analysis", but you are still "coding". Whether your code is an application, analyzes other code or performs testing, it's still code.

      Professionally, I write production software in C/C++. I use Perl as my "Swiss Army Knife" to help me get my main work done. I use it for many thing, including analyzing data for debugging problems - or to understand a real world system so my software can control it. Also for generating code from various tables, generating documentation and other tasks that come with my job. It's all still coding and, because it help me be more productive, I do get paid for it (indirectly, but management knows we use Perl and is fine with it).

        Agreed, I am still "coding." My code will never be in the source repository; it will be in the tools repository. I am not looked on as a developer. The point I was trying to make was that there are many things you can be doing in the software arena besides being a developer. I have done development, QA, CM, IV&V, and have found Perl an invaluable tool in each.
Re: Should I learn perl 5 in 2015
by Anonymous Monk on Jun 10, 2015 at 16:20 UTC
    should i skip perl5

    That depends partly on when you want a return on your investment and how much risk you want in your investment. There are currently many million lines of Perl 5 code in production that will need developers for many years to come. Perl 5 is very stable and has huge amounts of documentation. The information you found on it having "gone down" is partly FUD - good Perl 5 developers are still in demand. (Which means that if you learn Perl 5, you'll have to put a significant amount of effort into becoming a good Perl 5 developer).

    Perl 6 will most definitely be better than Perl 5 - but only when it gets a production release, a few books written on it, plus a couple of years for it to catch on in production environments, to work out the issues in the first few production releases, for the module ecosystem to grow, for people to build codebases in Perl 6, and so on.

    Provided that Perl 6 gains as much ground as Perl 5, then beginning to learn Perl 6 now rather than later will give you a huge advantage in several years (though it's unclear how many years), much in the same way that those of us that learned Perl 5 in the good old days have the advantage of speaking it fluently now, knowing all its quirks, knowing which modules to use, etc. But the day when Perl 6 is in regular production use still needs to come.

    My opinion: Diversify - If you can, then learn both!

Re: Should I learn perl 5 in 2015
by smknjoe (Beadle) on Jun 10, 2015 at 18:01 UTC

    Short answer: Yes!

    Long answer: I'm a hardware designer by trade and just picked up Perl programming a little over a year ago because this older dog needed to learn some new tricks. Currently, I'm analyzing very large textual data files that I used to use shell scripting, awk, and sed to parse and extract the data I needed. So most of of my programming is in the form of fancy scripts, I know it's a far cry from being a full-fledged program. However, I'm having a blast with Perl, wished I would have learned it years ago and I'm now curious to learn about other programming languages out there besides C/C++ like Ruby, Python, etc. I think it is a good entry language for some of the other languages mentioned by other posters.

Re: Should I learn perl 5 in 2015
by cavac (Prior) on Jun 11, 2015 at 15:12 UTC

    I may be a little biased because i earn my money from making stuff with Perl. When i say "doing stuff with Perl", i don't mean scripting. I'm talking about big projects (new and old) that are production critical.

    One the the reasons we have chosen Perl is its huge library of existing code and also the general strive for backwards compatibility. In business, that counts a lot more than being hip/cool/whateveryoucallit. Basically the same reason, why there's a lot of Cobol, Fortran and Lisp code still in production all around the world.

    Actually, choosing a brand new language as a career path is highly risky. Only a few companies try it out and there's no notion of job security because there's not much of a codebase to maintain. Python is far past that stage, but to be honest, i haven't yet encountered many big projects in my business that actually use it.

    When it comes to "Big Data", your number one priority is certainly to learn your way around databases. Depending on what interests you, you might find it useful to learn some NoSQL stuff. But there's no way around learning at least one of the "big" SQL databases (PostgreSQL, Oracle, Microsoft), because there are a lot of business cases where using a fully ACID compliant database with features like Foreign Keys is absolutely essential.

    Now to the question if you should learn Perl: Yes, you should. Perl is (in my opinion) probably the language best suited to process text-based data and also has a lot of libraries to handle scientific computation. And if you think about it, a lot of data you'll encounter in your work life will be text. HTML is text, accounting and warehouse managment is text-based (plus a few big red numbers), reading some spreadsheets into a database (or generating spreadsheets from databases) is also mostly text processing.

    Which version of Perl? Well, i would say go for Perl 5. This is currently the Perl version used in businesses, since Perl 6 is new, completly different and still has a relatively small amount of existing libraries to use.

    Now, that said, will Perl and (say) PostgreSQL be enough? No, you should also learn at least the basics of HTML and Javascript and even (ohmygodimsayingthis) PHP, everything seems to drift towards "web-based" and "cloud" at the moment. Even if you don't do web programming for a living, you might be able to fatten up your piggy bank with a little (tax free) support for your relatives This-is-my-dog homepage. Just saying... (Working for relatives often will make you feel dirty but not rich, but when you're broke you're broke.)

    Also taking a few weeks learning the basics of C will be a good idea. It's low level and rather primitive (from a Perl developers point of view), but it's perfect in itself. It's also dead useful for nearly everyone using a high level language, because sooner or later you'll want to use and understand a few of the millions of pre-existing C libraries or even implement your own for speed or do something (censored) to a poor little device.

    Of course, these are only my undef cents

    "For me, programming in Perl is like my cooking. The result may not always taste nice, but it's quick, painless and it get's food on the table."
Re: Should I learn perl 5 in 2015
by james28909 (Deacon) on Jun 10, 2015 at 16:19 UTC
    I use active perl 5.16 still. Some of the modules I use (mainly for gui: Wx::Perl) do not work. The last time I checked some of the modules were not supported/updated for 5.20. But even if it was updated to support perl 5.20, I probably still wouldnt update because everything so far has been satisfactory ;)
Re: Should I learn perl 5 in 2015
by Anonymous Monk on Jun 10, 2015 at 15:51 UTC

    yes

Re: Should I learn perl 5 in 2015
by Anonymous Monk on Jun 11, 2015 at 03:25 UTC

    I really love perl as it is but as a carrer i think i should choose which has high payment and has wide opportunities

    Two things, or four things, or ten things -- there is no one thing :)

    Also, lay off the memes

Re: Should I learn perl 5 in 2015
by locked_user sundialsvc4 (Abbot) on Jun 11, 2015 at 00:14 UTC

    I would frankly say that “it all comes down to the actual economics of computer software.”   Software, once developed and put into service, remains in service for a very long time.   “Rewrites,” however earnestly the developer teams may long for them, are almost never economically justified:   the business risk is too high and the return-on-investment too low.

    Therefore, the best overall strategy is to familiarize yourself with as many programming languages as you can.   Perl-6, yes, and Perl-5, and many, many more that aren’t Perl.   Because, throughout your career, you’re always going to be presented with a “more-or-less totally-new” situation, and you’re going to need to be able to “land four paws down.”   The broader (not necessarily “deeper”) your personal knowledge-base is, the more employable you will continue to be.   Probably none of the legacy-apps that you will be tasked to support, will be free of “maleficent odor.”

    As you continue to explore new languages (and I happen to find that to be fun ...), the more you will see how much common-ground all of them have.   This perspective will take several years to develop.