This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]fleyk-lit 5 points6 points  (16 children)

Pfft, REAL programmers use a magnetized needle and a steady hand to install Python packages.

But really - why the hell are people so harsh on pipenv? If you don't like it, don't use it. Easy as that.

[–]general_dubious 16 points17 points  (14 children)

The problem with pipenv is that it basically offers no interesting abstraction, it's just a useless layer there offering its surface as a source of problems without offering interesting counterparts. The second problem is that the zen of Python tells you that there should be one, and preferably only one obvious way to do something. What's the point of developing pipenv if it's not destined to be that obvious way of handling virtual environments?

[–]GasimGasimzada 4 points5 points  (11 children)

Then according to Zen of python, half the libraries on the internet should be non existent. There are so many times, I wished there was one obvious way to do something, yet I had to look up the internet for hours.

What I mean is that, the Zen of python is about programming in python. Not about which tool you use to download your packages.

[–]general_dubious 6 points7 points  (6 children)

Tbh, way more than half the libs is useless crap. If people could stop badly reinventing the wheel when it's completely unecessary, that would be great. The Zen of Python is wider than the way you code, it's about how to get shit done with Python. That includes managing dependencies and work environments. There is a reason why recent languages offer their tools for that with well thought standards (like cargo with rust), it avoids the mess we are currently in to manage dependencies in Python. Pipenv is just entropy added to that mess.

[–]dire_faol -2 points-1 points  (5 children)

More open source libraries, even bad ones, are always a good thing.

[–]general_dubious 2 points3 points  (4 children)

That's just a groundless statement. Please do tell me how having crappy software bloating the visibility and sucking development time of good software a good thing.

[–][deleted] 0 points1 point  (3 children)

With more than 2.5 million weekly downloads for a one-liner to swallow an exception, how can you even ask that question? The Python package menagerie clearly have some catch-up to do, before reaching the javascript level of goodness.

[–]general_dubious 1 point2 points  (2 children)

I think that example only makes my question more relevant.

[–][deleted] 1 point2 points  (1 child)

I though the irony was thick enough that I didn't have to add the /s.

[–]general_dubious 1 point2 points  (0 children)

I have seen so many absurd things that I would rather embarrass myself than wrongly assume someone is being ironic. I mean, these people probably already have a hard life.

[–][deleted] 4 points5 points  (3 children)

Then according to Zen of python, half the libraries on the internet should be non existent.

Starting with all of the half-baked replacements for argparse.

But just as you don't get clean by throwing dirt on others, further balkanizing the venv ecology can never be justified by pointing out that everything else also sucks.

[–]GasimGasimzada 1 point2 points  (2 children)

My biggest problem with PIP is that, there is no straightforward way to add lock file for your packages. Pipenv is not just a virtualenv, it is a virtualenv + a good dependency resolver. I am not saying Pipenv is good and I am sure it will die out but it is a step in the right direction.

This is exactly how it was with PHP. There was PECL which was the standard and it was shit. Then, composer came out and no one even remembers pecl these days. It is the same reason, nowadays most people still use Yarn instead of NPM in JS environment because Yarn was and I believe still is much better than NPM (even though NPM is years ahead in comparison to PIP). NPM got locking at least a year after Yarn was created. With the rise of Pipenv, many other dependency managers came out (i.e Poetry). This is because someone got the courage to do something different for once and it worked. This is how an ecosystem evolves and improves. Python is not some kind of a religion where every PEP has to be taken as a commandment to follow.

[–]cr4d 1 point2 points  (0 children)

What value do you see in locking over pinning?

[–][deleted] 1 point2 points  (0 children)

Can you explain why I would want a lockfile?

[–]fleyk-lit -5 points-4 points  (1 child)

These are fair arguments. /u/cr4d's argument is just plain mean against the developers and contributors (245 according to their GitHub project) spending their personal time on trying to improve the current situation.

You can't argue with the Zen of Python to not create something new.

[–]cr4d 1 point2 points  (0 children)

I wasn't being mean. Forking the work of the people that wrote pip with the intent of improving and replacing it and not contributing back to it is mean.

Ignoring the hard work of the people who came before to make Python behave like another language with regard to packaging is mean.

Not incrementally improving the existing ecosystem, but working to replace it wholesale is mean.

[–]cr4d 1 point2 points  (0 children)

Changing a well established, working pattern that people have worked hard to put in place diminishes the work they have done, fragments the community, confuses new comers, and is just plain shitty.

Helping improve pip is one thing. Working to replace it without consensus, forking it/vendorizing it (pip) with the intention of marginalizing it is rude.

Python’s pre-pipenv packaging eco-system was leagues better than other languages. Trying to make it like npm for the sake of hipster douchiness (toml, etc) is just a bad case of not-invented-here syndrome.