STINNER Victor <vstin...@python.org> added the comment:

Michel Desmoulin: "The relevance of the use case isn't the problem. Even if 
people had been using it wrong for all this time, the update is still going to 
break their code if they did use it this way. And if it was possible, of course 
many people did."

You have to understand that the change has be done to fix some use cases and 
that Python 3.8.0 has been related with the change.

If we change again the behavior, we will get Python < 3.8.0, Python 3.8.0 and 
Python > 3.8.0 behaving differently. I would prefer to fully understand all use 
cases before starting to discuss changing the behavior again.


> 3.7 already broke a few packages by choosing to not do the True/False dance 
> again and make async/await keywords. I took a lot of people by surprise, not 
> because of the issue itself, but because of the change of philosophy compared 
> of what Python had been in the past.

You have to understand that it was known since the start and it was a 
deliberate choice after balancing advantages and disadvantages.

https://www.python.org/dev/peps/pep-0492/#transition-plan

I'm only aware of a single function in a single project, Twisted. Are you aware 
of more projects broken by this change? Did it take long to fix them? Balance 
it with the ability to use async and await in cases which were not possible in 
Python 3.6 because they were not real keywords. The Python 3.6 grammar was 
fully of hack to emulate keywords.


> Do we really want to make a habit of breaking a few things at every minor 
> release ?

Usually, incompatible changes are discussed to balance if it's worth it or not.

There is no plan to break all user code just for your pleasure.

For the specific case of argv[0], the discussion occurred here on associated 
pull requests, and nobody mentioned any risk of backward compatibility.

FYI I'm working on this topic and I just proposed a the PEP 606 "Python 
Compatibility Version" to propose one possible solution to make incompatible 
changes less painful to users.


> It's fair to expect, as a user, that any 3.x will be aiming to be forward 
> compatible. This was the case for Python 2.X and was part of the popularity 
> of the language: a reliable tech.

My PEP 606 tries to explain incompatible changes are needed:
https://www.python.org/dev/peps/pep-0606/#the-need-to-evolve-frequently


> Not to mention that after a decade of healing from the P2/3 transition, the 
> community needs a rest.

I understand that but such comment doesn't help the discussion. See my previous 
comments and please try to help to fill the missing information to help us to 
take better decisions.

Since Python 3.8.0 has been release, a revert can make things even worse that 
the current state.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue20443>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to