On Thursday, 13 March 2014 at 08:16:50 UTC, Andrej Mitrovic wrote:
On 3/13/14, Walter Bright <newshou...@digitalmars.com> wrote:
I didn't even know about this client before the breakage.

I'm really getting tired of this argument. An unknown client (which you still haven't named, so as far as I'm concerned it might as well be just a reddit troll) comes out of the blue, complains about some small breakage which can *easily* be fixed in a point release, and suddenly that has to affect the decision on final by default. Also, the client hasn't bothered to file a bug report, and 2.056 has been released for a few weeks (nevermind the massively long beta cycle).


Hi guys,

I happen to be one of "the clients" in case.
We have several tools and apps written in D, in production, and we're actively trying to convert other portions of our systems too. We're an italian company managing the technical background of several startups (and "grown-ups") ranging from simple editorial/publishing business to realtime restaurant reservations and so on.

I think you can do every changes you need / you want but you should allow some time for people to update to new versions. No problems if you want to set a function as "deprecated" (or even a whole library) but please don't break compatibility all of a sudden (and without warning even in the changelog).

A breaking change drives to different problems:
- If you have code in production, code switching is a bit painful because you have to change code all at once. A short-period transition supported by "deprecated methods" makes it all easier to do.

- If your deployment system is automated (code updating and compiling) it's a bit difficult to sync the upgrade of compiler and code. If you upgrade your compiler first, code won't compile. If you upgrade your code first, it won't compile too. So in that (hopefully short) range of time your deployment system is not working.

- Changes could affect also third party libraries you're using in production, and that's even worse. You have to wait and hope they will fix that quickly.

- You can't always do a search/replace to fix the problems, and it could take a long time to fix all the involved code. A breaking change could also lead to a change of code structure. And probably it's a good idea to do all the needed tests after this, in order to check if the app is working as expected. In the meanwhile you can't use the new compiler with potential security/bug/performance fixes: you're stuck on the old version.

Thanks,
Daniele

Reply via email to