Nice post! It's interesting that hardly anyone has chimed in that some programming language features make addressing this problem considerably simpler without forcing the programmer to write excess boilerplate. Objective-C delegation, JavaScript Proxies https://developer.mozilla.org/en/JavaScript/Reference/Global..., ClojureScript protocols all provide the machinery to make this kind of thing work without making the code too hard to reason about.
Comments
Nice post! It's interesting that hardly anyone has chimed in that some programming language features make addressing this problem considerably simpler without forcing the programmer to write excess boilerplate. Objective-C delegation, JavaScript Proxies https://developer.mozilla.org/en/JavaScript/Reference/Global..., ClojureScript protocols all provide the machinery to make this kind of thing work without making the code too hard to reason about.