Thought on the Future of Books
I think that among the strengths of computer programming and similar systems are recursive composition and parameterization. For a long time, I’ve thought it would be nice to apply this to text as well.
Notes
The possibilities of books that are not just lumps of text:
- What if different books could be generated dynamically depending on how very small modules are combined and what parameters are supplied?
- What if even for the exact same book, “Introduction to Python,” different books could come out depending on what the reader already knows, what operating system they use, and what they are trying to do by learning this?
- What if, as the reader goes through the book, they are asked to solve practice problems and such along the way, and the later content can change little by little depending on the results? (For example: if it turns out the reader already knows data structures well, greatly reducing or removing the modules that cover that material)
- What if it were easy, at the time of publication, to decide what content goes into the paper book and what content goes onto a website? (For example: putting content with a short information lifecycle, such as program installation instructions, on a website and updating it frequently, while putting other kinds of content in the paper book)
For this to be possible, the main body of the book must not be a “lump of text.” It would need rich metadata, modularization in a way that allows recursive composition, and parameterization (for example: a module that explains the same Hello World example, but where the explanation and sample code change depending on whether the parameter is “Java” or “Python”).
The original should be structured data, and the result of rendering that should be the book. If this becomes possible, it would probably also be possible to render the same data as a podcast or lecture video. If it gets this far, then it would also become possible to generate revised editions of books/podcasts/lecture videos in real time.
If video can be rendered in real time (a virtual character giving an explanation with gestures, the voice synthesized with TTS, a coding screen in the background…), then it would make various experiments possible, such as saving bandwidth and embedding rich links into the video. Accessibility would also improve, and responsive rendering according to form factor (phone, tablet, TV, …) would be possible too.
I think this could be a foundational technology applicable not only to books but also to various other fields, such as journalism (e.g. structured journalism) and debate (e.g. World-Wide Argumentation Web), and I also think it points in the direction of making it easier for anyone to participate in the process of producing information, like a wiki.