What is up with authors today?
OK… I’m getting pretty annoyed with software books today that either 1) cover a topic that’s been exhausted to death (i.e. Intro to C++, 19th edition) or 2) cover a topic so superficially that anyone that would be interested in the book should already know 95% of the content in it.
Here’s a perfect example of a book that I’m talking about, Cross-Platform Development in C++: Building Mac OS X, Linux, and Windows Applications. I’ve looked over this book twice at the book store hoping that it would be better than it is. Unfortunately, the book is just completely uniformative.
Essentially the book boils down to the following points:
- Build your code on multiple operating systems.
- Build your code with different compilers.
- Use a cross platform build system (or a tool to keep different types of build projects in sync).
- Use a cross-platform source control system.
- Provide native installers for your supported platforms.
- Use standards-based APIs.
- Be careful about data types, especially floating point types and binary representation of data (i.e. little endian?).
- Separate the UI from the model.
- Write a native UI or use a cross platform UI framework.
So tell me? Which points of those above do not fall into the “no s**t sherlock” category? From what I see… NONE! Yet there is an entire book filled with this information that should be totally obvious to anyone that is actually capable of embarking on developing cross-platform applications.
Now, it would have been nice if the book when into how to solve any of those problems, however, it doesn’t. The most it really talks about a topic is with the UI stuff and I’m guessing that is because the author wrote one of the suggested frameworks to use.
OK, so what should we be expecting from a book like this? Well… I think it should actually go into detail on how to actually solve each of the questions addressed. For instance, actually go through the steps to get a cross platform build system running on OS X, Linux, and Windows and which tools are available to do this. Show how to setup your SCM system on multiple platforms and getting that working. Sadly, this book really falls short on any real explanation about this.
Sure… the book has some details and instructions on the topic, but the examples are so trivial that they offer very little value. What I’d like to see from a book like this is an actual workflow of a real cross-platform application and show how it all fits together, the pain points, the tools used and how issues were debugged on various platforms, etc…