For the record I love having a one stop tool for virtualenvs and dependency management. That's quite nice. The Pipfile is nice. The Pipfile.lock is awesome.
The tool itself is:
1. Painfully slow. 2. Very buggy.
For example `pipenv graph --json` is broken in the latest release. This is the mechanism that other tools use to hook into pipenv. It's actually been broken in various ways since May.
It's also incompatible in subtle ways with the latest pip. So I had to downgrade to pip 10.x.
I've had some frustrating experiences lately now that the honeymoon is over.
I'm going to keep using it, but I really hope some serious improvement is made in the next 6 to 12 months around performance and stability.
Most of the criticism comes from software developers, and I suspect Pipenv fans are hobbyists (like fuck me for choosing Python in production, right?) I doubt Go's tooling accepts this strange behavior from the maintainers[2]. Kenneth Rietz is NOT a core Python developer.
So for my opinion, we have Pipenv instead of Requests support for async/futures, HTTP2.0, Websockets, or better encoding. But the documentation gets updates I see: "Requests is the only Non-GMO... organic, grass-fed HTTP/1.1 requests"[3]. This emojifuck for humans has no drive, so Go has better HTTP packages now.
Python's packaging has gotten political. I hate politics. I won't help new programmers with Pipenv, and I don't care if that's good or bad. At least Poetry _respects_ PEPs with it's well-defined specification. But I'm not gonna fight a losing battle. Maybe Pipenv gets ironed out one day. Hell, maybe Java replaces Maven. But I grow weary of immature repo maintainers. I just need working code; yet I feel this answers to nobody.
[0] https://github.com/pypa/pipenv/issues/786
[1] https://chriswarrick.com/blog/2018/07/17/pipenv-promises-a-l...
[2] https://github.com/pypa/pipenv/commit/fe78628903948013e8687d...
For me, it broke very often, would take forever to recalculate stuff, and would simply get in the way _way_ too much. I get the logic of the system but in practice pip + requirements.txt basically works for my use cases.