←back to thread

129 points NeutralForest | 2 comments | | HN request time: 0s | source
Show context
the_mitsuhiko ◴[] No.44454647[source]
Turns out you can just do things. The astral tooling is by far the best thing that has happened to Python in years and it makes me very happy.
replies(2): >>44454774 #>>44454890 #
TechDebtDevin ◴[] No.44454890[source]
Interesting. I basically dont touch python unless I have too becayse the lack of tooling. How does this tooling compare to an experience like working in Go?
replies(1): >>44455057 #
CraigJPerry ◴[] No.44455057[source]
It's not rivaling Go anytime soon but there have been leaps and bounds.

E.g.

  uv init --script foo.py
  uv add --script foo.py httpx 
  cat foo.py
  ...
  dependencies = ['httpx']
  ...
Then on another machine:

  uv run foo.py
  # creates a virtual env, reads foo.py to see httpx is a dependency, installs in the ephemeral venv then runs the script
The above is from memory typed on a phone so maybe some minor syntax issues but the point i tried to make was we can kinda emulate the convenience of statically compiled binaries a-la Go these days
replies(2): >>44455204 #>>44462832 #
1. balanced2 ◴[] No.44462832{3}[source]
Just curious where do you see it not rival Go? Go is my main, but I do help with some python projects and I was really happy migrating from poetry to uv, with my feeling being that uv brings Go's devex to Python. The biggest feature is probably the default of auto-sync, the only way to have reproducible builds, of course along with auto provision python.

Personally I can't think of anything from Go's build system I miss now - the languages are very different for sure, but I guess we're talking about the build system only.

replies(1): >>44470478 #
2. CraigJPerry ◴[] No.44470478[source]
As someone who strongly favours Java and Python, Go is kinda the ultimate when it comes to out of the box tooling. I think Java still has the crown overall but that's because of tooling in the ecosystem, not tooling that comes with a jvm.

Want to profile your go? pprof built in (to be fair python has had cProfile forever but the Go version is more convenient to read the output).

Want to run some tests, or better yet some benchmarks? A good take on the problem space is just built in. You can safely go with the default and don't need to spend mental tax credits on selecting the best benchmarking lib from the ecosystem.

Stuff like go fmt is just taken for granted but even in the python world, there are still some non-black (and compatibles like ruff) flavoured formatters floating around - probably the most common on GH even today in Python is no formatter.

Can go on and on - go generate (maybe a tiny bit less relevant with generics being available today?), go tool, go vet, ...