BodeMiller
From APIDesign
(→Be Fast!) |
(→Be Fast!) |
||
Line 9: | Line 9: | ||
At one moment [[Bode]] asks: is it important to have good style or be fast? And he continues: given the fact that we are talking about a discipline that measures the performance in seconds, the primary measure is speed. | At one moment [[Bode]] asks: is it important to have good style or be fast? And he continues: given the fact that we are talking about a discipline that measures the performance in seconds, the primary measure is speed. | ||
- | Can we apply that to [[API]] design? Sure, because we often have to ask whether it is more important to be [[BackwardCompatibility|backward compatible]] or have nice internals of our libraries. I am amazed that the philosophy of a ski racer (be faster than have a nice style) is the same as a philosophy of a [[good]] [[API]] designer! Why should we believe in old those advices telling us that ''clean code'' is going to help us? | + | Can we apply that to [[API]] design? Sure, because we often have to ask whether it is more important to be [[BackwardCompatibility|backward compatible]] or have nice internals of our libraries. I am amazed that the philosophy of a ski racer (be faster than have a nice style) is the same as a philosophy of a [[good]] [[API]] designer! |
+ | |||
+ | Why should we believe in old those advices telling us that ''clean code'' is going to help us? Sure, if we teach many people [[good]] style, some of them may get fast. But you can be fast, without having a [[good]] style. You can have [[good]] [[API]] even if the internals are not nice. Calling for a clean code is like asking [[Bode]] to finish the race! | ||
== Woods == | == Woods == |
Revision as of 13:59, 7 February 2012
For the last decade Bode Miller is the most famous American sportsman (at least in Austria; as Austria is the country dedicated to alpin skiing). Bode decided to write a bibliography and I had the chance to read it during 2011 Christmas break. It is an amazing book. It can even help us better understand the API design!
I have found Bode's book interesting for at least three reasons. The question is how to present it in an interesting way for expected audience of this website? I'll do it with three easy to remember quotations.
Be Fast!
Is style more important than results?
At one moment Bode asks: is it important to have good style or be fast? And he continues: given the fact that we are talking about a discipline that measures the performance in seconds, the primary measure is speed.
Can we apply that to API design? Sure, because we often have to ask whether it is more important to be backward compatible or have nice internals of our libraries. I am amazed that the philosophy of a ski racer (be faster than have a nice style) is the same as a philosophy of a good API designer!
Why should we believe in old those advices telling us that clean code is going to help us? Sure, if we teach many people good style, some of them may get fast. But you can be fast, without having a good style. You can have good API even if the internals are not nice. Calling for a clean code is like asking Bode to finish the race!
Woods
Grow up in woods, become extraordinary!
I have not grew up in the woods like Bode did, but still I am from a village with few voters on the edge of mountains. Since 1920s we were a computer oriented area (as the origin of the word robot comes from our county). Maybe it is good to grow up in wood-like parts of the world. Maybe that helps to look at things (including skiing and API design) from new angles.
Possibly, the more redneck you are, the more radical ideas you can have. Bode was always radical enough! Sometimes he was too radical to allow me to understood, but after reading his book, things make sense. Maybe you want to grow up in in woods to increase you chances to compete in contemporary world! Maybe you want to read TheAPIBook to understand API design!
Skiing
Can't turn? Become an API designer!
Bode complain that for a while, around 1997 he could not find good enough skis to turn. Bode also admits that his snowboard experience showed him what capabilities skis should have. At the end of 1996 (during the winter design trip the Xelfi team decided to have), I had the chance to try snowboarding for the first time. It went surprisingly well, thus I bought my first Niedecker board. Snowboard was immediately on par with my Völkl P30. However the progress have not stopped. In 1998 I had the chance to use Völkl Rentiger snowboard. Immediately I gave up on skis - the rentiger snowboard was just so much easier to turn!
Bode mentions this in one or two paragraphs of his book. At that time the snowboard was easier to make turns than skis. But (unlike me) Bode has not given up and waited for skis that will be at least comparable to snowboard. Looks like he succeeded (being Olympic medalist at 2002 and 2006). I have not returned back to ski up until 2007, before I needed to walk around my children (which is easier with skis than snowboard). Up until then snowboard was much more fun to use.
When struggling with an API, don't give up and don't workaround it. Change it! Make the system better. Become an API designer, contribute patches. Push the limits like Bode did!