Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Is it still worth learning Perl as a first language?

by tm2383 (Novice)
on May 04, 2018 at 00:45 UTC ( #1214031=perlmeditation: print w/replies, xml ) Need Help??

I'm curious to know if Perl Monks believe that Perl is still worth learning as a primary programming language. I've used it in the past for some bioinformatics programming and really like the language. I'm interested in a change of career and wonder if it is worth the time investment really learning Perl in depth with the aim of becoming a Perl developer some time in the future. I know that there are a lot of 'trendier' programming languages out there like Python, PHP and Ruby. My logic behind learning Perl is that there are fewer people learning it compared to other languages. I assume that the market is awash with programmers using these other languages and that there might be a niche for perl programmer. Does anyone here work as a professional Perl programmer, either as an employee or a freelancer? Is there a future in Perl programming, or is a lot of the work migrating Perl to another platform? Are any start ups still using Perl frameworks like Catalyst?

  • Comment on Is it still worth learning Perl as a first language?

Replies are listed 'Best First'.
Re: Is it still worth learning Perl as a first language?
by Your Mother (Bishop) on May 04, 2018 at 01:38 UTC

    On the scale of subjective questions… :P

    I rambled on the topic here a few days ago: Re: Tiobe index - Perl is having a hard time. I mostly work with Catalyst but Dancer2 and Mojolicious are both popular options. I think Perl excels as a first language because it is unconstrained by dogma or technical focus. Procedural, functional, OO, Ook, whatever you want, however you think, Perl can accommodate.

    There are quite a few empty desks for Perl jobs. They are not everywhere though so moving or being so good and reliable you can telecommute might be necessary. Last time my group needed to hire it took months to find any half-way decent, emphasis on the half-way, candidates and this was in a tech Mecca for a position with good benefits and salary at a large, non-startup, old money company.

    Keep in mind that anyone who is proficient in more than one language is going to have an advantage in the code game no matter when the next pandemic what happens with Perl.

Re: Is it still worth learning Perl as a first language?
by LanX (Bishop) on May 04, 2018 at 09:50 UTC
    Profound knowledge of Perl enables - in my experience - to easily understand most aspects of other languages.

    So yes, in this sense, it's a very good investment.

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    Wikisyntax for the Monastery

    (update: rephrased on Eily's request. ;)

Re: Is it still worth learning Perl as a first language?
by morgon (Curate) on May 04, 2018 at 06:22 UTC
    There is nothing wrong as such with learning Perl as a fist language, even though there wouldn't be any compelling reason to choose it over - say - Python or Ruby either.

    But I believe there is no niche for Perl-programmers that you could fill.

    There are of course still Perl-jobs to be found, but mostly for people with lots of experience.

    Without any commercial experience, just claiming to be an expert on Perl your cv goes straight to the bin - even if your really are an expert.

    You may of course be lucky, so I guess it depends on your set of mind.

    If you want to enter a lottery, go for it.

    If you want a career in it that you can plan forget about Perl as an investment, that's sad but it's how I see it.

      What does it mean to be an expert in perl/anything, but not have job experience? How do you get job without experience? The idea of learn one thing get job in it is very appealing to me but fantasy. You always gotta learn more and prove it.
        What does it mean to be an expert in perl/anything, but not have job experience?
        "Job experience" is not the same as "experience". Many would see the phrase "job experience" and understand that pay was exchanged for services.

        However, one may gain experience outside of the corporate world, especially in OSS. I suspect significant contributions to CPAN and the Core were made by folks who don't get paid for Perl. But many of those would be experts.

        I didn't get paid for Perl for 15 years after I started mucking about with it on my own. Even then, no one cared that it was Perl. And I don't think I'm an expert at any of it, but I'm able to identify the parts of the engine, diagnose a few things, and subsequently know when to call in a domain expert.

        If someone puts down "X years contributing to Perl" or "X years skulking at Perl Monks", or even "X years teaching colleagues and going to conferences", and has some evidence to back it up, that's experience.

        -QM
        --
        Quantum Mechanics: The dreams stuff is made of

Re: Is it still worth learning Perl as a first language?
by sundialsvc4 (Abbot) on May 04, 2018 at 13:26 UTC

    Fill your toolbox.

    I don’t think that there is such a notion as a “primary” programming language.   It pays to be a generalist, not a specialist, and to be familiar with several languages with the expressed willingness to learn a brand-new one (perhaps, very quickly) when the need arises.   The more languages/tools you know – or, have exposed yourself to – the better-off you will be, even if you have not yet undertaken a major project in some of them.   (The knowledge that you gain from any one, applies more or less to all the others.   That’s why I myself am a student of programming languages, and always have been.)   I’ve got three different projects of concern to me right now, all of which use different languages and tool-sets.   Par for my course for the past thirty years.

    Perl(-5) has rightly been called “the Swiss Army® Knife of pragmatic programming.”   It earned that title.   You will continue to see a lot of it, and you’ll find yourself turning to it again and again.   It also has one of the largest and most well-developed libraries of contributed software (CPAN).

    It’s impossible to predict what language(s) might have been used on any existing project, but it is certainly the case (a) that you will probably be working on an existing project (“legacy code”), not a new one, and (b) that project will probably never change languages (although v-e-r-y occasionally they will add a brand-new one to the mix).   Thus, debugging, program analysis, and testing skills are extremely important to maintain project stability – or, to restore it.   Good communication and inter-personal skills are important, because there are plenty of “geeks who know everything, or think that they do” out there who are utterly impossible to work with, and/or who are not faithful in meeting their commitments.   Do you like to lead people and projects – or might you, if given the opportunity – or do you prefer to stare at a screen in solitude and slurp energy-drinks?   (I’ve worked successfully with both kinds.)

    If you are interested in such a career change, I would advise that you seek to bloom more-or-less where you are planted and to leverage what you already know – bioinformatics – looking within that discipline for a position that calls for more emphasis on programming.   A good, versatile, employable programmer is familiar both with the underlying computer technology and some business/scientific discipline, so that s/he can design and write (or, fix) the code with actual knowledge of what the software will do and how (and, by whom) it will be applied.   Familiarize yourself more-or-less with every programming tool (including Perl) that you observe being used in the bioinformatics discipline, and with exactly how each one is being applied.   Start with your present employer or university, and be open with them about your evolving ambitions and interests:   job-descriptions can be revised or created from scratch, or your duties can change more informally (thus, without involving HR).

      I don’t think that there is such a notion as a “primary” programming language.

      The number of hackers who work equally often and equally well in more than one language is drastically smaller than the converse. Primary programming language is the rule, not the exception. Perl is my primary programming language. I primarily program in Perl, as exclusively as possible, and would not be a hacker were that not the case.

        Perl is most definitely my "primary" language, as well as by far, my favourite. Perl was the first language I learned, going on nearly 20 years ago now.

        That said, I am equally well versed in Python, which I use at work for approximately 50% of my duties.

        I'm very well versed with C# (requires me to use a search engine somewhat infrequently), and can easily code in and understand C and C++, but unlike Perl and Python, I'm no expert with these three.

        I can get by in JS when I need to (Your Mother has provided me great guidance with this lang in the past), and I'm very experienced with two legacy custom languages at my $work that we have replaced with Python.

        OP: Perl is a great first language. As others have stated, Perl programming jobs are for the very experienced anymore, and again, as others have stated, if you learn Perl, it really helps to build an understanding of several other languages (most notably imho, C), so it can be used as the starting block for you to branch out from as you gain experience.

        Update: Besides, Perl has the most open, welcoming, helpful and polite community of any language out there. I've been a member of numerous forums over the years, and out of all of them, Perl-related boards, mail lists, communities, Perl easily takes the cake (Perlmonks in particular, but not necessarily specifically).

        You are responding to a monk who showed us more than once* code here with // instead of # as comment separator.

        His notion of "programming language" is "different" ...

        Cheers Rolf
        (addicted to the Perl Programming Language and ☆☆☆☆ :)
        Wikisyntax for the Monastery

        *) yes it happened. Very rarely, but it happened.

        I'd say I'm equally well in JS (the core language).

        But it helped understanding one handful of differences, apart from this it's a simplified Perl with a Java syntax.

        So in the end no big cognitive dissonance and your statement holds. =)

        Cheers Rolf
        (addicted to the Perl Programming Language and ☆☆☆☆ :)
        Wikisyntax for the Monastery

        PS: i used to be quite productive in TCL, but forgot about everything after 15 years without contact.

      Perl(-5) has rightly been called "the Swiss Army® Knife of pragmatic programming."

      Only by you

      Your technical posts are awful, no working code (you suck at programming and testing), just blowing your own trumpet (you excel at this). Ignore this guy OP.
      It pays to be a generalist, not a specialist,

      You are a generalist in the sense that, you know nothing about anything, rather than are weak on something in particular.

      You are -- at the risk of repeating myself from a loong time ago -- a charlatan; a fake; a fakir(as in mendicant; for attention); a wastrel; a fraud; a con; an impostor; a shyster; a phony; a quack; a pretender; a cozener; in short, the epitomous snake-oil salesman.

      The weird thing is you've been at this for 11 years (here; elsewhere for longer), and you've been known as such for almost as long; and yet, you still keep up the pretense.

      Now, there are a few possibilities to explain your persistence:

      1. You are clever.

        It had to be mentioned as a possibility; but obviously not.

      2. You are stupid.

        Harder for me to discount; but there is some semblance of logic to some of what you write.

        What you write is (or more often: was) usually: vaguely, approximately, superficially; on topic: if you squint your eyes, suspend disbelief, and hark back to the prevailing winds of 30 years ago. Everything -- without exception -- that you proffer as wisdom; was cutting edge circa. 1985, and was rapidly and comprehensively discounted in the years -- <5 in most cases -- since. You apparently missed that memo.

        If you take it that about 10% of what you write is on-topic; and about 10% of that, was once considered a possibility; and 1% of that, was still being suggested as an alternative less than 20 years ago; and 10% of that you understood back then; and 1% of that you've ever actually applied in th field; and what remains is akin, but more dilute, than a Homeopathic Remedy. So dilute as to be nonexistent. But not stupid.

      3. That leaves one possibility; the one we're not meant to mention -- at least if we mean it as a serious possibility -- for fear of crossing the PC boundaries.

        What they hay! This place is dead anyway.

        It -- the unmentionable possibility -- rhythms with: 'gentle senility'.

        If you are, you won't realise it, and won't defend it; if you aren't, and do, it shows your intent is malignant.

      In short, you're obviously not clever; and it's questionable if you are stupid; which only leaves the latter alternative, and that looking harder and harder to discount.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
      In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit

        You supercilious arsehole, do you also bombard rambling old men you encounter in your neighbourhood with this kind of pseudo-intellectual "analysis"? What is your goal, if not to feel good that you have denigrated another human being anonymously on an internet forum?

        You might know a lot about computer programming and how to get lots of points on Perlmonks, and you might not have reached your time of dementia yet, but none of that changes the fact that you are a complete dick.


        The way forward always starts with a minimal test.
