On Sat, Oct 26, 2013 at 7:06 AM, Fabrício Srdic <fabricio.sr...@gmail.com>wrote:
> > I agree with the importance of backward compatibility, but I disagree when > it becomes a reason to stop the implementation of improvements in the tool. > Well, no. You shouldn't say "improvement". Because "improvement" has positive context, already. Instead, you should use the word "change" which is more neutral. So let me paraphrase you: "I agree with the importance of backward compatibility, but I disagree when it becomes a reason to stop the implementation of changes in the tool." Doesn't sounds so bright, right? Because it's unknown if a change is good, if it helps or if it is beneficial. So whenever a change comes in it is typically being reviewed by following categories: * why is the change needed? (Delphi compatibility) * what's the benefit of the change? - the most important question here - is what the change gives to developers, that they couldn't do earlier? * what's the disadvantage of the change? - there's always at least one disadvantage present - the language itself gets more and more complicated. (the minimalistic approach is typically followed, as it makes the language as a tool more "lightweight" and easier to master and learn) Any change passes that review (not just namespaces). a change with the benefit: 1) "a pascal developer is not be to XXX at all with out this change" - are typically accepted without much discussion (i.e. support of ObjC/JVM/LLVM targets) 2) "a pascal developer can do XXX, but the change YYY should make it better, but might be FPC specific" - typically inspire some productive discussions. (i.e. generics, I'd add Unicode rtl here as well) and change typically comes into the compiler; 3) "a pascal developer can do XXX, but the change makes it look like YYY, which is delphi compatible" (i.e. class-helpers, sealed classes) - are typically ignite a lot of discussions and flamewars between conservative and modernists developers. However, the change is typically being added to the compiler (under a certain mode or modeswitch). In the end, it is up to a pascal developer to either keep using XXXs or switch the code YYYs. And a pascal developer can be sure that there're far more other developers that do understand XXX than the ones who understand and use a YYY. Thus getting help (and maintenance) with XXX-based code, is more likely to happen. thanks, Dmitry
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal