Grant Proposal: Learning Perl 6, a book from O'Reilly Media

The Grants Committee has received one grant proposal for the November/December round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposal below and please comment here by December 12th, 2016. The Committee members will start the voting process following that and the conclusion will be announced approximately in one week.

Learning Perl 6, a book from O'Reilly Media

  • Name:

    brian d foy

  • Amount Requested:

    USD 10,000

Synopsis

Partially fund the writing process for Learning Perl 6, a book from O'Reilly Media

Benefits to the Perl Community

Note: I am also running a Kickstarter campaign (https://www.kickstarter.com/projects/1422827986/learning-perl-6). I have not given much thought to the mechanism of The Perl Foundation funding, but I think I'd want it to be through your normal mechanism rather than Kickstarter. I understand that payment on completion in part of that process. That works for me. I would appreciate TPF's help in spreading the word and finding backers.

Perl 6 does not have a tutorial book. To reach further out into the general programming world, people need a gentle introduction to the language. This book is about bringing people into the community more than serving the ones already here.

Some people have written survey books that have covered ancient versions of the language (Perl 6 and Parrot Essentials, Perl 6 Now). Other people are working on cookbook-style example books (Moritz Lenz most notably). Several other efforts have stalled or stopped. A book can be a big chunk of a person's life, and financial stability along with the removal of the distractions of normal commerce are key to success.

The big question is my need for the money, especially when I have a major publisher committed to publishing the book. In short, I've shifted O'Reilly risk tolerance by taking on some of it myself.

First, book sales aren't what they used to be. I'm taking a big gamble here and I have a lot of personal risk, mostly in lost time. Many comments on the kickstarter have centered around "Why doesn't O'Reilly pay for the book?" Publishers don't "pay" so much as give you advanced royalties. That robs the future to pay for the present. I've never taken an advance on a book, and even if I did, a sane publisher wouldn't provide me enough money to allow me to do this. I fully expect Learning Perl 6 to be my least-popular book.

The entire technology book market shrinking and has been for years. Perl 6 as a usable language is a new technology in an already crowded market. There's a big chance that this is a "front list" book that makes all of its sales in the first months of its release and is never bought again. This situation happens with a dedicated fan base or a highly promoted book that doesn't catch on. I already know the sales numbers for Learning Perl. If I had to guess at a sales target for Learning Perl 6, I'd take one-tenth that number. It's not a motivating amount for me. As the author of several existing books, I don't have the same secondary rewards of new fame and recognition as a first-time author.

Second, book sales aren't primarily important to the marketing goals of the Perl 6 community. To be taken seriously as a technology (even if the community is small), someone needs to be able to point to something in the marketplace. A technology manager might take a signalling cue from the existence of a dead-tree book because the publisher has already judged risk and committed to the book. Even if we think this is a poor way to make judgements (and granted, we'd often be right), there's the dirty mess of reality versus how we think the world should be. This is important to many people in the Perl 6 community. The lack of a book is a big hurdle for our "force multipliers"—the teachers and trainers who don't have the time to construct a full curriculum themselves but could use a tutorial book that's ready to teach in a segmented, classroom enviromented.

Third, the Kickstarter amount sounds impressive, but I'm also responsible for all expenses and taxes. Every e-book and print book I give out as a reward is actually a pre-sale. Most of that money flows to the publisher as a sale (of which I still get a royalty). The Kickstarter money is also subject to taxes. I've run a small business for a couple decades; that number doesn't seem that large for the effort. I'm looking for any support out there. When you consider the amount, I think it's much more productive to think about getting what you want at a price that makes sense to you. Considering the levels that TPF has funded similar grants delivering less, I think this is more than reasonable value.

If you could get this book without this grant and without the Kickstarter, I'd support that. Indeed, I've waited for that book just like you. But, no one has stepped up to write it and that book doesn't exist. TPF's role could underpin the community support I'm already receiving. This grant further ensures the end result.

Deliverables

The deliverable is a printed O'Reilly Media book. O'Reilly publishes and promotes the book. I am already under contract with O'Reilly. Brian Jepson is my editor, and we've developed mock cover art for the book (meaning, O'Reilly has assigned us an animal).

I am running a campaign through Kickstarter to fund this book. Several of the rewards involve delivery of the book. The folks at O'Reilly tell me this means I can't have my working sources open as I normally do because it would violate the Robinson-Patman Act (some customers get the same product at a lower price). I can, however, allow access for selected technical reviewers and grant managers.

Project Details

I'm writing a tutorial-style book for beginners. I expect the book to be about the size and scope of the existing Learning Perl book. I'm aiming for 300 pages.

This is not be definitive or a reference (others are working on that). This is not the documentation. A tutorial's task is to introduce the language in steps and uses the least number of concepts along the way. My goal is to build a solid foundation for understanding the language both in syntax and philosophy. Documentation explains a tool but doesn't put it into the context of a task.

This book progresses by slowly introducing concepts and giving readers a chance to practice those. Typically, I explain the fully expanded form of syntax and work my way to the idiomatic representation. This technique helps readers understand the implied parts of the idiomatic form, but also helps them become better readers of other people's code.

Each chapter of the book includes exercises along with explicated answers. Practice is the key to learning.

Inch-stones

A book project isn't straightforward. There's not a single path to the result. Often the work is a big soup until it seemingly miraculously comes together close to the end. The progress in a new book is more experimental and philosophical than concrete. The initial effort is usually a big mess, but that's part of the process.

Project Schedule

I have these major milestones specified in the contract for the book:

  • Two completed chapters by January
  • Half the book by May
  • The whole book by August

It takes approximately three months for a book to make it through the O'Reilly publishing process. This includes one round of technical review, two rounds of copy-editing, an indexer (a live person who indexes the book), and finally injection into the distribution channels.

Additionally, there is a set of people (official technical reviewers or self-selected backers through a Kickstarter reward) who will receive monthly drafts of the book. They will be able to provide feedback and comments, and should be an effective commitment device. They get a PDF that looks just like an O'Reilly book since it comes out of the continuous publishing system.

As for a more detailed schedule, it's been my experience in publishing that they are never honest and no one expects them to be true. I could say that I'd deliver a particular chapter in a particular month, but later discover that it's more important to work on a different chapter. Halfway through I typically have a moment of clarity that makes me go back through everything I've already done to take it in a different direction.

I typically view the schedules as a bit squishy, but I've always been close.

Completeness Criteria

To be judged complete, my O'Reilly editor, Brian Jepson, certifies that I've met the conditions imposed by O'Reilly. Once I've done that, O'Reilly mostly takes over and it's a sure thing.

Under the standard author contract, O'Reilly judges the book complete when they think the content and form of the book are at or above the level of their usual quality. If it is not (and this have never been a problem for me), they have the right to ask another author to make changes to bring it up to their standards.

Bio

I'm brian d foy, the author or co-author of many of the existing Perl 5 books from O'Reilly Media, including Learning Perl, (Editions 4 to 7), Intermediate Perl (Editions 1 and 2), Mastering Perl (Editions 1 and 2), and Programming Perl (4th Edition). I am a U.S. citizen living in the U.S.

I've worked extensively in the publishing process, have great tools that I've already used for my previous books, and have already set up everything with O'Reilly Media.