<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<div id="mail-editor-reference-message-container">
<div>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My obligatory “long time listener, first time caller”: I joined the list about a year ago and have enjoyed reading the daily happenings even though I haven’t really contributed directly yet. I was offline recently and finally got a chance
to catch up. Wow! There were more messages in the last couple weeks than I’ve seen on this list since I joined (combined, or at least it felt like that).<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Anyway, I wanted badly to be upset with Juan’s change to OrderedCollection class>>new:. Generally speaking, I do think that peer/sibling classes should be allowed to implement the same method with very different
behavior. Of course if the parent class also implements the method then it does seem reasonable that there are restrictions, and I do think that defining those rules is also reasonable. No I’m not going to suggest what those rules are
</span><span style="font-size:11.0pt;font-family:"Apple Color Emoji"">😊</span><span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The bigger issue seems to be with the concept of changing well established historical behavior. I assume we are all familiar with Python’s switch from v2 to v3. We know now that Python survived the version
change and is very much thriving, but back when the change happened it wasn’t so sure that it would. Breaking changes are bad, especially when there is a lot of code out there that potentially will no longer work.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I think that was Gerald’s point about marking it as deprecated for a time and having the method log the soon to be invalid usage. It may be worth going a bit further than that and having a standard way to
tag source code to say what version it was written in, or what versions it is compatible with. Then, if breaking changes are documented by version then you have a proactive way to look for code patterns that need to change. It may even be possible to make
a tool to help with this. In this particular case, “OrderedCollection new:” should be easy enough to find.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Just my 2 cents as a bit of an outsider’s opinion.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Jon<o:p></o:p></span></p>
</div>
</div>
</div>
</body>
</html>