[SciPy-User] SciPy ecosystem and Python 3
Tue Jul 2 10:26:09 CDT 2013
On Tue, Jul 2, 2013 at 11:00 AM, Thomas Kluyver <email@example.com> wrote:
> On 2 July 2013 07:47, Ralf Gommers <firstname.lastname@example.org> wrote:
>> Please keep in mind that it's much more important to you, as an active dev
>> who cares about 3.x adoption, then to them. All newcomers are getting for
>> now is some compatibility issues and strings they don't understand. On the
>> upside they don't have to move a few years later, but the business case is
> I'm not just doing this to cheerlead Python 3 adoption. Many of us have seen
> newcomers being confused by the split. I don't have references handy, but
> I've heard about courses that have asked people to preinstall Python, and
> despite careful instructions, people have turned up with a mixture of Python
> 2 and Python 3, which then wastes valuable time while everyone gets to the
> same starting point. Discussion sites see regular 'should I use 2 or 3'
> threads. And it's easy to imagine potential users who're evaluating Python
> against alternative solutions, and get put off by the 2/3 split, though we
> probably don't hear from them.
> Again, I'm not saying that we should promote Python 3 now - there's still
> some way to go. I'm trying to define how far it is, and how we can measure
> it. You suggest we should wait until maybe 50% of existing users and devs
> have switched. I wouldn't wait that long, because I think it's fine for new
> users to change quicker than old users, but this is the sort of criterion I
> want to discuss.
> How would we go about estimating how many users/devs use Python 3? It can
> seem like no-one is, but my conversations at SciPy, and bug reports on
> IPython, suggest that that's not entirely true.
> Christoph (& Josef said something similar)
>> I think a webpage summarising Python version compatibility would be a
>> great resource.
> That's an interesting idea. There are already sites out there which list
> Python 3 support for PyPI packages, but there's certainly room for something
> more detailed. Specifically, it could know about:
> - Which minor Python versions does X support (e.g. 2.6, 2.7, 3.3)
> - How has this support changed in recent releases of X
> - Is X version y packaged for Python version z in
> Is anybody interested in creating this and keeping it updated? We could use
> PyPI classifiers as a starting point, but there would need to be extra
> information layered on top of that.
> However, we shouldn't overstate the importance of this for newcomers: you
> know which field you're working in, but you often don't know which packages
> you're going to need until you've already written quite a bit of code. So
> you can't just look up the packages you'll need before you start with SciPy.
We have a http://scipy.org/topical-software.html which is partially
maintained, and maintained almost only by the community. A similar
information for the python 3 status would be a good starting point for
users to decide on the python version.
>> I faced this two years ago when I starting working with numpy. It was
>> confusing. However I quickly realized as a CS person what was going on.
>> 2.7 was solid and mature.
> Precisely. However, many of our target audience aren't CS people, and will
> only see that they're being asked to use an 'old' version for some reason.
> Also, the Py3 ecosystem is much more mature than it was two years ago. At
> that time, it was easy to point to inarguably important packages like
> matplotlib as a reason to start with Python 2. Today, that's still possible
> in specific fields, but it's increasingly hard to find Python-2-only
> packages that new SciPy users in general are likely to need.
(started to write this in response to Nathaniel but now fits better here)
numpy, scipy, pandas, statsmodels have been available for python 3 for
more than 2 years now. We usually get compatibility with new python 3
versions as soon as they come out.
(aside: python 3 only http://biogeme.epfl.ch/doc/install.html for
transportation modelling )
I think the recommendation should depend on the setting a user is in.
I'm mostly with Hans-Martin that students that don't move immediately
into an established production setting, or new users without an
established 2.x peer group should start with python 3, especially if
it only takes another year until the stragglers are also available on
python 3. (spyder is on it's way)
my impression from the statsmodels conversion two years ago:
numerical code, all our base algorithms, required almost no changes in
moving to python 3, the main adjustments were in input and output. So,
I think, the numerical code is essentially as reliable on python 3 as
on python 2.
(of course this build largely on top of the changes that numpy and scipy made.)
I'm working at the tail end of the supported dependencies of
statsmodels, so I can catch backwards compatibility problems.
But as a user, I would prefer to work with the "latest and greatest"
and take advantage of new features instead of lagging several years
> Best wishes,
> SciPy-User mailing list
More information about the SciPy-User