I have mixed feelings about this trend of "rewrite it in Rust". IMO, introducing a new language in CPython is making it even harder to contribute, because you have to learn a new thing in the stack to be proficient.
You can limit your contribution to one language, just like in the Linux kernel, the API is what's important. Somehow I feel in 20 years, people will complain we still have to know C to contribute to Python because not all of the low level legacy code has been ported yet :)
If I understand correctly, `sentinel` is a unique string object with deduplication feature. Simmilar to `Symbol` class in smalltalk (see https://wiki.squeak.org/squeak/2344). And Smalltalk uses `Symbol` all over the language: method names, dict keys, constants.
I'm craving to test `sentinel` outside of default argument value.
I have mixed feelings about this trend of "rewrite it in Rust". IMO, introducing a new language in CPython is making it even harder to contribute, because you have to learn a new thing in the stack to be proficient.
You can limit your contribution to one language, just like in the Linux kernel, the API is what's important. Somehow I feel in 20 years, people will complain we still have to know C to contribute to Python because not all of the low level legacy code has been ported yet :)
I have doubts about your prophecy, but just wait and see :)
If I understand correctly, `sentinel` is a unique string object with deduplication feature. Simmilar to `Symbol` class in smalltalk (see https://wiki.squeak.org/squeak/2344). And Smalltalk uses `Symbol` all over the language: method names, dict keys, constants.
I'm craving to test `sentinel` outside of default argument value.
It's way heavier than a Symbol though, I wouldn't use it for keys.