4 ms·
Every now and then I consider revisiting Python (I haven't used it in anger for a few years), but I am continually put off by the wild-west state of dependency
by dkdbejwi383 5y ago
Every now and then I consider revisiting Python (I haven't used it in anger for a few years), but I am continually put off by the wild-west state of dependency management, lack of standard tooling and project configuration.
Python's goal that "there should be one obvious way to do anything" is admirable, but doesn't seem like it's lived up to in any way.
Say what you will about Golang, but I do like the fact that it won't even compile if you don't follow the mandated codestyle. I don't want to have to think about stuff like that when I have actual problems to think about.
- Scarblac 5y ago> Python's goal that "there should be one obvious way to do anything" is admirable, but doesn't seem like it's lived up to in any way. I don't think that was ever a serious goal, it's just that initially Python competed with Perl, and Perl's slogan was "There's More Than One Way To Do It". Python didn't have as many different ways of doing the same thing in the language itself, and Python people liked that, so its slogan became the opposite. Since Python 2 and 3 there are already far more different ways to do things in the language (like several ways of string formatting, etc) so it's more of a historical thing. And it was never the case for tooling.
- lmm 5y agoThis is rewriting history. It was a serious goal at the time, and the language was all the better for it; the fact that it wasn't applied to tooling is the language's gravest mistake.
- Scarblac 5y agoMaybe, but I have trouble thinking of a Python language decision that was made (or not made) because there should be a single way to do things. Can you think of one?
- lmm 5y agoPushing map/reduce/filter behind an import was done on the grounds that list comprehensions were the preferred way to express the same things.
- pletnes 5y agoPip is standard for dependency management, but that didn’t stop others from building alternatives. I don’t find there to be a lack of standard tooling. Rather, there’s too many options to choose from you might say. It’s what success looks like, I guess.
- BiteCode_dev 5y agoWell python is old and doesn't have a lot of funding, Go is young and is backed by google. I do expect that the state of dependancy management is going to change in the next few years because: - MS has entered the game - PEP are being worked on a lot on packaging lately - shiv, briefcase and nuitka are getting traction - poetry and dephell are very qualitative tools - __pypackages__ is on the way (try it with pdm) - pyflow show a very interesting approach to installing python - python 2 is dead for good - wheels are now ubiquitous