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.