5 ms·
If Python's dependency management is better than anything, it's better than C++'s. Python has pip and venv. C++ has nothing (you could say less than nothing sin
by yosefk 2y ago
If Python's dependency management is better than anything, it's better than C++'s. Python has pip and venv. C++ has nothing (you could say less than nothing since you also have ample opportunity for inconsistent build due to mismatching #defines as well as using the wrong binaries for your .h files and nothing remotely like type-safe linkage to mitigate human error. It also has an infinite number of build systems where each system of makefiles or cmakefiles is its own build system with its own conventions and features). In fact python is the best dependency management system for C++ code when you can get binaries build from C++ via pip install...
- wiseowise 2y ago> If Python's dependency management is better than anything, it's better than C++'s. That’s like the lowest possible bar to clear.
- yosefk 2y agoAgreed, but that was the bar set by the comment I was replying to, which claimed Python doesn't clear it.
- vulnbludog 2y agoOn bro
- stavros 2y agoThat was the entire point, that C++ is the absolute worst.
- dgfitz 2y agoI pip3 installed something today. It didn’t work, at all. I then yum installed a lib and headers, it worked well. C++ on an msft platform is the worst. I can’t speak for Mac. C++ on a linux is quite pleasant. Feels like most of the comments like yours are biased for un-stated reasons.
- stavros 2y agoIf I had a penny for every time I gave up on compiling C++ software because there's no way to know what dependencies it needs, I'd be a millionaire. Python at least lists them.
- dgfitz 2y agoIf I had a penny every time I heard something like that on sites like this, I’d be a billionaire :)
- ahartmetz 2y agoIs that because the compiler failed with "foo.h not found" or the build system said "libfoo not found"? CMake is most common and it will tell you. Worst case it's difficult to derive the package name from the name in the diagnostic. It's not great, but usually not a big deal neither IME. Typically a couple of minutes to e.g. find that required libSDL2 addon module or whatever, if there is that kind of problem at all.
- stavros 2y agoYes it is, and it's usually such a big deal for me that I just don't use that software. I don't have time to go through a loop of "what's the file name? What package is it in? Install, repeat". This is by far the worst experience I've had with any language. Python has been a breeze in comparison.
- andmkl 2y agoC++ has apt-get etc. because the libraries do not change all the time. Also, of course there are vcpkg and conan. Whenever you try to build something via pip, the build will invariably fail. The times that NumPy built from source from PyPI are long over. In fact, at least 50% of attempted package builds fail. The alternative of binary wheels is flaky.
- viraptor 2y ago> C++ has apt-get That's not a development dependency manager. System package management is a different kind of issue, even if there's a bit of overlap. > because the libraries do not change all the time That's not true in practice. Spend enough time with larger projects or do some software packaging and you'll learn that the pain is everywhere.