On 12/09/16 19:35,
philip chimento gmail com wrote:
To a large degree, yes. The new plan seems much more sensible, in my view, than the original proposal. Having a distinct numbering scheme for development releases is important. I think removing deprecated API when incrementing the major version is acceptable, though I would still argue against doing so in cases where it does not create a clear maintenance burden. (Put it this way: can the old API be implemented in terms of the new? If so, do it once and you never need touch it again. If not, does this indicate a shortcoming of the new API?). For the most part, though, I think the plan as outlined will alleviate the concerns of many developers.
I'm glad to hear that, and I for one would be interested in reading such a blog post.
Yes, I certainly understand the need, on occasion, to remove or incompatibly change API that cannot feasibly be made to work with new developments. I think that there does need to be awareness, however, that changing API creates a burden elsewhere (in external projects that use the API). Removing deprecated API may sometimes be necessary, but if it is done over-zealously it forces other projects to continuously track API changes or choose instead to stick with an old, stable API which (no matter how long-term its support is) will eventually be obsolescent. Perhaps the latter is inevitable for projects that are not afforded the luxury of continuous ongoing maintenance, but it is still desirable to postpone it where possible. In my view, good API design practice tends to produce future-proof APIs (which can made to work even with unforeseen technology changes in the future). Having said that, I do realise it is not always possible to produce the perfect API the first time around. Regards, Davin |