Pretty user interfaces
All the examples throughout this book have been run from the command line. This is great for system administrators, Linux tinkerers, and the grandfather programmers of our times, but it doesn't allow us to write the sort of modern desktop programs that everyone is using these days. Indeed, some might argue that even desktop applications are archaic, and that web applications (which we'll discuss soon) and mobile apps are more contemporary!
The reason we haven't looked at graphical applications is that they invariably rely on design patterns that offer such a high level of abstraction over lower-level objects that it's hard to see the objects for the patterns. This isn't terribly useful for learning about object-oriented programming. But now that we know the ins and outs of the object-oriented paradigm, we can briefly discover the world of Graphical User Interfaces, or GUIs, for short.
It would be possible to design graphical interfaces from scratch, interacting with...