bethgelab / foolbox

A Python toolbox to create adversarial examples that fool neural networks in PyTorch, TensorFlow, and JAX
https://foolbox.jonasrauber.de
MIT License
2.69k stars 422 forks source link

Kill Python 2 support #35

Closed impredicative closed 7 years ago

impredicative commented 7 years ago

It is compatible packages like these that effectively keep users from moving to Python 3. The unfortunately reality is that others won't move to Python 3 unless you force them to by breaking compatibility with Python 2. This will also let you expand your choice of APIs to include what is offered only in Python 3.

ducha-aiki commented 7 years ago

@impredicative 1) Why should I move? 2) Google Brain (!) in their started kit code for Kaggle NIPS competition use python 2 https://www.kaggle.com/c/nips-2017-defense-against-adversarial-attack/data and you tell people not to. Really?

ducha-aiki commented 7 years ago

The unfortunately reality is that others won't move to Python 3 unless you force them to by breaking compatibility with Python 2.

@impredicative or people just drop a package, for example and switch to more friendly

jonasrauber commented 7 years ago

@impredicative I am very sympathetic to your cause. Personally, I write code that only works with Python 3.6 and above because it's so much nicer, and in fact, we originally implemented Foolbox for Python 3 only. Given that Python 2.7 will still be maintained until 2020 and many people and projects (see for example @ducha-aiki 's comment) still use Python 2.7, we decided to backport Foolbox to Python 2.7 so that Foolbox can be used by anyone. I am sure we will drop Python 2.7 support in the future and I am very much looking forward to it.

I will close this issue because it's not the agenda right now, but additional comments are appreciated.

wielandbrendel commented 7 years ago

@impredicative I am also sympathetic to your issue but we should keep in mind that Foolbox is a small package that will hardly make people switch to Python 3 (instead Foolbox would loose a lot of users). Such traction should come from larger and more popular packages like numpy or pandas. If they'd turn Python 3 only - which they will in 2020 - then many people would switch.