4 ms·
So now you need Python + pipenv + the actual program? Versus just the binary with go/rust (or any compiled language for that matter)? I think that's exactly th
by frenchman99 6y ago
So now you need Python + pipenv + the actual program? Versus just the binary with go/rust (or any compiled language for that matter)?
I think that's exactly the kind of complexity arusahni was referring to. Being able to deploy a single binary with `go get` or `cargo build` without worrying about anything else is really convenient.
I guess it depends on the use case though, I use Python extensively at work and have little complaints.
- ducktective 6y agoMore like `pipx install httpie`. To update all python apps : `pipx upgrade-all`. For setting up pipx, you can use a pyenv managed python, like latest version, independent of whatever version is installed on system/distro. And you do this only one time. pipenv is for managing virtual envs not python itself. `go get` and `cargo build` don't "deply" the binary but merely build it. It's `sudo make install` vs `apt update` all over again. Point is, from the complexity of app management POV, those language don't magically solve anything that python doesn't, not to mention the bigger size of the binaries built with Rust/Go. I do choose rg/fd/fzf over python-equivalents all the time but I acknowledge that I have to manually keep track of installing/updating these programs.
- eptcyka 6y agoRipgrep and fzf have been part of official repos of pretty much all mainstream distros.
- burntsushi 6y ago> I do choose rg/fd/fzf over python-equivalents all the time but I acknowledge that I have to manually keep track of installing/updating these programs. No you don't. I'm not sure why you're spreading misinformation. And there is no viable Python equivalent to ripgrep anyway.
- ducktective 6y agoI meant, personally, for power utilities, I try to use statically-compiled tools rather than scripts... What the spreading misinformation part about? :)
- burntsushi 6y agoBecause tools like ripgrep are in your Linux distros package repos. You don't need to update them manually.
- ducktective 6y agoWell I'm on Xubuntu 18.04 and none of them are available on official repos and I do manually fetch the binaries from their repos (thanks for your awesome work and for providing `deb`s for rg btw ;) ) but yeah my observation was based on empirical evidence on older distros...things seem to have changed... https://repology.org/project/ripgrep/versions https://repology.org/project/ripgrep/versions https://repology.org/project/fd-find/versions https://repology.org/project/fd-find/versions https://repology.org/project/fzf/versions https://repology.org/project/fzf/versions Still I find quite a lot of Rust apps that I like to use but there is not a distro package for them and the repos don't provide a binary or a deb or PPA. At least with Python repos, because of the nature of scripting vs compiled languages, I can simply isolate anything with a simple `pipx install app`
- burntsushi 6y agoI don't know what pipx is, but `cargo install ripgrep` works.
- d0mine 6y ago"Versus just the binary" .. "with `go get` or `cargo build`" Here's how I've installed `ht`: $ cargo install ht Here's how I've installed httpie: $ pipx install httpie If we assume the corresponding tools are already installed/configured (such as go/cargo), then what is this complexity you are speaking of?
- ducktective 6y agoIsn't `cargo install` similar to `make install`? Usually it is advised against handling binaries in system paths independent of distro package manager. Also, sometimes there is no `make uninstall`. Does Rust enforce an uninstall routine in the manifest? With pipx, every app is contained in its own venv automatically and does not interfere with distro-managed packages.
- Macha 6y agoNo, cargo install installs to $HOME/.cargo/bin
- steveklabnik 6y agoIn the sense that it is not a replacement for a real packager manager, yes. It is both slightly more restrictive and also not; as the sibling says, it installs to a particular directory, and that means uninstalling is easy, however, there is an install hook, but no uninstall hook, so if that puts files somewhere, which in theory it can, they won’t be removed on uninstall. This also kinda sorta means people don’t do that in the install hook.