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.
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.)