http://qs321.pair.com?node_id=500865


in reply to Professional perl

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?

Replies are listed 'Best First'.
Re^2: Professional perl
by superfrink (Curate) on Oct 18, 2005 at 04:41 UTC
    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.
Re^2: Professional imperative, objective, functional and logical perl
by Ovid (Cardinal) on Oct 18, 2005 at 23:09 UTC
    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?