This discussion on Hacker News is relevant to "The Annual Sage on Python 3 Thread"
https://news.ycombinator.com/item?id=6985207 http://alexgaynor.net/2013/dec/30/about-python-3/ 1. Argument against switching now: One quote from the HN discussion: "My last few Python projects have started out as Python 3, but ended up as 2 due to missing library support." The takeaway for me is that even if we could easily just switch Sage to Python 3, it's not 100% clear that we actually should do so today. Doing so could alienate users, and restrict the third-party code and packages that can be installed into Sage. For example, we might see "I started out using Sage (which uses Python 3), but had to switch to Numpy/Scipy/etc. and Python 2 due to missing library support. Anyway, I wanted to point this out loud and clear in case anybody on the list has been silently worrying about this. 2. Argument for switching now: On the other hand, the main suggestion in the discussion there for how to fix this situation is to get all the popular Linux distros to switch to Python3. Sage is like a linux distro, in that if we switch it would help move things along. Also, Sage isn't meant to be mainly a "python platform", but an "alternative to Mathematica/etc." platform. To me personally, a killer feature I really like in Python3 is the massively improved unicode support. I don't personally use it, but I think it makes Sage much, much more palatable to the international community, who like to write code like the following, which was sent to me by Ширшов Андрей in Russia, who just one first prize in a contest there for applying Sage to ship-building: #Sage variable names can be only in Latin characters numbers=[1,2,3.5] strings=["alpha", "beta", "gamma"] names=["Зоя", "Яна", "Кит"] второе_имя="Яна" print(numbers) print(strings) print(names) if второе_имя in names: print("Второе имя в списке %s" % второе_имя) According to http://stackoverflow.com/questions/2649544/unicode-identifiers-in-python this will never work in Python2 no matter what you do, but it does work fine with python3. So you can put the above in a file cyr.py, and type "python3 cyr.py", and it works. I look at analytics a lot, and the distribution of Sage users is very world-wide, with a lot from non-native-English countries, and some of them would really appreciate being able to name their variables using their own language. In Mathematica (I just checked), there's no problem at all with unicode identifiers, so far as I can tell. So from the Sage mission statement -- "create a viable alternative to the Ma's" -- it seems critical to our goals to switch to Python 3. William On Wed, Dec 25, 2013 at 1:49 PM, Jean-Pierre Flori <[email protected]> wrote: > > > On Wednesday, December 25, 2013 8:40:27 PM UTC+1, Jean-Pierre Flori wrote: >> >> On a slightly unrelated topic, currently the only function of pycrypto >> used in the Sage library is indeed in the monoid stuff and that's the >> byte_to_long function. >> Although I don't feel we should remove pycrypto from standard packages, I >> feel we could implement this ourselves if this prevents a boring warning >> from breaking tests (see #14854). > > Anyway, I've completely disabled any call to pycrypto in the monoid stuff. > Feel free to review http://trac.sagemath.org/ticket/14854 > The topic of removing, making optional or whatever with pycrypto can be > dealt independently of that. > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/groups/opt_out. -- William Stein Professor of Mathematics University of Washington http://wstein.org -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/groups/opt_out.
