Hacker News new | ask | show | jobs
by amypinka 2731 days ago
There was a call asking for volunteers to continue to support 2.7. There's something like 60K lines of Python code in the project so perhaps coding standards keeping the 3.x-specific syntax to a minimum means the project can continue to support a wide installation base without a great deal of overhead for any would-be 2.7 maintainer.
2 comments

Sacrificing the awesome 3.x features (f-strings, typing, metaclasses, object model improvements) to hold onto a deprecated and soon-to-be obsolete version of Python seems bad to me.

IMO make a clean cut else it will never end.

Python 1 already had metaclasses (I remebmer it as "the Don Beaudry hack" or "the Don Beaudry hook", depended on who you asked)

Are Python 3 metaclasses a significant change?

[0] https://www.python.org/doc/essays/metaclasses/

There are a number of improvements, including how you define them and the things you can do with them. Some of these tie in with other language features, e.g typing.NamedTuple[1].

There is also PEP 487[2], which means you can do more without needing a metaclass.

1. https://docs.python.org/3/library/typing.html#typing.NamedTu...

2. https://www.python.org/dev/peps/pep-0487/

This isn't sustainable. These new language features make for cleaner, leaner, even faster codebases.

Python 2 dinosaurs will need to come to with a Babel-style project to transliterate modern syntax —3to2, if you will— and rebase their code from that. It's going to be hell to maintain.