Plus pretty much any of his examples can be demolished using a strategy or other compositional pattern. He's always been stuck on a strict anti-inheritance kick.
![]() Plus pretty much any of his examples can be demolished using a strategy or other compositional pattern. He's always been stuck on a strict anti-inheritance kick. Regards, -scott Welcome to Rivendell, Mr. Anderson. |
|
![]() I saw this today, and it reminded me of your shapes stories. Draw a girl in sunglasses using CSS. https://twitter.com/asyrafhussin4/status/1544623076863664128 -- Drew |
|
![]() Jim was the curator of those shapes examples, amongst other somewhat larger things (such as, oh, Rake and RubyGems), and probably one of the most famous of our lot with his own Wikipedia page. His last GitHub commit is a memorial: https://github.com/jimweirich/wyriki/commit/d28fac7f18aeacb00d8ad3460a0a5a901617c2d4 Regards, -scott Welcome to Rivendell, Mr. Anderson. |
|
![]() Like, "The problem with OO is seeing everything as 'is-a' when it should be 'has-a', which tables of attributes can model better" [my paraphrase -- CRC]. He seemed (as usual) deaf to his counterparty's explanations and even (albeit partial) agreement, as when Fowler readily admitted he usually modeled stuff as single-inheritance just because most OO languages can't do multiple. Fowler's explanation (in asking Bryce for clarification of whether this was what he meant, IIRC) was along the lines of "If you have a class person you could subclass that along (Man|Woman) or (Doctor|Nurse), but then if you implement both divisions and add a method foo() in both sub-classifications, what will DoctorAlice.foo() do? So I usually only subclass along the 'dominant' (=most used in my code) dimension, and add the rest as ('has-a') attributes" [heavily paraphrased, of course -- CRC]. Not that this affected Bryce in the slightest; he kept yacking as if single inheritance was this huge insurmountable obstacle that made all OOP near worthless (and as if Fowler were a staunch proponent of SI). Regardless of all that, though, "Top"Mind (and Fowler!) did have a point [finally filling that in three days after starting this comment]: The naïve proponents of "OOP lets you accurately model the real world in code!" (to whom I must, to my shame, admit I belonged. Or at least pretended to, just to keep whacking on Bryce) were wrong; in a single-inheritance world, it doesn't. And in OOP as it is practiced today -- and largely was back then -- multiple inheritance is a small and shrinking part. For, I hasten to add, good reasons. -- Christian R. Conrad The Man Who Apparently Still Knows Fucking Everything Mail: Same username as at the top left of this post, at iki.fi |