← Back to context

Comment by Mawr

2 months ago

It's a UX issue. The author is correct — nobody cares about all the mumbo-jambo virtualenvs or whatever other techno-babble.

The user

just

wants

to run

the damn program.

> `uv run` and PEP 723 solved every single issue the author is describing.

PEP 723 eh? "Resolution: 08-Jan-2024"

Sure, so long as you somehow magically gain the knowledge to use uv, then you will have been able to have a normal, table-stakes experience for whole 2 years now. Yay, go Python ecosystem!

Is uv the default, officially recommended way to run Python? No? Remember to wave goodbye to all the users passing the language by.

I don't see your point. The kind of user who will struggle to type out `uv run` will find it even more difficult to type out `//usr/local/go/bin/go run "$0" "$@"; exit`. Neither approaches are the "default, officially recommended ways to run" scripts.

I strongly encourage you to read the article to acquire the context for the conversation before commenting, which is what I assume is happening here.

> Is uv the default, officially recommended way to run Python? No? Remember to wave goodbye to all the users passing the language by.

uv was invented basically yesterday. But it is becoming the default faster than any tool I've ever seen.

So I'd say: Yes - it is, effectively, the default now.

> The user just wants to run the damn program.

I don't agree, the user wants to run the program in a way the user wants to, but is frustrated when it doesn't.

If all dependencies were installed on the machine the script would run no problem. I have some scripts with dependencies that are installed on the system.

The author writes:

> The built in tooling within the go ecosystem is another large selling point. We don't need a .pyproject or package.json to configure ad-hoc formatting and linters, backed by pipelines to ensure consistency.

Maybe shebangs is not the solution to that problem? It's a convenience to run scripts as executable, but the user is supposed to setup the environment. Then he continues to explain that go has a great stdlib which makes it perfect for scripting. This is the reason I usually reach for python for complex scripts, the stdlib is big enough to solve most my problems.

Now that node includes sqlite the choice isn't as easy, but I wouldn't be pissed at node and javascript if I have to setup the environment to make sure the script runs. I understand how it runs, where it gets the dependencies. If I forget to run `npm i` before running the scripts that's my error, I prefer errors that remind me of my stupidity over magic.

>Sure, so long as you somehow magically gain the knowledge to use uv, then you will have

Couldn't you say that about any know how?

>Remember to wave goodbye to all the users passing the language by.

Given the size of the python user base, this doesn't seem like a big problem.