Beefy Boxes and Bandwidth Generously Provided by pair Networks Russ
No such thing as a small change
 
PerlMonks  

Learn Perl

by lm.moreira (Novice)
on Jun 12, 2008 at 18:59 UTC ( #691773=perlquestion: print w/ replies, xml ) Need Help??
lm.moreira has asked for the wisdom of the Perl Monks concerning the following question:

Hi Perl Monks! I'm beginning my perl studies and I would like to ask you if today is it worth to learn perl?
I have found in other sites that perl is good, but it is outdated.
They say that PHP, Java and .NET are more developed, and today, learn perl is not the best way.
Thank You
Leonardo

Comment on Learn Perl
Re: Learn Perl
by igelkott (Curate) on Jun 12, 2008 at 19:44 UTC
    is it worth to learn perl

    Short answer: Yes.
    See Perl of the Future for a longer discussion.

    Wouldn't agree that those other languages are "more developed", but they do have their advantages (and disadvantages).

Re: Learn Perl
by moritz (Cardinal) on Jun 12, 2008 at 19:45 UTC
    Yes. (What answer did you expect from a perl community site? ;-)

    It may be not as simple as PHP (at least for your very first CGI script), not as object oriented as Java and not as ... $other_good_property ... as .NET, but it gets your job done. Quickly and intuitively.

    The other day I worked at a big company, and one of my coworkers asked if I could write him some program - basically merging two fixed-width text tables, wrote me a short specification, gave me a a few example files, and then told me "sorry that I'm keeping you busy for the next week.". Forty minutes later I send him the script by email, and he dropped his jaw in amazement. (He had been a C programmer not so long ago, involved in writing low level drivers.) He couldn't believe that one could be so productive.

Re: Learn Perl
by kabeldag (Hermit) on Jun 13, 2008 at 02:16 UTC
    Perl is outdated? In what way? Learning Perl is not the best way?
    Who says X, Y and Z are more developed?

    If you go to a site that is Pro-PHP, Pro-Java, Pro-Perl or Pro-whatever, then it's not uncommon to find people who give positive comments in regard to that language. What is required is sensible logical and objective thinking.

    I find I use Perl in most cases, because it does everything that I want and need. Don't take somebody else's word, find out what you need/want to do and assess which is the right tool for the job(s).

    PHP is still in vogue in the WWW world, and that's fine. I wouldn't take PHP out of the web-application environment either. Why would you when there is already Perl ;) 'PHP or Java' and Perl, are like 'Cheese' and 'Chalk'. That's the way I see it anyway.

    -- Perl has a much larger scope.

Re: Learn Perl
by rudder (Scribe) on Jun 13, 2008 at 02:17 UTC

    I think the main argument you'll hear about Perl being outdated is it's lack of good built-in object-oriented programming features. Turns out though, now that we have Moose, that argument has gone out the window.

    Another argument you might hear is Perl 5 being outdated due to Perl 6 being on the way. That doesn't really hold water though, since there's just so much Perl 5 code out there. Also, it looks like you'll be able to access Perl 5 code from Perl 6 anyway, so the upgrade from 5 to 6 shouldn't be too bumpy.

    Anyhow, if you like the idea of a handy, intuitive language that gets out of your way, you'll probably like Perl. PHP is popular with a lot of web developers, Java is popular with "enterprise" software managers, and .NET is of course popular with MS Windows people, but Perl is still the swiss army chainsaw of the bunch. You might also want to look into Python to see if it's your sort of thing. Python is like Perl's tightly-wound, responsible, predictable cousin from out of town who has a funny foreign accent. ;)

Re: Learn Perl
by Pancho (Pilgrim) on Jun 13, 2008 at 12:30 UTC

    Leonardo,

    The question that comes to mind is what are your objectives in learning a language at this point. Depending on that Perl may be the best thing or not. I agree with others that Perl is an excellent tool which can be used to address many issues. But once again I think the answer to your question depends on where you are at and where you are going...

    Good Luck!
    Pancho
Re: Learn Perl
by radiantmatrix (Parson) on Jun 13, 2008 at 15:22 UTC

    perl is good, but it is outdated.

    One could argue that C is "outdated" as well, since it's much older than Perl. Yet both languages have a huge footprint in existing projects, and are commonly selected to start new projects. In general, it's best to avoid "outdated" comments about any language -- you should only care whether a language is currently in use, and Perl is most definitely currently in use.

    PHP, Java and .NET are more developed

    I don't know what "more developed" means. I've done development in PHP, Java, and C#.NET -- they're fine languages. However, none of them have the library of pre-existing solutions to common problems that is Perl's CPAN.

    You should never just learn one language anyhow. Perl is a great place to start, and it will be useful to you for a long time to come. But once you've achieved proficiency with Perl, you should learn other languages as well (don't worry, your second language is always easier to learn than your first).

    Ignore the holy wars and the "my language is better than yours" pieces of "advice". Perl is a fine choice of programming language. So is Java. So is PHP. So is Python.

    <radiant.matrix>
    Ramblings and references
    “A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.” Herm Albright
    I haven't found a problem yet that can't be solved by a well-placed trebuchet
Re: Learn Perl
by Aim9b (Monk) on Jun 13, 2008 at 17:13 UTC
    Yes, by all means, learn perl. Why? Because down the road, whatever shop you're in, whatever hardware you're coding on/for, and whatever language you're developing in..... you'll be glad you did.
    It's inevitable, there WILL come a time when you're going to need it, & that's not the time to start learning it. I've written 7 BASICS, Fortran, Cobol, C/C++, JAVA, (admittedly no python or php) UDM-II, Assembler, EDX, and a host of unmentionables, but NONE of these have the power & versatility of perl.
    You can learn it now, or you can learn it later, & trust me, now is better. ;-)
