Hello,
On Wed, 2 Dec 2020 19:24:08 +1100
Chris Angelico
On Wed, Dec 2, 2020 at 7:11 PM Paul Sokolovsky
wrote: Python can't change its execution plans based on type
CPython can't, other Pythons can. Mypyc is a well-known Python which changes its execution plans based on type annotations.
"Mypyc is (mostly) not yet useful for general Python development."
No worries, I don't claim that the strict mode is suitable for production use already. It's literally the first time a "full spec" (and still apparently subject to change") is posted and reference implementation is provided, beyond mentioning the idea here and there.
So, it's not a fully compliant Python implementation. Is there any fully compliant Python that changes its behaviour based on type annotations? If not, "Python == CPython" isn't the problem here.
I'm not sure if you already smell it in the air, but the idea of a "fully compliant Python" is getting old (simply because it was there all this time, and people learned its drawbacks too). Various people are looking how to restrict it (e.g. apply *and* enforce type annotations), or put simple, look for "the good parts". I can't believe I use that term towards Python, as it has strong connotation of looking for gems in a total crap (e.g. https://www.goodreads.com/book/show/2998152-javascript for readers who are not in loop), but the recent decade showed that if applied consistently it can achieve even literally that effect. And just imagine what it can do if applied to a better-from-start language like Python! So, literally, more and more people are concentrating on a task of how to do better things with *good* Python programs, because how do to about *any* Python program is know for decades - just run it in a slow ugly interpreter, full of legacy [censored], commonly known as "CPython". Definition of "good" is still being sought for, and likely will vary from faction to faction. For example, there're people who seriously think that a "good Python program" is the one littered up to a sizable part of its content with ugly-looking type annotations of the current generation (already legacy, as pre-PEP563). My proposal gives an alternative example of what a "good Python program" may be. YMMV
ChrisA
[] -- Best regards, Paul mailto:pmiscml@gmail.com