4 ms·
Python developers I know get their interpreter installed. This is vs people in college I know that are dabbling in Python or people starting with it on a profes
by rovr138 5y ago
Python developers I know get their interpreter installed. This is vs people in college I know that are dabbling in Python or people starting with it on a professional setting.
I currently have over 5 different python versions installed to be able to test against them. The different software I work gets deployed to different environments and I have all those versions installed locally to test.
For end users, it doesn't matter as long as it works. The less moving pieces, the better. A bundled interpreter in the OS gives a stable platform to develop against.
The interpreter can be bundled with the application, of course. But now you have n different interpreters with their own php.ini files and their own set of things to change. Upgrading the application means overwriting those files and causing more pain when they have to figure out why something stopped working.
- SavantIdiot 5y ago> I currently have over 5 different python versions installed to be able to test against them That's absurd. Five versions of the same language. Each with their own package folders. That's at least 15 GB. This is a luxury and consequence of infinite compute resources.
- dagmx 5y agoIt's a reality of pragmatism when different projects target different versions of the interpreter and there's no guarantee that different versions are not breaking some behaviour.
- shadowgovt 5y ago... and if you're talking MacOS laptop and desktop ecosystem, it's a luxury you have and should take advantage of.
- rovr138 5y ago> That's absurd. How come? It's pretty practical. I'm a developer. I deploy to multiple targets so I have them all. I test against them. Simple enough. To talk to the point of the link here, what I distribute to MacOS I only have to worry about 1 interpreter because it's the one embedded on the OS (and at work, I can guarantee the version). The problem for me is Linux and whatever is bundled on the version of the distro that's currently running. > This is a luxury and consequence of infinite compute resources. It's a consequence of what I deploy to. If I only had 1 target and could guarantee it, I'd only need one.
- SavantIdiot 5y agoNewer programmers have accepted this as "normal". It only started becoming this much ridiculous cumulative upkeep in the past decade or so. It's lazy. Lazy on behalf of the Python maintainers. And you keep accepting it instead of pushing back. You could have only one version, but you've been brainwashed to think having 5 versions of python on your machine is normal. I'm not dissing version releases, just the adoption and deprecation. I wrote DirectX drivers for years, and going from DX3 to 5 to 7 meant backwards compatibility, and it was a PITA, but releases came out every two years and were deprecated shortly after so we didn't have vast quantities of exponential regressions. OpenGL was rock solid by comparison. The former was trial-and-error by MSoft, the latter was well thought out by consortium.
- Avamander 5y ago> You could have only one version, but you've been brainwashed to think having 5 versions of python on your machine is normal. Is the strict requirement of a single Python version really that much better?
- SavantIdiot 5y agoFrom the cost of testing, absolutely. By definition 5 version is 5x more testing. But since most python code is just crap thrown onto githubs and stackoverflow, who cares if it is regressed. But for devs trying to write solid, long-lived code, their cost of testing skyrockets. Python's LTS plan is not strict enough, and releases too frequent. As exhibit A, I give you their attempt at deprecating python2.
- rovr138 5y agoCost of testing is simple. Just launch the tests. Regarding deprecating and moving away from Python 2, this has been discussed ad nauseam and the issues have been recognized around it. By the way, this wasn't a language issue, but an issue managing it. Having said that, do you have any opinions or anything to discuss around the current plans?
- heavyset_go 5y agoI've got 3 different Python versions installed with pyenv and they only take up about 900MB.
- rovr138 5y agoI have no idea on where the 15GB either comes from. I also use pyenv and pyenv-virtualenv and my ~/.pyenv is not close to that.
- Wowfunhappy 5y ago> A bundled interpreter in the OS gives a stable platform to develop. But it wouldn't be stable. Or it would be, but it would be hopelessly out of date. Apple can either keep the bundled interpreters on the same version forever, or they can update it with the OS. Do the former, and it becomes hopelessly out of date. Do the latter, and software updates randomly break stuff. Either the language developers need to actually keep their languages stable, or everyone else just needs to get used to keeping multiple versions around.
- rovr138 5y ago>Or it would be, but it would be hopelessly out of date I think you need to define "out of date". Out of date for me means not receiving security updates and stale. I think you mean not the latest version and stable for me is better in a production environment. Google example, look at Debian stable.
- Wowfunhappy 5y ago> I think you need to define "out of date". Well, look at this way—the latest consumer version of macOS still comes with Python 2.
- rovr138 5y agoSo... $ /usr/bin/python WARNING: Python 2.7 is not recommended. This version is included in macOS for compatibility with legacy software. Future versions of macOS will not include Python 2.7. Instead, it is recommended that you transition to using 'python3' from within Terminal. Python 2.7.16 (default, Dec 21 2020, 23:00:36) [GCC Apple LLVM 12.0.0 (clang-1200.0.30.4) [+internal-os, ptrauth-isa=sign+stri on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit() but wait, also, $ /usr/bin/python3 Python 3.8.2 (default, Apr 8 2021, 23:19:18) [Clang 12.0.5 (clang-1205.0.22.9)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit() I think we should take the lines, > This version is included in macOS for compatibility with legacy software. > Future versions of macOS will not include Python 2.7. > Instead, it is recommended that you transition to using 'python3' from within Terminal. For exactly what it says. It's included for compatibility with legacy software and should be transitioned from it to another version... the other version that's bundled with it.
- bborud 5y ago> For end users, it doesn't matter as long as it works.The less moving pieces, the better. A bundled interpreter in the OS gives a stable platform to develop against. I can understand what you wish for. But what you wish for is very far from what we’ve had so far. Time to accept reality.