Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

On "Programming Perl" 3rd Edition

by Scott7477 (Chaplain)
on Apr 20, 2006 at 04:41 UTC ( [id://544515]=perlmeditation: print w/replies, xml ) Need Help??

"Preface"

I have started reading this book for the second time. The first time through, I sort of cherry picked my way through it. I was completely new to Perl at the time, and used that first read to help myself get a handle on the basics of Perl and how it differed from languages I had been using (Basic, Pascal, a little bit of C and C++, Visual Basic, Python). Most of the discussion of the more fundamental attributes of Perl and design decisions that Larry Wall et al have made in creating the language were over my head or required more study than I wanted to do at the time.

My intent is as I study each chapter to make notes for myself and perhaps post my thoughts on each chapter as a review or meditation. I know there are a couple of reviews already posted here; those seemed pretty high-level or general to me. Since this, the "Camel" book, could arguably be considered to be the "bible" of Perl programming, it would certainly warrant close analysis. Now, I'm not saying that I'm the guy to make any definitive pronouncements, but I figure I'll post what I think and see what everybody has to say. It's guaranteed to be a learning experience for me.

Off I go: the first thing that strikes me about this book (I'll call it Camel Mark III for the rest of this, just for fun) is that the writing is up to O'Reilly's usual high standards for readability. I own a number of O'Reilly books and they are all very well edited. No difference here. I'm pretty sure every monk has encountered some programming book that was all but unreadable; I suppose some publishers just let an individual who is known for their programming skills fire away and don't bother to clean up the English a little. A good analogy is the math professor you have who is an eminence in his field but can't teach the Calculus 101 he's been assigned for the semester to save his life. I imagine it is difficult to produce as good a book as Camel III when the editor has to assemble the styles of three different people and come up with a consistent voice throughout the book.

One of the most remarkable features of the book is the ease with which the authors shift between simply describing syntax or a function or a module and discussing the fundamental issues of language design. If this were done poorly, such shifts would be headache inducing; in this book the shifts came across to me as "this syntax makes sense, and I sort of see where they came up with it. I'll have to come back and figure that out later."

So the preface starts off with a bang; the following quote is one that I whole-heartedly agree with: "we know from experience that computer languages differ not so much in what they make possible, but in what they make easy...the so-called fourth-generation languages make it easy to do some things, but nearly impossible to do other things. At the other extreme, so-called industrial-strength languages make it equally difficult to do almost everything." To me, that statement right there tells me these guys know what they are talking about. The rest of this first section of the preface elaborates on how Perl avoids the problems raised in that statement. The authors sum it up this way: "Perl is designed to make the easy jobs easy, without making the hard jobs impossible." Larry Wall should design himself a coat of arms with that quote as the slogan, put it on a flag, and raise it at whatever place he considers the headquarters of Perl.

Does Perl live up to that slogan? I can't completely say for sure, since I'm still relatively new to the language, but from what I've seen so far it seems to be well on the way. But that's a different subject entirely, so back to the book itself.

Of course the authors tell you what is new in Camel Mark III; I can't say whether the additions were ideal since I've never touched previous editions. They tell you how to get your hands on a standard distribution of the language. They give an overview of what the standard documentation is and a couple of methods for sifting through the documentation to find a specific detail you might be looking for.

Next, the authors provide an annotated list of other books (and "The Perl Journal", which has apparently given up the ghost) that they think would be useful you if you get into using this language regularly. Based on my meanderings through various online forums, the Perl community at large would agree with the titles included. Also provided are are URL's for online resources, although reference to Perlmonks.org is strangely absent:).

To sum up: in their Preface to Camel Mark III Wall et al state their ambitions for Perl, tell you what kind of large scale projects have used the language to get you motivated and back up their ambitions, and tell you how to get your hands on a Perl interpreter along with the documentation and books to get you going.
Update: Thanks to rhesa for pointing out that I fat-fingered the quote of Larry W. as the last word in that sentence should have been "impossible", not "possible." Fixed: my excuse is it was approaching midnight as I was typing.

Yet another update: I forgot to mention that one of the books listed as a reference is "Lord of the Rings." If you've read the trilogy and liked it there's surely some level at which it is obvious to you why the authors included it. My thought on why they included it is this: the book is a masterwork of English literature that draws on multiple sources for inspiration, can be interpreted at a number of different levels, communicates with several different writing styles within the same work and yet manages to appeal to readers from junior high school students to adults at the same time.Also, Tolkien was a linguistic expert.

The mapping to Perl seems clear in that Perl borrows syntax from a variety of languages, can be used at multiple levels from simple scripts to potentially writing a new programming language, and should be useful to programmers from a variety of backgrounds. Plus, it seems clear that Larry Wall is a linguistic expert.

Considered by jdporter: move to Book Reviews
Unconsidered by Arunbear: moving to Book reviews isn't supported; Keep: 4, Edit: 34, Reap: 0

Replies are listed 'Best First'.
Re: On "Programming Perl" 3rd Edition
by dragonchild (Archbishop) on Apr 20, 2006 at 11:18 UTC
    I used to take my Camel3rd into the restroom with me at work, flip to a random chapter, and read for 12.3 minutes. Do that for a couple years and your Camel3rd will end up looking like mine - like it needs a looong vacation. :-)

    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?
      restroom with me ... for 12.3 minutes

      Don'tcha just love to hate those dratted "Time & Motion" studies :)


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        It sounds like dragonchild was in the habit of taking some of those Dilbertian "porcelain cruises". If I recall correctly, the PHB told the denizens of Dilbertworld that they had to take their vacations in small chunks, so Dilbert's sidekick comes back with, "if you need me, I'll be taking a porcelain cruise."

      Mental Note: Never EVER borrow dragonchild's copy of the Camel.

        I only ever ran out of toilet paper once. I'll let you guess which chapter ended up taking one for the team. :-)

        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?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-26 00:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found