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

Professional perl

by mescanne (Sexton)
on Oct 17, 2005 at 19:29 UTC ( [id://500800]=perlmeditation: print w/replies, xml ) Need Help??

Throughout internships in school and for my last two fulltime jobs I've been largely doing perl.

I did a smattering of shell scripting, C, and a tidbit of Java/C++, but the perl just kept sneaking up on me. And, I must admit, I love it. I've been exploring some of the depths of perl as well as reading up on perl6.

But part of me still can't think of it as a 'real' language. I also suspect it doesn't have the same amount of respect. Yet I know very well many projects done in Java (or, even worse, C/C++) can be done a lot more quickly and effectively in perl. Even more, recently I worked with SWIG interfacing a lower-level library to perl and I can't help but absolutely love the idea of using perl (or even another scripting language) as the glue to hold everything together!

I'm wondering if some people here struggle professionally with being, more than anything else, a perl programmer? I'm someone who has ended up on more of a perl career path without really realizing where I've been headed!

Mark

Replies are listed 'Best First'.
Re: Professional perl
by Ovid (Cardinal) on Oct 17, 2005 at 19:42 UTC

    Lots of folks struggle with the idea of Perl not being a real language. Unfortunately, this is largely due to the "scripting" albatross which has been hung around Perl's neck for the longest time.

    Many of the complaints about Perl stem from the fact that Perl was a pioneer in getting "dynamically" typed languages before the public eye. It certainly wasn't the first (was LISP the first major one?), but it has been the largest. Unfortunately, because Perl has been blazing a trail it's had many years of going down promising paths only to find them at a dead end (pseudo-hashes anyone?). Languages such as Python and Ruby have been happily running down this path and ignoring the trails they already know to lead to oblivion.

    While Perl 6 will help to clean up much of this mess, one of the major problems seems to stem from those who fail to accept that typing the data (sometimes misleadingly called dynamic typing) is a valid alternative to typing the container (sometimes misleadingly called strong typing). The trade-off is largely in development speed versus execution speed and many fail to realize the mistake inherent in choosing to always settle for one or the other. Different problems have different requirements and choosing the solution before defining the problem is foolish. Until we teach developers this, they'll continue to look at Perl and other dynamic languages as "scripting" languages.

    Cheers,
    Ovid

    New address of my CGI Course.

Re: Professional perl
by hv (Prior) on Oct 17, 2005 at 20:11 UTC

    This has never been a problem for me. I wonder whether that is because I didn't take CS at university.

    I taught myself programming from books, long before I had access to a computer. When I came to writing programs for a living, again I was teaching myself and learning from those around me, but because it was always in a commercial context the focus was always oriented around getting the job done.

    As time passed, I learnt a bit about algorithms and about data structures, not in a theoretical manner but because they were necessary to achieve a particular task.

    My main languages for work (and therefore also at home) had been assembler and C. When I eventually discovered the internet, the new languages I found such as TCL and Perl were a revelation - so much more bang for your buck, and the source code too. :)

    So I used them as I had used other languages, to get the job done, and continue to do so.

    These days I write OO code in Perl, and scoff at those who say there is no such thing. I admire things that work, and work well, and Perl does just that - that's "real" enough a language for me.

    Hugo

Re: Professional perl
by kirbyk (Friar) on Oct 17, 2005 at 20:25 UTC
    There are a lot of people doing Perl professionally (many of whom post here.) There are some areas where Perl isn't well suited, like any language, but these are a lot rarer than most people think.

    In some sense, the world of software development is a closed system, so that if a VP of Engineering somewhere chooses Java over Perl at startup, that's fewer jobs that I'm qualified for (and more that someone else is.) So, all of us have a vested interest in language evangelism. Due to certain market conditions in the 90s, there's a lot of Java programmers out there, and Perl definitely treads on their turf, so there's a real effort to dismiss it as a less serious language.

    Which is nonsense. Of course everyone here knows that it's usually the best choice for development time (and, despite the myths, maintenance time as well.) And execution time might not match up to C, but Java? Why would people ever think Java is faster than Perl?

    So, it's easier to write faster code in Perl, why wouldn't you take it seriously? But, as per above, I have a vested interest in believing this and having others believe it. Making language decisions based on 'buzz' is a terrible mistake for that reason. If it's solving your technical problems in a way that's a good use of your time, that's the correct language to use.

    And the list of companies that rely on perl is practically a who's who of Internet technology companies, with names like Google and Yahoo and Amazon. How can anyone not take Perl seriously? What do they know, that their more successful competitors don't?

    -- Kirby, WhitePages.com

      Correction. Google does not use a significant amount of Perl. They use Python instead, because they feel that it scales better for large teams.

      And while it is true that Yahoo! uses Perl, they use everything somewhere.

      But Amazon is a good example.

Re: Professional perl
by ickyb0d (Monk) on Oct 17, 2005 at 20:47 UTC

    I definately think perl has a place in the professional world. I am actually a recent college graduate, and I had only had about one summer of programming in perl. I was pretty much born and raised on C/C++ all through high school and college.

    But in my downtime of trying to find a job, i had about 3 times as many calls about people interested in my perl experience rather than my C++ experience. And sure enough, my current job now is doing perl. I work in a smaller company with a very laid back environment though. So i'm not sure i can really vouch for very large corporations using 'professional perl'. But I did have some interviews with some bigger companys, and they were interested in perl a great deal. However, it seemed like they were more interested in hiring people as consultants. Maybe just to make some quick fixes for problems they were having.
      Getting three times the calls for Perl than you get for C++ could be less of a reflection of Perl's popularity as it is of a lack of Perl programmers in comparison to C++ programmers. While prospective clients may find someone else for C++, perhaps they have far fewer options when they need Perl work done. Then again, I'm not you, and I wouldn't know.

      The benefits of programming Perl are many, the drawbacks few. A good solution for a vast range of problems.

Re: Professional perl
by dragonchild (Archbishop) on Oct 18, 2005 at 04:12 UTC
    I'm wondering if some people here struggle professionally with being, more than anything else, a perl programmer?

    As one of the few Perl-only programmers on the site*, I think I can shed some light here. Despite the fact that I put food on the table with Perl and only Perl, I am more than that. While I may not be as good with any other language, I know the concepts behind those languages. I don't currently know Java, but I could learn it very quickly. I don't know Lisp, but I plan on picking it up in the next month or two so I can teach my son how to program in Lisp.

    The point is that I will learn any tool I need to learn in order to get the project done. Heck, that's how I learned Perl in the first place. I got hired, handed merlyn's book, and was banging out (crappy) code within the week. Same with SQL, Javascript, and any other tool I've ever used. The language isn't as important as the knowledge behind it.

    Here's a good test - go look at the Pugs code. Not the P6 stuff, but the Haskell stuff. You're not going to understand it all, but can you follow the basic flow? If you can, you're ok. If you can't, you should really work on that.

    *: I don't know Java, nor have I cared to learn. My C is rusty and my C++ makes a monkey cringe. I have worked almost exclusively in Perl, Apache, Javascript, and databases for almost 5 years and it doesn't look like it's changing anytime soon. In other words, I've never been paid to learn anything else, so I haven't bothered much.


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      My criteria for good software: ... Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

      Employer, Give this person a raise!

      The maintainence part of code's life is the most expensive. If someone makes maintainence easier to do they are saving you money and pain down the road.

      I maintained code written by other people for what seems like way too long. I learned a ton about what poor quality code looks like. I learned to write code that would be understandable. Since then I had someone come up to me and say "this thing you wrote has been given to me to update. your code is so easy to read. thank you." That was one of the proudest moments in my career.

      I wonder if maybe every newly hired developer should have to maintain code for six months before writting anything new.
      I don't know Java, nor have I cared to learn. My C is rusty and my C++ makes a monkey cringe. I have worked almost exclusively in Perl, Apache, Javascript, and databases for almost 5 years and it doesn't look like it's changing anytime soon.

      You claim that you're only a Perl programmer but Javascript is actually an excellent language. The fact that it's domain specific and the DOM is so messed up has given it a bad rap (well, lack of namespaces hasn't helped, either). The next time you fail to give yourself credit for Javascript, read Sean Burke's Higher Order Javascript. It's a powerful language. Heck, pour through those examples and you have a basic grasp of functional programming.

      And what about SQL? If SQL better handled recursion and multi-values, it could be a good substitute for Prolog. You may not realize it, but if you're good at SQL, you're already well on your way to learning logic programming.

      Since you already know imperative programming and you are comfortable with Perl's OO capabilities, you're well on your way to understanding imperative, objective, logical and functional programming. The fact that many of us tend not to recognize those features of these tools means we're only selling ourselves short.

      Perl only? I don't buy it.

      Cheers,
      Ovid

      New address of my CGI Course.

        LOL. I'm actually one of the original JSAN authors, so yes, I do count Javascript as a language. I actually prefer Java's OO to Perl's OO, for a number of reasons. (The main one is that classes are so 1990. Prototypes rawk my world.) And, it's not just the lack of namespaces, but the fact that you cannot safely mess with Object.prototype due to the lack of built-in associative arrays. Oh, and the fact that I have to know if a slot contains a function or not before I can safely access it. Ick!

        As for SQL - it's not a programming language, it's a minilanguage designed to describe a resultset. In fact, I would argue it's not Turing-complete because you cannot step from one statement to the other like you can in Prolog. PL/SQL is even worse and it's palatable only because it's sometimes the only acceptable way to get Oracle to do what you need it to do.

        I don't actually know many languages, but I know how to learn languages. I prefer knowing how to learn vs. actually knowing any day of the week. It's all about potential, baby! :-)


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Professional perl
by superfrink (Curate) on Oct 18, 2005 at 04:24 UTC
    I'm going to list a few things you might hear if you get a job at a place that doesn't use perl. Not every place will be like this but some will. I think it depends on the people who started the company and the culture that developed in the company. If you are worried about the company's view on perl you can always ask before accepting the job.

    I also recommend reading Scripting: Higher Level Programming for the 21st Century by John Ousterhout.

    • If we distribute programs in perl people can see our source code.
    • It's not as fast as compiled C.
    • Code in perl is ugly and hard to understand.
    • No one eles (here) knows perl.
    • Perl is used by hacks. (ie lazy programmers who do messy work.)
    • Perl is a web language.

    The above points all have some basis in fact from someone's point of view but they don't tell the whole story. Perl code may be easier to reverse engineer than compiled C code. If your program's workings are important enough compiled C code can be dissassembled too.

    Any language is hard to read if you don't know it. All of the C programmers in the shop may not know perl but 1) they might be able to learn, they might even be excited about it 2) you can hire other people. Both of those options do have a price.

    Don't be discouraged. I have worked at places that don't use perl and I wrote perl code for little things while working at those places. Usually when people see how much faster development goes they come around at least a little bit.

    After a while people learn that you like the language and that it's powerful. Now I have friends contacting me to write perl for contract work. On that note it's 10:30 PM and I have work to do. ;)
