Someone recently asked me how the rise of the Internet has affected what books get published, specifically related to books about operating systems and other open source projects.
This is based on what I've been told by various publishers and
is "conventional wisdom". Of course, an actual publisher may disagree
or explain it differently, or have counterexamples.
This is the email I sent in reply:
One way that the internet has changed the book industry that is not
well-known outside of publishing circles is that it has lead to the
death of the reference book.
It used to be for every language or
system, someone would make easy money printing a book that lists all the
system calls, library calls, or configuration fields in a system.
Each would be listed along with a definition, and sometimes a longer
explanation or example. These reference books (and the easy profits from them)
have disappeared because that's all on the web for free. For
example, the entire standard Python library is documented on
python.org and is updated constantly. Why publish it in a book?
Another tier of books that have disappeared are the "getting started"
books for open source projects.
In an effort to better market themselves, open source projects
have excellent tutorials online for free. Often they are interactive.
(Check out the
interactive Docker Tutorial
and the
Go Playground to see what I mean).
Part of what has caused this is the commercialization of open source
projects. If you are selling support, your easiest sales are to
people that already use the product and now need support. Therefore
anything you do to expand the number of people using the product
expands the number of potential customers for the support services.
Therefore, a greedy company gives away any documentation related to
how to get started as it increases their base of potential customers.
This is quite radical if you think about it... when you sell
commercial software you hide this information so you can sell
"professional services" that help people get started. For them, the
potential market is all the people that don't use the product
already.
(Footnote Simon Philips's
keynote at LCA 2009
)
As a result, the books that can be printed and sold profitably
now need to have have some
kind of "culture" component (i.e. what we used to call "soft skills"),
or are general education to bring people up to speed so they can
understand what's already out there, or the "cookbook" style books
that list situation after situation. Actually, I love the
cookbook-style books because it is more likely that I'll
serendipitously come across something new by reading all the examples
in a row. If I don't understand the example at least I know where to
turn if I ever find myself in that situation. If I do decypher the
example enough to understand why it works, I've learned a lot about
the system.
What should an OS vendor do? I think they should be the ones
producing cookbooks and also facilitating user-generated cookbooks.
The official cookbook is a good way to proscribe marketing-endorsed
methods. However there is a much bigger need for user-generated
cookbooks full of the niche situations that only users can come
across. Vendors should facilitate, wiki-style, this kind of thing.
They may fear that it is a tacit endorsement of methods they don't
approve of, but they need to recognize that a user getting their needs
fulfilled is higher priority than perfection.
-Tom
P.S. I just realized that my employer's website,
[stackoverflow.com)(http://stackoverflow.com)
is just that kind of
fulfillment. One of our sub-sites
AskUbuntu.com
provides
exactly that kind of "user-generated cookbook" with the ability to
gently push people in the right direction. (Plug: other vendors
could choose to partner with us rather than create a site from scratch.)