For me, it’s the rigid and wonky virtual environments. I get why they’re useful and necessary, but they’re awkward to use. Like, Node just works from the working directory with no fuss and python has to be all source {venv}/bin/activate and lord help you if you need to move it.
Plus, I have never liked that the spacing is load-bearing.
uv mostly gets rid of the “venv activation” thing (mostly bc you can still use it if you really want, but you don’t need to), you can do uv run main.py and it’ll just work, no need to even install packages explicitly, it’ll also do that for you and make sure your uv.lock is in sync with your environment.
it’s the most hassle-free experience I’ve had with python, by a long shot.
Sounds like at least a minor improvement. Can those me moved and still work? Like, if I move the project folder, do I have to reinitialize it and download all the packages again?
ah, it’s a massive improvement. Everything is in your project dir, so you can move it around. But uv is the fastest package manager, so reinstalling most things doesn’t take time; with the exception of dependencies that need to compile code in different langs.
From someone just learning Python, what’s wrong with Python?
Depending on your use case, it can be fantastic.
There’s good reasons why it is the world’s most popular programming language (by a wide margin).
You are not, generally, going to be using it to write kernels or device drivers, though.
For me, it’s the rigid and wonky virtual environments. I get why they’re useful and necessary, but they’re awkward to use. Like, Node just works from the working directory with no fuss and python has to be all
source {venv}/bin/activate
and lord help you if you need to move it.Plus, I have never liked that the spacing is load-bearing.
uv
mostly gets rid of the “venv activation” thing (mostly bc you can still use it if you really want, but you don’t need to), you can douv run main.py
and it’ll just work, no need to even install packages explicitly, it’ll also do that for you and make sure youruv.lock
is in sync with your environment.it’s the most hassle-free experience I’ve had with python, by a long shot.
Sounds like at least a minor improvement. Can those me moved and still work? Like, if I move the project folder, do I have to reinitialize it and download all the packages again?
ah, it’s a massive improvement. Everything is in your project dir, so you can move it around. But uv is the fastest package manager, so reinstalling most things doesn’t take time; with the exception of dependencies that need to compile code in different langs.
Python is extremely high level and slow. Great for scripting and prototyping but you really shouldn’t build any infrastructure off of it.
It also has dynamic variable typing, which depending on your use case (see above), can either be nice or a headache