<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2018-05-21 10:49 GMT+02:00 Jonas Maebe <span dir="ltr"><<a href="mailto:jonas@freepascal.org" target="_blank">jonas@freepascal.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Breaking backwards compatibility is one of the the worst things you can do in a programming language/compiler, and the primary concern when making changes to a language should always be to avoid this (except when you're developing a new language that's still in its infancy).<br>
<br>
Even if you design everything with that mindset, you know that you will still have to do it occasionally because you missed certain things or could not foresee them. Especially since no one cares to formally specify and analyse standards for Pascal anymore, so nothing gets vetted properly. Those cases are enough, there is no need to intentionally add more (even if only potential ones).<br>
<br>
Breaking backwards compatibility wastes time (both of the developer that has document the change and the users that have to adapt their —or worse, other people's— code), wastes energy on friction (users annoyed that their code no longer works, compiler developers annoyed that users didn't read the changelog, noise on fora/mailing lists, extra bug reports), and breaks the most fundamental expectation of using a high level language (unambiguous/formally correct code that used to compile/work should keep compiling/working; that's the whole point of using a high level language).<br>
<br>
Some of the above things can also happen if a particular feature is not available in a certain language mode, but that is bound to the nature of language modes: not all language modes provide the same features and/or features in the same way.</blockquote><div><br></div><div><div>Generally I fully agree with that... Anyway Delphi mode/case is special. AFAIK all significant Delphi compiler developers are lay off. The progress for classic Delphi is almost dead and Delphi NEXTGEN totally breaks backward compatibility. </div><div><br></div><div>We have interesting time : FPC Delphi mode with FPC RTL is more backward compatible with Delphi than new Delphi :).</div><div><br></div><div>I don't like the totally prohibition for all new things in Delphi mode, this is because not everyone is happy with ObjFPC and personally I prefer more Delphi syntax (XE2 level/features) but I want to have new features too (like fully working "Dynamic array extensions" without any prohibitions). I like to use some elements from Oxygene dialect (which probably can not be 100% ported into FPC). I have many voices abut this from community and many programmers agree with me.</div></div><div><br></div><div>The solution for keeping Delphi mode in right place and <span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">leave ObjFPC in FPC core hands, is new mode : NewPascal.</span></div><div><span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></div><div><span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">This was discussed few years ago that I will be able to do new mode when I will done few modeswitches, but now I am outside core team, situation is a little complicated but I am more determined. :)</span></div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Best regards,<br>Maciej Izak</div></div></div>
</div></div>