4 ms·
Would you expand on the Python issue? I find recent Python additions either useful or non-intrusive, I wonder which ones you think are born out of FOMO.
by vbsd 2y ago
Would you expand on the Python issue? I find recent Python additions either useful or non-intrusive, I wonder which ones you think are born out of FOMO.
- pansa2 2y agoThe `match` statement is the most obvious - its motivation [0] is "pattern matching syntax is found in many languages" and "[it will] enable Python users to write cleaner, more readable code for [`if isinstance`]". But `if isinstance` is bad Python! [1] `match` also breaks fundamental Python principles [2] and interacts badly with the language's lack of block scope: >>> a, b = 1, 2 >>> match a: ... case b: pass ... >>> a, b (1, 1) Not to mention that it also required large changes to the CPython implementation, including an entirely new parser(!) - which means other implementations may never support it [3]. Clearly `match` doesn't fill a gap in a coherent design for Python. It seems to have been added due to a combination of FOMO and/or resume-driven development. Another example is async-await - while the concept is fine (although I think stackful coroutines are a better fit for a high-level language), the syntax is just copy-pasted from other languages [4]. There seems to have been little thought as to why C# etc chose that syntax (to allow `async` and `await` to be contextual keywords), nor how `async def` contradicts existing Python syntax for generators. [0] https://peps.python.org/pep-0635/#motivation https://peps.python.org/pep-0635/#motivation [1] http://canonical.org/%7Ekragen/isinstance/ http://canonical.org/%7Ekragen/isinstance/ [2] https://x.com/brandon_rhodes/status/1360226108399099909 https://x.com/brandon_rhodes/status/1360226108399099909 [3] https://github.com/micropython/micropython/issues/8507 https://github.com/micropython/micropython/issues/8507 [4] https://peps.python.org/pep-0492/#why-async-and-await-keywords https://peps.python.org/pep-0492/#why-async-and-await-keywor...
- pansa2 2y agoHere's Guido himself expressing FOMO about what would happen if Python stopped continually accumulating new features (specifically including the `match` statement): > Essentially the language would stop evolving. I worry that that would make Python become the next legacy language rather than the language that everyone wants to use. https://discuss.python.org/t/pep-8012-frequently-asked-questions/487/2 https://discuss.python.org/t/pep-8012-frequently-asked-quest...
- deleted 2y ago[deleted]