Hi Will, Well it looks like we should go with anaconda, have both 2.7 and 3.5 installed but have 3.5 as the default. My vote for 2.7 was only because I have to deal with legacy stuff. I have cc'ed the physics computing list in case anybody else has any comments. Also I found a pge about the differences between the two and this can be found at: http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html Which be useful for those preparing teaching materials. Please don't update the system in Blackett until after the Global Summer School on the week of the 8th. Best, david On 11/07/16 16:37, Bennett, Will wrote:
Good afternoon all,
Please find the key points and comments from the survey below. In summary, it seems that most people would like both versions if possible, and Anaconda got the most positive response for distribution system and everyone wants Jupyter. I’ve also consolidated the list of requested modules below as well – hopefully these can be included in the packaging (if not already in Anaconda).
David – can you let me know your thoughts?
Many thanks
Will.
*__*
*_Which version of Python_*
· Version 2.7 - 8 votes (47%)
· Version 3 - 9 votes (53%)
Key Comments:
Most of the world still uses Python 2.7 even though Python 3 is a better language. I think that both should be available.
Version 3 is the one going forward, and due to syntax incompatibilities is the one we based our course on exclusively.
Python 3+ is the future of the language. Almost all scientific packages are now supported. 3.5 in particular adds a dot product operator which simplifies mathematical syntax.
Both versions should be available.
I am making the switch this year from 2.7 to 3 as I feel a sufficient number of the science and engineering packages I use have made the switch.
Above option does not allow us to state both versions. I think it would be good to have both versions. On our local systems (Linux and Mac OS X) I always install both versions. As 3 is now required for some work.
Even though 2.7 is the more widely used Python, it has been out of active development for a long time and we should be forward looking in what we teach.
Python 2.7 has a number of design problems and inconsistencies that are not going to be fixed.
Many of these problems are resolved in Python 3, which is consequently more logical and consistent.
Although Python 2.7 (and even 2.6) is still widely used for backward compatibility with legacy code. However, Python 3 use is gradually replacing Python 2. Python 3 has now been around for about a decade and is stable and supported - I can't at the moment think of any libraries that are not available to Python 3 now.
For most of our students this is their first introduction to programming. Logical consistency in the language is very important. In that context, Python 3 has significant advantages.
Also, since this is pretty much their first time using Python (and indeed programming at all) the issues of interfacing with
their legacy code are likely to be at their least. In short, it is a good time for the students to start with Python 3.
That being said, there is still a need for Python 2.7 for those who are already using it and who do still need to access legacy code.
Therefore, my clear preference would be for Python3 to be the default, but for a full offering of Python 2.7 and libraries to be available too.
Python 2.7 is still the version of choice at many international user facilities, and comes preinstalled on Mac and many flavours of Linux.
I would support having both 2.7 and 3.5 installed on all machines.
No strong feelings. But we do have most of our code 2.7 compatible currently.
*_Which Deployment Manager?_*
· Anaconda - 10 votes (67%)
· Canopy - 5 votes (33%)
Key Comments:
I prefer the interface. (Canopy)
No strong feeling (Canopy)
No particular reason, it has worked well for us. (Anaconda)
Anaconda has taken over as the most popular manager. It's much easier to package binaries up using conda than canopy, and it trivially allows multiple different python distributions (if for instance some need 2.7 and other 3.5)
No preference
I have been getting my students to use both over the last few years to get a feeling for the strengths and weaknesses both. I now strongly favour anaconda because I have found it more stable for ipython notebooks and fonts from mathematical formula are better rendered via ipython+chrome than with Canopy - where often the maths fonts were nearly unreadable.
Afraid only used on Linux and Mac OS X. We switched from Canopy to Anaconda as it was much easier to install and maintain. If I also recall correctly, at that time canopy did not offer version 3. WE have found anaconda so easy to work with (eg install packages) that we would not now switch.
This is more of a negative vote against Canopy. Canopy is sufficiently clunky that most of my class ended up using their own laptops.
I don't have a firm view on this binary choice. (I don't actually use either for my own work, preferring the (in my view, superior) package management of a GNU/Linux distribution.) In Physics, we have used Canopy for our UG teaching. It is ok, but has had some irritating issues. I have not used Anaconda, but from my brief reading around it would appear to offer both Python 2 and Python 3 and the libraries that I would view as important. However, having not used it myself, it would be a bit of a leap in the dark.
I have regularly used Canopy when teaching and in my own research, and I am very happy with it.
I cannot justify this choice, as I've only used Canopy. I'm sure either would be fine.
That's what we are used to... also, anaconda supports both Python 2 and 3 environments
*_Include Jupyter?_*
· Yes - 13 votes (93%)
· No - 0 votes (0%)
· Don't Have an opinion - 1 vote (7%)
Key Comments:
None
*_Key Modules to include:_*
Modules Identified for inclusion in Python build:
· Scipy
· Numpy
· Matplotlib
· Networkx
· iPython
· RDKit
· /Everything in default Anaconda distribution/
· Bioconductor
· Virtualenv (Virtual Environments)
· Pytest
· Sympy
· Cython
· Pandas
· Sphynx
· Tkinter
· subprocess
*_Other Comments:_*
It needs to be supported on Windows, Mac and Linux and needs to be free for our students and staff.
Previously I have requested both Enthought and Anaconda to be installed on ESE clusters for teaching. This year I will only be requesting anaconda.
Please note that it would be good to have both V2 and V3 of python
In order for this to be useful for my module (and, I would hope, others) we would also need Git installed in all the labs. Revision control is an indispensable part of software engineering and there is little point in providing students with a programming environment if they don't also have access to revision control software.
Since we are already making extensive use of a Python distro (Canopy) in our teaching, it is essential that we have sufficient time to review thoroughly whatever is proposed in good time for the start of the next academic year It would be a serious problem if we ended up with a system that removed or broke features that we rely on in our existing teaching without time to fix (or even in the worst-case, roll back!)
*_Key Contacts to include:_*
d.colling@imperial.ac.uk
malhado@imperial.ac.uk
Gerard Gorman
suhail.islam@imperial.ac.uk
david.ham@imperial.ac.uk
carl@imperial.ac.uk
s.pawar@imperial.ac.uk
*Will Bennett*
Digital Partner (Faculty of Natural Sciences)
Information & Communication Technologies
Level 4 Sherfield
Imperial College London
South Kensington Campus
London SW7 2AZ
Mob: 07872 850 035
Tel: 0207 59 49277
Email: w.bennett@imperial.ac.uk <mailto:w.bennett@imperial.ac.uk>