This chapter covers
It is my firm belief that all successful languages are grown and not merely designed from first principles.
Bjarne Stroustrup, The Design and Evolution of C++
The previous chapter covered dynamic programming with Groovy, where the behavior of a type or even an individual object can change while the program is executing. You don’t always need the behavior to vary that dynamically though—sometimes you want only to be able to apply common patterns in ...