LeakingCulturalContext

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(New page: Recently I got a query from a reader of TheAPIBook about the How Many People Have to Die? sidebar from Chapter 4. That is OK, I intende...)
Current revision (06:41, 31 October 2009) (edit) (undo)
 
(One intermediate revision not shown.)
Line 1: Line 1:
-
Recently I got a query from a reader of TheAPIBook about the [[LeakingCulturalContext|How
+
Recently I got a query from a reader about the [[LeakingCulturalContext|How
Many People Have to Die?]] sidebar from [[Ever_Changing_Targets|Chapter
Many People Have to Die?]] sidebar from [[Ever_Changing_Targets|Chapter
4]]. That is OK, I intended this sidebar to be personal, emotional,
4]]. That is OK, I intended this sidebar to be personal, emotional,
Line 26: Line 26:
letting my [[LeakingCulturalContext|cultural context leak]].
letting my [[LeakingCulturalContext|cultural context leak]].
-
What does this have to do with API Design? API is about
+
What does this have to do with [[API]] Design? [[API]] is about
abstractions. About hiding the gory details of a library behind a
abstractions. About hiding the gory details of a library behind a
-
facade, behind the API. However, regardless of how much time you spend
+
facade, behind the [[API]]. However, regardless of how much time you spend
designing your facade, it can easily happen that the implementation
designing your facade, it can easily happen that the implementation
-
'''details leak out''' and users of your API need to face them.
+
[[Leaky abstractions|details leak out]] and users of your API need to face them.
Regardless of how much you try, your expectations, your context, your
Regardless of how much you try, your expectations, your context, your
implementation will inevitably be around the corner and waiting to
implementation will inevitably be around the corner and waiting to
-
jump out from your API unexpectedly. We can do our best, but there is
+
jump out from your [[API]] unexpectedly. We can do our best, but there is
-
almost always something left unnoticed. '''Contexts leak'''. In case
+
almost always something left unnoticed. [[Leaky abstractions|Contexts leak]]. In case
you are describing your life experience, in case you are writing about
you are describing your life experience, in case you are writing about
-
your project API design experiences, or when you create an API facade
+
your project [[API]] design experiences, or when you create an API facade
over implementation of your library. You will all the time
over implementation of your library. You will all the time
expose more than you should. Get ready for that.
expose more than you should. Get ready for that.
And good luck preventing such leakages!
And good luck preventing such leakages!

Current revision

Recently I got a query from a reader about the How Many People Have to Die? sidebar from Chapter 4. That is OK, I intended this sidebar to be personal, emotional, controversial, passionate and it is perfectly appropriate for it to stimulate questions. This has been expected. That is why, I tried to be as precise as possible. Trying to evoke the same emotions among more than one person is hard, and as such I not only refer to my own personal experience with communism, but the note puts the topic into more general context while comparing it with another example of totalitarism - Nazism. I believe that they are similar with respect to their promises and failures, moreover methods of the latter and their results are more widely known and understood around the globe.

However the recent email exchange made me look at my sidebar again, from a completely new angle and made me realize that I did not express myself clearly enough. To my horror, I even referred to events that cannot make any sense to international reader. I wrote: "...even after forty years later in case of communism, things were no better than before". Why 40 years? Because my cultural context leaked! The reign of communism in my country started in 1948 and ended in 1989, and even after those forty plus something years the world was not at all as promised at the beginning. Makes sense, from my point of view, doesn't it? However I fully understand that my readers need to be quite confused. Sorry, I'd like to apologize for letting my cultural context leak.

What does this have to do with API Design? API is about abstractions. About hiding the gory details of a library behind a facade, behind the API. However, regardless of how much time you spend designing your facade, it can easily happen that the implementation details leak out and users of your API need to face them. Regardless of how much you try, your expectations, your context, your implementation will inevitably be around the corner and waiting to jump out from your API unexpectedly. We can do our best, but there is almost always something left unnoticed. Contexts leak. In case you are describing your life experience, in case you are writing about your project API design experiences, or when you create an API facade over implementation of your library. You will all the time expose more than you should. Get ready for that.

And good luck preventing such leakages!

Personal tools
buy