←Older revision | Revision as of 16:58, 24 February 2023 | ||
Line 3: | Line 3: | ||
The roots of the term [[Cluelessness]] can be traced back to 2006. At OOPSLA 2006, [[MartinRinard]] gave his presentation (slides available here [[Image:RinardOOPSLA06.pdf]]) about minimizing understanding in construction of complex systems. [[Cluelessness]] is a great meta principle that allows us to evaluate whether an advice is [[good]] or not. If something allows people to achieve more while knowing less, then ''that something'' is [[good]]. As a result, almost every [[Good Technology]], needs to exhibit signs of [[Cluelessness]]. | The roots of the term [[Cluelessness]] can be traced back to 2006. At OOPSLA 2006, [[MartinRinard]] gave his presentation (slides available here [[Image:RinardOOPSLA06.pdf]]) about minimizing understanding in construction of complex systems. [[Cluelessness]] is a great meta principle that allows us to evaluate whether an advice is [[good]] or not. If something allows people to achieve more while knowing less, then ''that something'' is [[good]]. As a result, almost every [[Good Technology]], needs to exhibit signs of [[Cluelessness]]. | ||
- | [[Cluelessness]] principle influences the way we deal with reliability, it justifies the importance of testing and explains why it is necessary to create [[API]]s and do in the right way. All of that helps to increase [[Cluelessness]] of [[HtmlForFood|assemblers]] of our software applications while improving their quality. [[Cluelessness]] is a way to measure whether particular design advice is [[Good Advice]] or not. | + | [[Cluelessness]] principle influences the way we deal with reliability, it justifies the importance of testing and explains why it is necessary to create [[API]]s and do it in the right way. All of that helps to increase [[Cluelessness]] of [[HtmlForFood|assemblers]] of our software applications while improving their quality. [[Cluelessness]] is a way to measure whether particular design advice is [[Good Advice]] or not. |
Selective [[cluelessness]] is appropriate way to deal with [[Leaky abstractions]] that happen whenever we create an [[API]] (which is an abstraction, a facade over some implementation). Majority of users then deals with the abstraction only. Just ''experts'' affected by leakages need to dig into the leaking details behind such [[API]]. [[Quality]] of an [[API]] can then be judged by the ratio between those who are [[cluelessness|cluelessly]] OK with the abstraction and those who need to understand more. | Selective [[cluelessness]] is appropriate way to deal with [[Leaky abstractions]] that happen whenever we create an [[API]] (which is an abstraction, a facade over some implementation). Majority of users then deals with the abstraction only. Just ''experts'' affected by leakages need to dig into the leaking details behind such [[API]]. [[Quality]] of an [[API]] can then be judged by the ratio between those who are [[cluelessness|cluelessly]] OK with the abstraction and those who need to understand more. |