On Sunday, September 04, 2011 02:49:40 Marco Leise wrote:
> Am 04.09.2011, 00:57 Uhr, schrieb Andrej Mitrovic
> 
> <andrej.mitrov...@gmail.com>:
> > Also, changing structs to classes is gonna *massively* break code
> > everywhere. Why inheritance instead of a predicate like isInputStream
> > = is(typeof(T t; t.put; t.close)), you know the drill..
> 
> Wasn't this overhaul _meant_ to break existing code by offering a new API?
> Still that's a serious issue of course, but not too surprising. I'm
> ambivalent on the inheritance vs predicate debate. Interfaces are the way
> it is meant to be done and actually ensure correct types. Predicates work
> with structs as well. I don't know if this would be important.

Any overhaul of existing functionality needs to improve on existing 
functionality. Changes just to change aren't valuable. So, changes should 
generally avoiding breaking backwards compatibility unless we gain something 
from it. So, as long as these changes are an overall improvement, then we'll 
just have to deal with the code breakage. However, if the code breakage 
doesn't actually gain us anything, then we should avoid it. So, complaints 
about code breakage are valid, but they aren't deal breaking.

- Jonathan M Davis

Reply via email to