Re: Professional perl
by blue_cowdawg (Monsignor) on Oct 17, 2005 at 20:29 UTC
        I'm wondering if some people here struggle professionally with being, more than anything else, a perl programmer?

    Well, in my long sojourn with Perl I can truthfully say that Perl has been more of being another tool my by in my box of tools to do my "real profession®" being a Unix Professional.

    I did have one gig where I was a full time Perl programmer, but for the most part Perl has been a tool or means to an end. One that I use quite often granted, but still just a tool.

    Update:Corrected a typo caused by a very tired brain slipping gears. Thanks VSarkiss
    Peter L. Berghold -- Unix Professional
    Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
Re: Professional perl
by pg (Canon) on Oct 18, 2005 at 00:37 UTC

    I would look at this from a different perspective. I don't see myself as a Perl programmer, and I don't want anybody to view me in that way. I don't want anybody to see me as a c programmer, or a Java programmer, or whatever programmer.

    I see myself as an IT professional, and one of the many tools that I have used is Perl and I like it as it is really handy.

Re: Professional perl
by pajout (Curate) on Oct 18, 2005 at 08:45 UTC
    I am an employee of small software company. We do database-driven webs and we run own engine standing between mobile-operators and mobile content sellers. All coded in Perl, running on Linux.
    Well, I coded in C, C++, Borland Pascal,... But I used Perl only for 2 years ago (not counting SQL, JavaScript, XSLT, bash) without need of anything from previously named languages.

      I just want to thank everyone for their thoughtful responses. They are much appreciated. I'm currently on a job hunt, and, with a substantial perl background, I've been having mixed feelings about the entire thing.

      But I am now more comfortable embracing my affection for perl. :-)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://500800]
Approved by kutsu
Front-paged by kirbyk
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (3)
As of 2024-04-19 17:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found