Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Perl books I'd like to have

by tlm (Prior)
on May 17, 2005 at 00:30 UTC ( #457616=note: print w/replies, xml ) Need Help??

in reply to Perl books I'd like to have.

For a while I had been thinking of writing a meditation called "Perl books I'd like to see," but since you posted this one, I may as well add turn my meditation into a note to it.

I'd like to see someone start a whole series of Perl "cookbooks" devoted to whole modules and applications. For example, an entire book showing how to write a basic mail client in Perl, or a simple text editor, or a simple web browser, or a personal calendar/address book or an personal accounting program, or a basic mail-order website, or an internet forum like PM. Of course, these applications would not match the functionality and performance of existing open-source offerings. The point is rather to take an intermediate or advanced beginner through the process of crafting a full-blown application. This process involves many design decisions that are difficult to convey in the abstract.

One objection I have received to this idea is that the issues involved in designing such an application are not specific to Perl. That's certainly true, but the same could be said of most if not all the recipes in the Perl Cookbook. My point is that there is value to the non-expert in seeing the process of developing a full-blown application in concrete, spelled-out terms, such that design questions cannot be waved away with theoretical generalities. In a full-blown application, even a toy application like what I'm describing, tradeoffs must be examined and decisions made, and, at the end of the day, the thing has to perform.

That said, I think it would be essential to leave room for the reader to try things out on his/her own. It would be easy to include exercises such as "modify module X to add features Y and Z." The book could end with an extended discussions of ways in which the application may be enhanced, and maybe pushed beyond the level of a learning toy.

I realize that there are a lot of people programmers who do not need this type of book, but then again there are a lot of programmers who do not need books like Learning Perl, and who go straight for Programming Perl (if not the PODs). I think there'd be a sufficiently large audience for such a series.

the lowliest monk

Replies are listed 'Best First'.
Re^2: Perl books I'd like to have
by TheStudent (Scribe) on May 17, 2005 at 01:18 UTC
    I think this is a excellent++ idea! Personally, I learn much quicker from examples than from documentation and theory. I enjoy and consume theory but have a much easier time seeing ways to put the theory into practice by seeing and understanding how others have applied it.

    While this is possible to do by 'studying the source Luke' it is much clearer, and quicker, for me if I can see and understand the rationale for why something was done rather than just seeing and exploring what was done.

    Just my $.02

Re^2: Perl books I'd like to have
by merlyn (Sage) on May 17, 2005 at 05:22 UTC

      By definition the applications I have in mind are bigger and/or described at a greater level of detail than could reasonably fit into a magazine article. By "greater level of detail" I mean full source code, in which every module, subroutine, and variable is described. I don't think there is anything like this in the market at the moment, in any language, but years ago I saw a book that described, at this level of detail, how to implement an RDBMS in C. The typical chapter described a module of the program: the specs, the important design options and tradeoffs that had to be considered, and finally the gory details of the implementation, function by function and struct by struct. One could think of it as the programming equivalent of a kit for the weekend hobbyist to build a working car or airplane, providing every nut and bolt for it, and a diagram of where each goes.

      the lowliest monk

        Ahh, I'm actually thinking of a book like that for a typical 10-page web-based application, using CGI::Prototype, Template::Toolkit, and Class::DBI. Well, not exactly thinking of it... more like being encouraged strongly by my clients to write such a book to give a broader overview than all the details that are out there so far.

        The problem with books is that unless your book is wildly successful, you end up getting paid roughly minimum wage to write it. And no, I'm not kidding. I could make more money flinging hamburgers than writing some of the books I've written. {grin}

        So, the purpose of writing a book is to act as a credential, or to be done as a labor of love, or to support a class as a textbook. I already spend time here (and everywhere else) as a labor of love, so I'm sort of labored out there. And I really don't need another credential.

        The third option is intriguing, but I'm not sure what the classroom sales would be of a course that covers the "small web app" market. The problem isn't that there aren't a lot of people doing it: there are! The problem is getting 10 to 20 of them in the same room for a week. Ugh.

        -- Randal L. Schwartz, Perl hacker
        Be sure to read my standard disclaimer if this is a reply.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://457616]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (2)
As of 2023-01-28 07:09 GMT
Find Nodes?
    Voting Booth?

    No recent polls found