InfoWorld’s senior writer calls Python a “living language,” citing its recent addition of the “walrus operator” for in-line assignments and the newly-approved pattern matching.
“And they’re only two of a slew of useful features that could be added to Python to make the language more expressive, more powerful, more suited to the modern programming world. What else might we wish for?”
True constants – Python doesn’t really have the concept of a constant value… [E]very time a name is used, Python goes to the trouble of looking up what object it’s pointing at. This dynamism is one of the chief reasons Python runs more slowly than some other languages. Python’s dynamism offers great flexibility and convenience, but it comes at the cost of runtime performance. One advantage of having true constant declarations in Python would be some reduction in the frequency of object lookups that take place during runtime, and thus better performance. If the runtime knows ahead of time that a given value never changes, it doesn’t have to look up its bindings…
True overloading and generics – In many languages, multiple versions of the same function can be written to work with different kinds of input… PEP 3124, advanced in April 2007, proposed a mechanism for decorating functions to indicate they could be overloaded. The proposal was deferred rather than being rejected outright — meaning the idea was fundamentally sound, but the time wasn’t right to implement it. One factor that might speed the adoption of overloading in Python — or cause the idea to be ditched entirely — is the implementation of the newly proposed pattern matching system.
In theory, pattern matching could be used under the hood to handle overload dispatch. However, pattern matching could also be given as a rationale for not implementing generics in Python, since it already provides an elegant way to dispatch operations based on type signatures. So we might get true overloading in Python one day, or its advantages might be superseded by other mechanisms.
The article lists two more features Python “probably won’t get” — starting with multiline lambdas (anonymous functions). Guido van Rossum had argued in 2006 he couldn’t find an acceptable syntax, and the article argues “there is probably no way to do it that doesn’t involve creating a special case.” And it argues the final missing feature is tail recursion optimizations, “where functions that call themselves don’t create new stack frames in the application, and thus risk blowing up the stack if they run for too long.
“Python doesn’t do this, and in fact its creators have consistently come out against doing so.”
Read more of this story at Slashdot.
Source: Slashdot – InfoWorld Lists ‘Four Powerful Features Python is Still Missing’