Why do you change the Indy API between major Indy versions?

Previous  Top  Next

We often change the API's, sometimes class names, or unit names between major version of Indy.  We have read critism of this and even some of us are not always keen on such changes.  However, there are some reasons for changing the Indy API.  Those are:

 

Sometimes, inconsistancies in the API are resolved after we release a major Indy version. For example, in Indy 8.0, a username property was named UserID.
Sometimes, we see some design issues when coding on a proir release of Indy and find that addressing the issue requires an API change.  In the later stages of Indy development, we hesitate to make such changes in the API because it can cause unintended consequences.  Thus, we slate those changes to the next release of Indy.  This is very likely to happen because we have a time frame determined by forces outside of our control.
Sometimes, we add new features to Indy and find limitations in the current Indy framework that make adding the feature difficult or impossible.  As a result, we often have to change the API to better suit our needs for the new feature.