<div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 15, 2014 at 11:30 AM, Chris Barker <span dir="ltr"><<a href="mailto:chris.barker@noaa.gov" target="_blank">chris.barker@noaa.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>Are you primarily writing packages for others to use? if so, then yes. But I wonder how many people are in that camp? Don't most of us spend most of our time writing our own purpose-built code?</div><div><br></div><div>That might be a nice thing to see in a survey, actually.</div><span class=""><font color="#888888"><div></div></font></span></blockquote></div><div class="gmail_extra"><br></div><div class="gmail_extra">So, I'm the guy that used the "hate" word in relation to writing 2/3 compliant code. And really, as a library maintainer/writer I do hate writing 2/3 compatible code. Having 4 future imports in every file and being forced to use a compatibility shim to do something as simple as iterating across a dictionary is somewhere between sad and infuriating - and that's just the beginning of the madness. From there we get into identifier related problems with their own compatibility shims - like str(), unicode(), bytes(), int(), and long(). Writing 2/3 compatible Python feels more like torture than fun. Even the <a href="http://python-future.org">python-future.org</a> FAQ mentions how un-fun writing 2/3 compatible Python is.</div><div class="gmail_extra"><br></div><div class="gmail_extra">The whole situation is made worse because I *KNOW* that Python 3 is a better language than Python 2, but that it doesn't *MATTER* because Python 2 is what people are - and will be - using for the foreseeable future. It's impractical to drop library support for Python 2 when all of your users use Python 2, and bringing the topic up yields a response that amounts to: "WELL, Python 3 is the future! It has been out for SEVEN YEARS! You know Python 2 won't be updated ever again! Almost every library has been updated to Python 3 and you're just behind the times! And, you'll have to switch EVENTUALLY anyway! If you'd just stop writing Python 2 libraries and focus on pure Python 3 then you wouldn't have to write legacy code! PEOPLE LIKE YOU are why the split is going to be there until at least 2020!". And then my head explodes from the hostility of the "core Python community". Perhaps no individual response is quite so blunt, but the community (taken as a whole) feels outright toxic on this topic to me.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Consider some statistics from Pypi:</div><div class="gmail_extra">- 13359 Python 2.7 packages</div><div class="gmail_extra">- 7140 Python 3.x packages<br></div><div class="gmail_extra"><div class="gmail_extra">- 2732 Python 3.4 packages</div><div><div class="gmail_extra">- 4024 Python 2.7/3.x compatible packages</div></div><div>- 2281 2.7/3.4 compatible modules<br></div></div><div class="gmail_extra"><div class="gmail_extra">- 9335 Python 2.7 without ANY Python 3 support</div><div class="gmail_extra">- 11078 Python 2.7 without Python 3.4 support</div></div><div class="gmail_extra">- 451 modules 3.4 only packages</div><div class="gmail_extra">- 3116 Python 3.x only packages<br></div><div class="gmail_extra">- 1004 Python 3.x modules without (tagged) Python 3.4 support</div><div class="gmail_extra"><br></div><div class="gmail_extra">Looking at the numbers, I just cannot fathom how we as a community can react this way. The top 50 projects (!!) still prevent a lot of people from switching to Python 3, but the long tail of library likely an even bigger blocker. I also don't understand how we can claim people should start ALL new projects in Python 3 - and be indignant when they don't!. We haven't successfully converted the top 50 projects after SEVEN YEARS, and the long tail without 3.x support is still getting longer. Claims that we have something approaching library parity seem... hilarious, at best?</div><div class="gmail_extra"><br></div><div class="gmail_extra">I suppose what I'm saying is that there's lots of claims that the conversion to Python 3 is inevitable, but I'm not convinced about that. I'd posit that another outcome is the slow death of Python as a language. I would suggest adding some "community health" metrics around the Python 2/3 split, as well as a question about whether someone considers themselves primarily a library author, application developer, or both. I'd also ask how many people have started a new application in another language instead of Python 3 because of the split.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-Mark</div><br></div></div>