In this chapter, we will introduce a new way of programming that we have not explicitly used before in the book. It's called object-oriented programming, and it will be used throughout our third and final example in the book. Object-oriented programming is very popular among programmers, and it's mainly used to allow for complex abstraction relations to be modeled and implemented in such a way that the evolution of the system is not jeopardized.
When developing object-oriented systems, and in general when we program, we should strive for simplicity, but it doesn't come naturally. When dealing with a complex domain, it's easier to create complex rather than simple code. Programmers must make an active effort to produce simple code, since simplicity depends mostly on the programmer, not the language. In this chapter...