3 ms·
Fracturing happens for any popular, long-lived programming language. It's really no worse than C++, JavaScript, or Java which all have their own idiosyncracies
by mjr00 3y ago
Fracturing happens for any popular, long-lived programming language. It's really no worse than C++, JavaScript, or Java which all have their own idiosyncracies you have to learn if you want to use the language.
Use cases evolve over time. "System Python" is a great example. One of the primary Python use cases in its 2.7 days was sysadmin scripts. For that, it made sense to have a "python" command that Just Worked that sysadmins could expect to be on any box when they SSH'd into it. These days, I suspect Python for sysadmin uses is significantly smaller than Python usage in web applications or Python for Jupyter notebooks. Those are two very different use cases, and that's why things like virtual environments, pip, poetry, conda, etc. got created.
- bmitc 3y ago> Fracturing happens for any popular, long-lived programming language. There are many languages that are very stable over long periods of time. It's just that Python was a terrible language to begin with that got rushed designs and features tacked on to it over time. Even if you're a "lover" of something like asyncio, there's like three distinct "eras" of asyncio that have you write it in three different ways. Not only that, Python's asyncio is the worst implementation of it that I've seen. That's a common theme in Python packages.
- Quekid5 3y agoInterestingly, Scala has a great solution to this, namely Scala-CLI[0]. You can do all the things... use whatever deps you want, pick the scala version, include tests in your script, etc. etc. So you can really have a self-contained scripts. (You'll need to have Scala-CLI installed, obviously, but they're working on a 'bundle-a-script-into-a-jar' thing so you'll only need a JRE.) The dependencies thing is due to Maven repositories being The Repository standard for JVM languages. It's a low-key superpower of the JVM ecosystem, warts and all. [0] https://scala-cli.virtuslab.org/ https://scala-cli.virtuslab.org/