{"id":17,"date":"2007-01-17T16:02:21","date_gmt":"2007-01-17T21:02:21","guid":{"rendered":"https:\/\/billhiggins.us\/weblog\/2007\/01\/17\/others-on-transparency-and-abstraction\/"},"modified":"2007-01-17T16:02:21","modified_gmt":"2007-01-17T21:02:21","slug":"others-on-transparency-and-abstraction","status":"publish","type":"post","link":"https:\/\/billhiggins.us\/blog\/2007\/01\/17\/others-on-transparency-and-abstraction\/","title":{"rendered":"others on transparency and abstraction"},"content":{"rendered":"<p>Some excerpts below.\u00c2\u00a0 Click on the person&#8217;s name for the full content.<\/p>\n<p><a href=\"http:\/\/www-03.ibm.com\/developerworks\/blogs\/page\/gradybooch?entry=transparency\">Grady<\/a>:<\/p>\n<blockquote><p>There&#8217;s a phrase from systems engineering that applies here, the <a href=\"http:\/\/andywibbels.com\/post\/1263\">principal of least astonishment<\/a>. When an abstraction fails, a well-designed one will (hopefully) fail in predictable ways. It&#8217;s when an abstraction fails <em>and<\/em> it fails in an unexpected way that we have evidence of a <a href=\"http:\/\/www.joelonsoftware.com\/articles\/LeakyAbstractions.html\">leaky abstraction<\/a>. Unfortunately, I don&#8217;t think this kind of behavior is avoidable, although it is the case that tracing down the roots of such failures and then refactoring the stuff at those roots will generally lead to a better separation of concerns. The problem is, in software, we generally never take the time to do that refactoring, and so we occasionally continue to be astonished at the most inopportune times.<\/p><\/blockquote>\n<p><a href=\"https:\/\/billhiggins.us\/weblog\/2007\/01\/08\/the-tension-between-transparency-and-abstraction\/#comments\">Josh<\/a>:<\/p>\n<blockquote><p>I\u00e2\u20ac\u2122ve struggled with this issue too.<\/p>\n<p>I haven\u00e2\u20ac\u2122t come to any concrete conclusions either other than to emphasize that abstraction *costs*.<\/p>\n<p>And not only does it cost, but it usually costs *more* than we think it does &#8211; because the person designing the abstraction is not the same person who has to invest the effort to learn how the abstraction works later on.<\/p><\/blockquote>\n<p><a href=\"http:\/\/ifacethoughts.net\/2007\/01\/11\/transparency-and-abstraction\/\">Abhijit<\/a>:<\/p>\n<blockquote><p>According to Joel <a title=\"The Law Of Leaky Abstractions\" class=\"arc90_linkpicLNK\" id=\"arc90_link21\" href=\"http:\/\/www.joelonsoftware.com\/articles\/LeakyAbstractions.html\">all abstractions are leaky<\/a>. When this happens transparency helps. Both are required, because I believe people who need to know about abstraction and transparency are different. Abstraction is for users, transparency is for problem solvers.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Some excerpts below.\u00c2\u00a0 Click on the person&#8217;s name for the full content. Grady: There&#8217;s a phrase from systems engineering that applies here, the principal of least astonishment. When an abstraction fails, a well-designed one will (hopefully) fail in predictable ways. It&#8217;s when an abstraction fails and it fails in an unexpected way that we have [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-design"],"_links":{"self":[{"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":0,"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/billhiggins.us\/blog\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}