@athenian200:
FWIW, I don't really agree with your analysis.
Yes, Python 3 broke many things, but it's far from "a brand new language". They broke BC for strings and for a fair bit of commonly-used syntax, notably exceptions, but it's nowhere near the level of difference between, say, C and Rust, or C and PHP, or even C and C++. It's also worth mentioning that the first few releases of Python 3 were... bad. IIRC it was around 3.3 or 3.4 when Python 3 actually became worth it, so if you're basing your viewpoint on your experiences around that time or earlier, I can understand the dislike of Python 3 (I myself didn't want to upgrade back then either). For comparison, I recently upgraded a decently sized project from 3.7 to 3.10, and it really was not that hard, other than one very bizarre issue that was specifically dealing with Windows' OS internals. But then, a lot of what makes upgrading easy or difficult depends on the nature of the codebase in the first place - if you have code assist, typechecking, linters and whatnot set up, then upgrading is
far easier, and it's just unfortunate that these things weren't so widely used in the past when a lot of now-hard-to-upgrade projects got started. It's also worth pointing out that, on the whole, the Python developers
now, with hindsight, mainly agree that Python 3 went too far with its BC breaks, and there seems to be a general consensus to treat that as a disaster never to be repeated. Yes, they do remove things now and then, but it's nowhere near as bad as a lot of other things (web standards, for starters). I think Python 3 takes a pretty decent middle ground between "move fast and break things" and the opposite extreme of "never break anything ever", which itself has its own downsides.
That said, I don't really want this to turn into a Python 2 vs Python 3 argument - there are enough of those out there on the internet already, and I think most of us just want to treat the whole Python 2 to 3 transition with a "water under the bridge" attitude.
As for Perl 5, while it's not my favorite language to develop in, and I only have a limited bit of experience with it from several years ago, it certainly struck me as a good solid language that just doesn't break on you,
especially after the decision was made to make Raku its own thing and make clear that Perl 5 would live on. So although I have a personal preference for Python, and would find that far easier to work with myself, I wouldn't mind if things ended up moving to Perl instead.
Moonchild wrote: ↑2023-11-08, 13:12
athenian200 wrote: ↑2023-11-08, 12:39
the Linux distros have just soured on it and bought into the finger-wagging "it's obsolete, you must upgrade" attitude on this, not having much respect for the fact that it's a totally new language
Actually, a lot of them, the vast majority, don't seem to understand that a build and dev environment isn't necessarily the same as a normal use environment. e.g. python 2.7 may be "insecure" but it will not be if it's only being used with known and trusted scripts. There's a big divide between using tools with known scripting or using it with untrusted/foreign/third-party scripting.
On this, I agree with you. There's a lot of rhetoric out there that just unconditionally insists "everything old is bad", which is silly, really. However, I also can see where the distro maintainers are coming from: first, maintaining more versions of something than necessary is additional effort that they don't want to have to expend, and second, if they did continue to supply Python 2 forever even with the express intent that it only be used for certain purposes (like building things using known scripts), then there'd be a lot of people out there who would just say "oh, it's there, clearly I can use it for anything I like then" - basically, it's a case of protecting users against themselves. So, on the whole, it's probably for the best that distros removed Python 2, while python.org still supplies the source to old versions, which can (as I've discovered!) be manually built pretty easily and then used for whatever they're truly needed for.