Slashdot Mirror


23 Years of Culture Hacking With Perl

Modern Perl writes "Larry Wall, the creator of Perl, reflects on Perl's history of hacking its culture, from subverting the reductionist culture of Unix to reinventing the ideas of programming language and culture in Perl 6 and the verbal aikido used to encourage honest detractors to become valuable contributors. Perl turned 23 years old last week, and Perl 6 is available."

17 of 99 comments (clear)

  1. Yeah, now try hiring for it. by FooAtWFU · · Score: 4, Interesting
    Yeah, now try hiring for a good OO software engineer to write Perl. The applicant pool isn't spectacularly broad. Not too surprising, I suppose, since most of the positions out there featuring Perl are either QA automation or something titled "Build Engineer". Ruby has all the mindshare these days.

    (Hiring ~4 OO software engineers to do Perl. Forgive the inane outsourced hiring-management site. Merry Christmas.)

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
    1. Re:Yeah, now try hiring for it. by Short+Circuit · · Score: 3, Informative

      If you're looking for Perl 6 coders, you might try their IRC channel, #perl6 on Freenode.

    2. Re:Yeah, now try hiring for it. by FooAtWFU · · Score: 3, Interesting

      I should clarify, actually. We (the dev team) are not trying to limit it by language. Our in-house recruiter, however.... well, he's got different ideas about what we're looking for than we do, and let's just say I've heard rumblings from the head of Engineering which don't bode well for his future. Not that I can take any credit; I'm just now taking over hiring for my department; the battle to make our job posting look half-decent for this round of hiring begins when I get back from Christmas vacation. In the meantime, I'm asking around for tips.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    3. Re:Yeah, now try hiring for it. by Anonymous Coward · · Score: 3, Informative

      I've been a build engineer since the mid-80's. My first exposure to Perl was in 1989. The last line of Perl I wrote was in 2005. I spent a year deciding on which direction to go... Python or Ruby. I went with Ruby as my primary scripting language, and have brought Ruby and Rails into 5 companies to build engineering infrastructure. The reason I went with Ruby was due to its simplicity, power, DSL support, and Rails, and both the Ruby and Rails community. In Silicon Valley I found that when working with people that are coding in Java, they are in most cases going to script with a well accepted OO language like Python or Ruby. For me, both Ruby, Rails and their communities has had a huge influence on my coding and development practices.

    4. Re:Yeah, now try hiring for it. by bzipitidoo · · Score: 3, Insightful

      Don't be too hard on the recruiter. All his training puts the highest priorities on "skills", and very specific experiences. He wouldn't know a great coder from a good liar who feels that spreadsheet macros are his limit. A person like that shouldn't have been given the job of screening applicants. It's not his fault, it's the fault of management for delegating this crucial function to someone who lacks the background to judge the technical merits of applicants. What tools he has left for making judgments are weak, but it's all he has, so he uses them.

      And it's all our faults for focusing far too much on specific languages. We all know that anyone who is good at several programming languages is not going to have a problem picking up a new one. Even programming paradigms are not the big deal they make them out to be. OOP and Functional Programming are not that profound or mysterious. Lot of what is being called functional programming is actually modular programming. But you can't tell any of that to the interviewers. Have to tailor your resume and give yourself a crash course on whatever it is they say they want so you can answer the trivia questions they're using to screen people. I use Perl, but I sure don't have something like all the operators memorized. That's what a reference manual is for, and I have found the Camel book an excellent one.

      It never ceases to amaze me that so many companies treat the search for talent as little more than a rigged lottery. Head hunting agencies are even worse. They come up with the craziest, completely subjective, off-the-wall reasons for rejecting people, and then complain that they can't find talent. "Learning on the job" is so pre 1980. "Hit the ground running" or "don't let the door hit your ass on the way out" is the way things have been for a long time now. And they don't want competence alone. Many also seek signs that their choice won't leave, and can be pressured to work harder, maybe has something in the closet that shows he understands the "realities" of doing business and so will not make any trouble for management, by, say, doing any whistleblowing. They want a contradiction-- competence at the job, and incompetence at personal finances so that the employee cannot leave without losing everything. Makes the employee more "reliable".

      Cue the job postings for 5 years of experience in Perl 6.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
  2. Perl by emijrp · · Score: 5, Funny

    The only language that looks the same before and after RSA encryption.

    1. Re:Perl by FooAtWFU · · Score: 5, Funny
      My favorite line of Perl code ever was in a validator somewhere. It checked whether something was a valid IPv4 construct (something netmask related, I forget the specifics) by passing it to the library, and seeing whether the library threw up or not.

      return !$@;#%

      Yes, the last 40% was purely gratuitous.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
  3. Re:Perl6 by FooAtWFU · · Score: 3
    Also, I was strongly under the impression that Rakudo was still more of a 'useful, usable, "early adopter" distribution of Perl 6' than a mature, production-ready system.

    Mind you, I'd be thrilled to see some nice new stuff in the Perl space. But I work on a software appliance and some of the customers pay tens of thousands of dollars (or more) for it and they do expect a modicum of reliability....

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
  4. I love Perl, but by Anonymous Coward · · Score: 3, Insightful

    The thing that kills me about the Perl culture is that the delusions of what things mean to the non-Perl world.

    This article is yet another example of that. Larry writes about Camelia representing so many points, which sound fantastic but are complete bollocks. Perl6.org, and specifically Camelia, do not say "fun", or anything about sterile environments or anything about clarity.

    What it says is that in 23 years, the old Perl guard still hasn't figured out that making something that looks completely stupid makes people think you are completely stupid.

    Everything looks completely stupid that comes out of Perl6.

    Nobody really even knows what Perl6 is (even O'Reilly) and then randomly people point out Rakudo Star. This looks like the community is fractured (which it isn't, but it looks that way at a glance, which is all people are getting.)

    I'm saying all this as a Perl hacker. I do love Perl, I think it's great, but all of this is basically turning Perl into something like Furries. The people involved seem to not think there is anything wrong, but every other person in the world makes faces at them.

    I can't imagine being involved in that good thing Scala really is all those things Larry wishes Camelia represents.

  5. Rambling, barely coherent, self-indulgent. by BitHive · · Score: 3, Insightful

    I suppose I learned a lot about the Perl community though.

    1. Re:Rambling, barely coherent, self-indulgent. by grcumb · · Score: 5, Insightful

      I suppose I learned a lot about the Perl community though.

      Larry may sound glib most of the time, but if you took the time to look, you'd see method in his madness. He chooses to make his points lightly, because that's an important part of the message. Perl as a language is designed to reflect the idiosyncrasies of the human brain. It treats dogmatism as damage and routes around it. As Larry wrote, it is trollish in its nature. But its friendly, playful brand of trollishness is what allows it to continue to evolve as a culture.

      Strip away the thin veneer of sillyness and you'll see that everything I've written has been lifted directly from Larry's missive. Just because he likes to act a little silly doesn't mean he's wrong.

      One of the worst things a programmer can do is invest too much ego, pride or seriousness in his work. That is the path to painfully over-engineered, theoretically correct but practically useless software that often can't survive a single revision. Perl as a language isn't immune to any of these sins, but as a culture, it goes to some lengths to mitigate against them.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  6. Re:Perl6 by Short+Circuit · · Score: 4, Interesting

    I've been playing around with Perl 6 a little this week. Rakudo works well enough that I'll be using Perl 6 where I've previously been using Perl. I find it useful to follow the Perl 6 Planet, as it has a bunch of Perl 6 developers' perspectives and musings as they use the langauge. (For example, one guy wrote his blogging engine in Perl 6, and commented on speed differences between a couple Perl 6 implementations.)

    I'm also helped that Larry Wall has been doing active code review of the Perl 6 code over on Rosetta Code, a site I run; it's nice to have an active source of idiomatic code for understanding the language.

  7. Surprised nobody mentioned yet by toby · · Score: 5, Insightful

    That /. is written in Perl.

    --
    you had me at #!
  8. Re:After many years of excellent work, Perl is dyi by Junta · · Score: 5, Interesting

    My experience has been largely:
    -if working on existing progress, continue in language it is already in
    -if working on new project, what's the language most comfortable for the most developers available

    Frequently, the answer continues to be perl, sometimes python, sometimes ruby. Usually, I can't be bothered to care. If it comes down to my call, currently I prefer:
    -If planning to use across many OS updates, perl5. Nice and stagnant, not screwing around with how it does things, perl6 threatens this.
    -If not expecting a lot of churn on the runtime but active development across random developers coming and going as available, python as it forces readability.
    -If expected to work in a barebones as possible generic windows, vbscript, but please no.
    -If wanting to work with as few prereqs as possible on Windows server 2008r2/7, then powershell.
    -Have gone along with ruby, but have not personally found the magic situation I personally prefer it for above all other possibilities.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  9. stability and culture by e**(i+pi)-1 · · Score: 3, Insightful

    What I appreciate most about Perl and C is the stability and culture. It is not just a hype which _might_ be around in 10 years. It is one of the languages, which will persist, it is a language I can rely on, just because experience has shown me that. In a rapidly evolving time, it is good to have some things which persist.

  10. Re:After many years of excellent work, Perl is dyi by grcumb · · Score: 5, Interesting

    My recent experience is that discussions of Perl quickly turn to discussions of Python, after people make statements like, "If it weren't for CPAN, Perl would be dead."

    That's not too far from the truth, if you understand that statement to be analogous to "If it weren't for the US dollar, the American economy would be dead." It may only be one thing, but it's a pretty big thing.

    "There's more than one way to do it." translates to, quoting from Wikipedia, "This makes it easy to write extremely messy programs..."

    No grasshopper, you fundamentally misunderstand the implications of that statement. Show me a problem in which there isn't more than one way to do it, and I'll show you a problem you haven't grokked properly yet. Perl is a language without ideology. If programming languages were religions, perl would be closer to atheism (sorry Larry) than to anything else. Yes, it sometimes does cast people adrift because they're forced to accept that there is no final arbiter, that sometimes choices do come down to indulging one's biases. The difference here is that we recognise that, and that you have no one to blame for the biases except yourself.

    For a good programmer, this is one of the paths to enlightenment.

    To abuse the ideology metaphor a little further, perl is democratic (and borderline anarchic) because it does not criminalise stupidity. Likewise, it doesn't always protect you from yourself. If you really want to do things a certain way, the language probably won't stop you, and might even help you.

    And if you still don't get the freedom that perl provides, feel free to vacate the green space in front of my domicile. I'm not going to force you off, but I might laugh at you if you stay.

    --
    Crumb's Corollary: Never bring a knife to a bun fight.
  11. Scary by ornil · · Score: 3, Informative

    So I looked at the Perl5To6 Manual, and it gave me a headache. Really, I had to get some medicine just now. There used to be 10 ways to do anything in Perl 5, and in Perl 6 there's 20. And operators are approaching APL in obscureness and number. It has ways of being even more terse at the expense of the maintainer's head possibly exploding. Some changes are very nice and clean up some weirdness, but they compensated for it with a vengeance.

    There's macros, and more contexts (where function returns different things depending on how its value is getting used), and meta-operators, and operator overloading on never-before-seen scale, and weird variant types, and ways to embed an enum into any object, even more complicated regular expressions, and so on ...