Re: Is it still worth learning Perl as a first language?
by sundialsvc4 (Abbot) on May 05, 2018 at 13:21 UTC

    As you can see, OP, I have a fan base here, some of whom will spend far more time elaborately describing exactly how “I, by name, suck” than I myself spent expressing an opinion.   So it goes.   I know that I’ll receive another hail-storm of negative comments with regards to what I am now about to say, but I’ll sign my own name to it anyway.

    My argument in favor of generalization comes from the experience of having worked on, or managed, software rehab projects that were coded in about fifteen-or-so different languages.   You do not have to claim to be an expert in any of them – that’s impossible – but it does pay to familiarize yourself about what different languages specialize in and how they do the same things.

    If you demanded me to answer whether I would learn Perl as my first language now, I would say “no.”   I would tell you to learn Java or JavaScript (two unrelated languages), but also to spend a lot of time on GitHub or SourceForge looking at actual source-code to things that have been maintained very-recently in a variety of languages.   Perl-5 is a language that new projects used to be written in, and Perl-6 is stillborn.   (Ruby stole whatever thunder was there to be stolen, half-a-decade sooner.)   Consider the following “long tail” statistics of project-counts obtained by querying various language-names on GitHub:

    1. Java – 769,805
    2. Python – 692,500
    3. JavaScript – 382,507
    4. Ruby – 258,378
    5. Perl – 43,066

    SourceForge is similar, with 37,969 programs in Java; 8,910 in JavaScript; 4,605 in Perl.

    Perl programmers are becoming harder and harder to find because more and more programmers are not seeking the work anymore, nor including it in their professional training.   Those who love the language love it dearly, but this is true of most.   In today’s market, if you specialize in Perl you are putting yourself on the sideline, and self-selecting yourself out of the running.   However, I repeat my admonition that you should not “specialize” at all.   Fill your toolbox, and periodically wipe-down and oil everything that is in it.   Programming languages are fundamental tools of your trade.   Who can say whether the next job will consist of a nail that needs nailing, or a leaky faucet that needs mending, or a wire that’s putting out sparks and clouds of smoke?

      I disagree with just about everything you say as usual and could objectively prove some false, like many of us do regularly while dozens and dozens don't bother and just downvote you. You never reply to rebuttals and seem incapable of learning or respecting the ethos of this place but this one gets a call out-

      Those who love the language love it dearly, but this is true of most.

      It's nonsense. Most professional programmers are not hobbyists or open source contributors. Like most human beings with jobs, they're just making a paycheck and don't love it dearly any more than CPAs or strippers love their work. There are exceptions but most coders don't give a rodent's rectum about code in their off hours. They don't contribute to cores, or submit patches, or build libraries or platforms, or engage in discussions from the esoteric to the pragmatic. Perl has come up on a couple of surveys as having the happiest users and it's not because all languages are equal whether or not they are equally Turing complete. I seem to quote this article a lot–

      …the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages.

      Of all the great programmers I can think of, I know of only one who would voluntarily program in Java. And of all the great programmers I can think of who don't work for Sun, on Java, I know of zero.

      They may have to use Java and Windows at work, but at home, where they can choose for themselves, you're more likely to find them using Perl and Linux.Great Hackers

        I had my response to the topic right from the start. But wanted to read the others here before my reply. So as not to simply parrot anyone. Now at the end of the list. I (not surprisingly) see YM's ties in quite nicely. So I'll reply here. :-)

        Definitely choose Perl, and learn it well. Especially if it's a language you like. If you've learned Perl; C, and JavaScript are already in the passenger seat. So you're effectively (reasonably) comfortable in 2 additional languages.

        You can use Perl(tm) as a solution to almost any problem. The same cannot be said of most other languages. Granted, Perl may not be the most efficient solution. But businesses are always looking for solutions, and if you have a solution, you have a job. Well, you're at least that much closer to having a job. :-)

        Again, if you like writing, and working in Perl. You should really try to learn it well. Who doesn't want job doing something they love?

        I'd rather make less money doing something I love, than making more money, doing something I hate -- which is not to say you'll make less money working in Perl. In fact if you know it well, quite the opposite is probable.

        tl;dr;
        Perl adds value. Learn it. :-)

        ¡λɐp ʇɑəɹ⅁ ɐ əʌɐɥ puɐ ʻꜱdləɥ ꜱᴉɥʇ ədoH

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://1214031]
Approved by marto
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2018-07-21 04:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (444 votes). Check out past polls.

    Notices?