Erik posted an entry talking about an introduction he wrote for a forthcoming C# textbook, and he says:
Many computer books are so heavy that lifting them cause hernia [sic], yet they have less content than your favorite tabloid.
Which made me think about something that I worry about: what’s a good BMI for a book? (By BMI, I mean the fictional Book Mass Index, a related measurement to the human Body Mass Index.) Namely, will people not buy a book if it’s not hefty enough?
As I’ve mentioned earlier, I’m working on a language reference book for VB, something like a K&R or Stroustrup for the VB .NET language. (Whether it succeeds in reaching that lofty goal still remains to be seen.) One thing I continually worry about as I write it is whether the book is going to look good sitting on the shelves between all those behemoth VB books that Barnes and Noble seems to stock. With a mostly-done first draft, it currently clocks in at less than 300 pages, which means it’s going to be puny in comparison, even given some inevitable expansion as I fill in some holes I left in the draft. I’d like to think that it’s just that I’m packing in more information-per-square-inch than other books, but I don’t know.
One thing I’m still debating on whether to add to the book is a section on the VB runtime functions (Left, Right). Technically, they’re library functions, but they’re so closely identified with the language that they are as good as part of it. If I did that, they’d definitely pad the book out nicely (Gosling et al. used this to great effect in their Java book). Of course, that would also mean I’d have to write it.
Ultimately, I think it gets back to something I had to come to terms with when I started working out a few years ago. Being a somewhat competitive person, I would keep track of how I was doing relative to other people in the gym, but over time I observed that no matter how fast or strong or flexible I got, there always seemed to be someone who was a whole lot faster or a whole lot stronger or a whole lot more flexible than I was. I finally decided I either had to quit comparing myself to others altogether and just be happy with my own progress or I had to quit working out. I figured the former was the better option…
I think if its a good book, its better to be shorter instead of padded with stuff that can be looked up. I have always found maller books to be more useful, because they tend to be focused, which is always better.
But, if you look at sales figures and bookstore shelves, maybe you should pad it.
I just think you should make it as long as it needs to be and no longer. 🙂
If your target is the higher-end developer (as are books like Stroustrop’s and K&R), then thin and streamlined – but packed full of useful info – beats an inflated high BMI. If you are writing for beginners, people new to the technology, they are more apt to look at cost per poundage.
Also, the more advanced level audience you right for, the more book’s sell via word of mouth as opposed to bookstore appearance. Also, more advanced audiences tend to buy by author as opposed to book appearance – i.e., Knuth, Box, Strustrup, K&R, Ullman, etc.
Thanks for subtly pointing out that typo 🙂
IMHO programming language books should be around 200 pages (max 250). Favorites include Wirth’s "Programming in Modula-2" (202 pages), Aha, Kerningham and Weinberger’s "The AWK Programming Language" (210 pages), and Milner’s "Communicating and Mobile Systems: The Pi-Calculus" (161 pages). Kerningham and Richie is on the long side with 272 pages.
I definitely think you should have a section on the runtime functions. Apart from being as good as a part of the language, some of them have features which are unique to the language, and thus should be considered separately from other .NET class libraries. Cases in point: Left(), Right(), Len(), Rnd().
On this topic: IMHO, one of the things that differentiates Basic from other languages is how library procedures seem to smoothly become part of the language itself. I know people who are convinced that ADO (for example) is part of the Visual Basic language. The old procedure calling syntax (without brackets) made this very consistent with the traditional VERB NOUN syntax of Basic.
If you are interested in a reviewer, or (dare I hope) a co-author, do let me know. I have been waiting a long time for someone to make this effort.
How long should it be? Long enough and no longer. 🙂
I think BMI is a good analogy. BMI says the taller you are the more you should weigh, but within an upper limit. Likewise, the bigger the topic, the bigger the book, but what BMI is about is limiting the % fat. Ideally, a book should have no fat.
K&R is a great example of great thin book. The Gang of Four deisgn patters book is larger, but it needs to be. And no one complains that the Bible is a couple thousand pages.
One other thing, I think it is important to cover the VB Runtime. People need to think of Left, Right, IsDate as part of the language. Yes, they’re implemented as Shared methods, but that’s an implementation detail. You don’t need to walk through every method individually, I’d just talk about what the runtime is, give examples of what it includes (Left, Right, IsDate, etc.), talk about how it’s implemented, and the design goals of the runtime (compatibiity, additional checking and safety over what the System namespace provides, etc).
Also, you could always "pad" with a chapter on Whidbey features for VB.NET. I doubt anyone would complain.
I prefer books to be as brief as possible, packed with as much info as possible. Unfortunately, I seem unable to write a book of less than 650 pages recently, as evidenced by ATL Internals and WinForms Programming in C#. [sigh]
I think the size of "The Visual Basic Programming Language" book is great. The content is most important of course, but I’m surprised there haven’t been any comments on how price and the usefulness of books are affected by size. I pick up more $34.95 (US) books than I do $59.95. Also, I like the fact I can easily take your book with me to a waiting room or airport. I like Petzold and Balena’s books too but because of their size, they are never more than a few feet from my computer. I also like the idea of breaking a wide subject area into a series like Donald Knuth’s "Art of Computer Programming."
MORE PAGES, FEWER TREES! Put your brains to good uses guys (and girls):please think long-term:it’s one of the beauties of computing.