Re: Learn Perl
by talexb (Canon) on Jun 13, 2008 at 17:34 UTC

    Obviously, the answer is .. it depends.

    You haven't said what you're studying, but if it's Computer Science or Software Engineering, you would do well to have a well-rounded education that includes various languages and technologies. For programming languages you should have experience using everything from assembler to C, Java, Python, PHP and Perl.

    A variety of databases would be good as well -- I can recommend MySQL, PostgreSQL and SQLite and perhaps Oracle or DB2 depending on what's available to you. You should have experience with Windows and several variants of Unix/Linux, and also know something about TCP/IP and networking in general.

    .NET is, I'm sure, a good language to learn, and I've seen some job ads requiring it, but I have no experience with it. This language does tie you to the Windows platform, but it's not a bad idea to spread your bets and learn technologies that exist outside Windows as well.

    Perl's worked well for me -- it's a language I picked up on a whim over ten years ago and it's kept me employed since then. Works for me -- your mileage may vary.

    Alex / talexb / Toronto

    "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

      .NET is, I'm sure, a good language to learn, and I've seen some job ads requiring it, but I have no experience with it. This language does tie you to the Windows platform

      Two nitpicks:

      1. .NET is a platform, not a language. You can write .NET applications in C#, ASP, VisualBasic, etc.
      2. You aren't necessarily tied to Windows using .NET, thanks to the Mono Project. That said, getting support for .NET applications outside of Windows could be tricky.

      One of the things I like about Perl is how complete it's multi-platform support is:

      • The Perl interpreter works just about anywhere. Even on the iPhone...
      • Writing cross-platform apps is easy, thanks to things like File::Spec
      • There's a huge library of pre-existing, cross-platform solutions in the form of CPAN.

      Put succinctly, I guess I'd say it's the community, stupid! :)

      <radiant.matrix>
      Ramblings and references
      “A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.” Herm Albright
      I haven't found a problem yet that can't be solved by a well-placed trebuchet

        Thanks for the feedback -- I didn't know that .NET is a platform. Obviously.

        The bigger problem I have is with Microsoft; I'm not happy with any supplier who decides, at their own convenience, that a pre-existing product will become unavailable after a certain date, or functionally hobbled somehow. That's why open source is great -- once you have the source code for something, you are free to do whatever you want.

        And Perl, as you said, has this amazing community that is available to you for feedback, help, suggestions, whatever you need. Awesome.

        Alex / talexb / Toronto

        "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Re: Learn Perl
by jds17 (Pilgrim) on Jun 13, 2008 at 21:08 UTC
    I definitely would say it is worth learning Perl for the following reasons, some of which have already been mentioned in other comments:
    • Actively developped: The current Perl 5.10 includes nice additions inspired by Perl 6.
    • (Generally) high quality modules on CPAN for nearly everything you can think of
    • Very helpful and responsive community
    • It's FUN to program Perl. I don't have the feeling I need to adapt too much to the language when programming. I get fast into "the flow" when programming Perl, I don't feel forced to bend my mind around APIs instead of spending the time working on the problem. Programs can be written in a concise way, 100 lines of code are certainly better than 400 in another language, and it helps a lot when you can see a substantial part of a program (or even the whole ...) on a single screen. You can even accomplish a lot with a one liner on the command line.
    • I also disliked the 1000 different and none completely convincing ways to do object oriented programming in Perl, but the Moose way really feels like the right one, you should really try Moose out if you are going to evaluate Perl for your needs.
    • You are not tied to one programming paradigm, let it be "everything is an object" or "... a string", Perl can adapt easily to different ones.
    There is no hype around Perl (did I hear "Ruby on Rails..."?). Maybe there should be an extra effort to market Perl. As you can see e.g. on Perlmonks, people are really focused on problem solving, so you may get the IMHO wrong impression, nothing cool and new is happening. My advice: give Perl a try, you should get some impression in no time and in any case, it helps to learn about a new language and I know of no one who gut hurt using Perl (there certainly are languages that could easily hurt you, I know some examples personally, but I will stop here...)
Re: Learn Perl
by beryan (Scribe) on Jun 14, 2008 at 15:38 UTC
    People take their choice thinking "if the world take that way i should take it too..." and it is not a wrong answer. But behind that, there are true treasures hidden for most common eyes. When I code in Java I like, because mostly, I like programming. But when I code in Perl I feel myself as a violinist with a Stradivarius, just writing code that you can feel as art. That is music, and music is not only these that you can hear, music is these that you can feel. Maybe Perl cannot make you rich (who knows!) but can make you feel fine.
Re: Learn Perl
by strfry() (Monk) on Jun 14, 2008 at 17:29 UTC
    Yes, it's worth it to learn Perl.

    In my experience, the better I become at programming Perl, the better programmer I am in any of the other languages I know. This applies inversely as well - the better I get at programming other languages, the better I get at Perl. Part of it, it seems to me, is that by forcing yourself to think about things differently, you get better at problem solving - which is a very important trait for any programmer. You also expand the tools in your toolbox, by having Yet Another Possible Solution, which is never a bad thing. (I don't suggest building every solution using every language you know - the next person to maintain the software will hate you for it, for one thing.)

    Learning is almost always worth it. In the case of programming, it's almost always a win-win situation. I'd even go so far as to advise you to try to learn (not master, of course, but get a decent grasp of) at least one language a year. There are plenty to choose from, and few of them are what I would consider to be "bad".

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://691773]
Approved by planetscape
Front-paged by Arunbear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-04-20 14:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (485 votes), past polls