4 ms·
> It’s almost comical to see “why Python” comments ... Yes, Python installation is tricky, dependency management is a mess (even with uv, since it’s not standa
by kiitos 1y ago
> It’s almost comical to see “why Python” comments ... Yes, Python installation is tricky, dependency management is a mess (even with uv, since it’s not standard tooling; another one will pop up), and performance is atrocious. But ... Newcomers love it because you need to know so little to get started. People don’t care about the little quirks when they begin, and eventually they just live with the warts.
I'm not sure if this is news to you or if you already know it, but, just to be explicit -- you know that the overwhelming majority of end users aren't gonna have `pip` installed on their systems, right? And that any project with "Installation instructions" that begin with a `pip` command aren't really gonna work in the general case?
Just wanna make sure that's well-understood... it's fine if you wanna build a tool in Python, but if you expect it to be practically usable, you need to do distribution of binaries, not `pip` targets...
- deleted 1y ago[deleted]
- rednafi 1y agoThis point has been pummeled to death for decades. Before Python, people did the same with Ruby and “gem.” Literally nothing is new here. One of the reasons I write my tools in Go is exactly this. But if the tool was written in Go, people would complain about why not Rust and such. The point wasn’t to convey that Python doesn’t have its fair share of flaws, but to underscore that the HN crowd doesn’t represent any significant majority. The outside world keeps on using Python, and the number of Go or Rust users is most likely less than PyTorch or Scikit-learn users. Shipping Python is hard and the language is slow. Also, tooling is bad. The newfangled ones are just a few in the long stream of ad hoc tooling over the past 20 years. Yet people write Python and will continue to do so. JS has a similar story, but it’s just a 10x worse language than Python.
- kiitos 1y agoLet me be even more explicit: if your installation instructions are `pip install ...` -- or `npm install ...` for that matter -- then you are automatically excluding a super-majority of potential users.
- rednafi 1y agoI don’t even write python these days. I just wrote my own version of a terminal llm-caller[^1] in Go for this exact same reason. There’s a famous one that does the same thing but is written in Python. So it has its issues. My point is, pip exists in most machines. pip install sucks but it’s not the end of the world. HN crowd (including myself) has a tendency to beat around the bush about things that the majority don’t care about IRL. [1]: https://github.com/rednafi/q https://github.com/rednafi/q
- vachina 1y agoYou only have to install pip once. It’s a one-time set and forget operation. And with conda, it’s even easier with just click and install.
- kiitos 1y agoEven if `pip` is installed, it doesn't solve the problem of reliable reproducibility, because `pip install <identifier>` doesn't have deterministic results, it behaves differently based on arbitrary, implicit, and un-documented host-specific properties -- like, which version of python is used, which set of dependencies are used, etc. And what the hell is conda?