New page: Why did I decided to be an API Designer with a strong emphasis on BackwardCompatibility? I've been working on the NetBeans project since middle of nine...
New page
Why did I decided to be an [[API Designer]] with a strong emphasis on [[BackwardCompatibility]]?
[[User:JaroslavTulach|I]]'ve been working on the [[NetBeans]] project since middle of nineties. One day, I guess in a year 1999, a product manager stopped by and started to shout at me:''"We need partners, we need people to code plugins for NetBeans. We need compatibility. Are we compatible or not?"'' I started to explain we are
compatible - just a few methods and classes were renamed, deleted, but nobody
was supposed to use them anyway. The shouting however got even worse: ''"That is
not compatible! We need full backward compatibility! Keep it!"''
Up until that moment we treated [[BackwardCompatibility]] from a practical point of view. We were ready to sacrifice it when we had a vague feeling it does not matter to keep it. However that one moment changed everything.
Since then I decided to treat compatibility seriously and keep 100% [[BackwardCompatibility]]. As I studied computer science at [[MatFyz|mathematics and physics faculty]], I decided to apply as mathematical approach as I was able and find ways to really keep absolute compatibility. To transfer that knowledge to my colleagues I invented an [APIFest]] game (described in [[Chapter 17]] of [[TheAPIBook]]). Playing that came really seems to master the 100% backward compatibility skills. It is a bit academic approach, in real world one is usually OK with "99%" compatibility, but by taking things to extreme, the [[APIFest]] nicely shows the point.
Don't be afraid to [[Talkback|ask us]] to prepare an [[APIFest]] game for you!