But, but, but it is for your own security. /s
If the difference between python 2 and 3 is so small that a program can be easily ported, then WHY did there need to be a difference at all?
It may be from a pure economic perspective focused on a business that can socialize externalities. Sometimes new developments reduces development time. On the other hand, the externalities of that is that a modern computer performs worse running equivalent tasks today in the browser than a native app 15 years ago on hardware from that time. Lucky for businesses that they aren't held responsible for the ewaste they helped produce.
If 90% of apps necessary for normal life are only available as poor web versions it drives obsolescence no matter what the remaining 10% do.
Web apps is better than native as they are automatically running the latest version, platform independent (windows, mac, linux, android, ios), in some sense more secure. Instead of asking people to write more native apps, I think we should rather ask them to write more quality web apps if they don't need native capabilities.
As an example, see Atom vs VSCode. We thought building a code editor with electron will lead to something slow like Atom, but m$ later proved that it is possible to build something fast. Perhaps not as simple as native, but it can be done.
yes.
one of the changes (and in my experience, the most problematic change) was the removal of the keyword "print"
it was a poor choice at the start to treat "print" like a keyword. it is a simple, breaking change to remove it, easily automated (ps: just add brackets), and now the language is more consistent and flexible.
The only reason to keep it is to not "touch" things. but it is easily mitigated, so that isnt a good enough reason imo. I much prefer a consistent language.
otherwise I'd stick with PHP.
By a python programmer, sure.
By another programmer, ok.
By your grandpa that just wants to run that python script to organize his stamp collection that has worked for decades? No.
For something as popular as python there will be thousands such people. Stuff that will simply NOT get fixed.
But that cost is easily ignored by the original developers.
There was a breaking change in Python, followed by a breaking change in WX_Windows, so while you can, in theory, run WikidPad under Linux today, few of the dialog boxes work, effectively disabling the program. 8(
Python2-3 transition COULD have been made easier, but it wasn't. The community places far too little emphasis on backwards compatibility.
This is because there's a myth: pushing a free upgrade across the internet is zero cost
This is not true, and can't be true. The cost of manufacturing software has effectively fallen to zero. This is not the same as the cost of implementation.
--- Tangent/Analogy ---
When you get a large machine tool, there are physical installation requirements that can delay its use by up to a year. Sometimes the floor needs to be removed and replaced with a better foundation. Power, cooling, air, vacuum, networking and other connections need to be made. These may require updates to infrastructure.
Once sited, machines have to be precision leveled, and there is always some form of break in period as differences are found and accounted for in their use.
Users have to be trained to allow them to work with/around any UI or performance changes that might effect production.
---
In a very similar fashion, software requires infrastructure (dependencies, operating system support, bug fixes, user training) and new executables carry new bugs to be worked around, performance changes, etc.
Security fixes should strive to minimize changes, but to me it is entirely unacceptable that they are necessary, especially at the rate currently required.
Security should be the job of the Operating System, not the application, network, users, especially NOT the users.
Software security updates should happen about as often as automobile recalls. They should be costly to the manufacturer and infrequent.
The reason for that is that software is much easier to change than hardware. You cannot expect every person in the world to update their radio equipment every couple years - it's too expensive - but it's somewhat reasonable to expect people to install new software, especially if it can be done for free over the internet.
It's just economics at play.
The cost to manufacture an executable is effectively zero
The cost to integrate an executable is NEVER zero, there are always costs.
Windows is far, FAR less reliable on Wednesday morning because of "Patch Tuesday", this is a substantial and real cost.
The same is true for any system that implements "security patches" and feature "upgrades".
What I am trying to say is that both things are very different in details where it matters, so I think this is a rather flawed analogy.
Maybe a closer analogy would be landowners who rent out land. Should a person who bought land 10 years ago be able to generate revenue from renting it to a farmer?
But even if this would destroy your business model, that doesn't mean it would not be a good idea for society as a whole. Business models become obsolete all the time. If there is enough demand for your software, you will be able to fund the development of it even without might-as-well-be-perpetual exclusive control.
In that case, the value of land is created entirely by property law.
A farmer has the exclusive right to land from the existing fixed supply that the entire world has available to it. He didn't create it and no one else can use it. Whereas a software developer makes something new. Nobody else was deprived of anything pre-existing. Less justification for taking code from a developer than land from a farmer.
Python 2 still exists. Those programmes will break if you try and run them on Python 3, but that's not the same.
Can't? Like physical objects can't be repared when the parts are no longer sold?
There is always a way to repair, just a matter of how difficult it is. Having the sourcee to the application itself is the first difficulty barrier. Source to dependencies would also be helpful, yes.
Btw, Python 2 did not go away unless you mean it went away from the default package archives of some Linux distributions - but even there it's not (yet) gone for all of them. The Python 2 sources are still the same as they have always been and while you might need older versions of a few more dependencies, if your really need to have Python 2 you can get it.
As for the law, any software no longer for sale, or older than 10 years old should lose all copyright/IP protection, which ever happens first. Anyone should be able to write/support a Windows XP,7 or 8 clone at this point, along with Office, Exchange, etc. up to 2012
--- Warning --
Strong message (rant) to follow
Uppity programmers calling themselves software "engineers" act in almost totally the opposite manner of a true engineering discipline. They hold "legacy" in contempt, and break things in the name of "progress" or "safety" at odds with their stated goals. They ignore the lessons of history, and keep re-inventing the same things every decade or two.
You can still plug a BC-232 radio manufactured in the late 1940s into the wall and receive broadcast signals.
You're effectively prohibited from running a web browser or telephone from 10 years ago because of planned obsolesce. This needs to stop!