6 ms·
> D has a package manager. C++ has none that is popular in its community. Therefore, using a third-party library is many times easier. This comes up all the ti
by frankzinger 11y ago
> D has a package manager. C++ has none that is popular in its community. Therefore, using a third-party library is many times easier.
This comes up all the time in reference to C++. C++ doesn't need a package manager because it has excellent support from distro package managers. Most libraries are in the system package manager. And yes, sometimes you need a newer version of a package or one not quite widely-used enough to be in the system package manager, in which case you need to do compile it yourself or install it manually. But that is a problem common to all package managers and there is nothing about D which will make it any easier.
- p0nce 11y agoAlmost every C++ codebase out there vendor all dependencies. Looks like they are not using the system package manager. Windows has no package manager with such library releases. Language package managers have problems, but they do make the work easier. Anyone here unhappy with pip?
- frankzinger 11y ago> Almost every C++ codebase out there vendor all dependencies. Looks like they are not using the system package manager. Yeah, e.g. Chromium. But that was also the reason why Fedora refused to provide packages for Chromium. Distros don't like projects that include their own versions of libraries because it goes against how things are supposed to work (maintenance and, by implication, a security nightmare). I know that there are many C++ projects in the various distro package repos, and no way do 'most of them' include their own copies of dependencies.
- p0nce 11y agoIn the closed source world I'd say most codebases are like Chromium (difficult to say of course). It's a bit like distributing an application with binary libraries and a no-go for security indeed.
- frankzinger 11y agoYeah I am sure it's very common in closed source or internal systems. One place I worked at recently did that. All of my comments are about open source systems such as Linux and BSD.
- e12e 11y agoIt might not be usable/in use - but doesn't nuget support c++? http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-c.aspx http://blogs.msdn.com/b/vcblog/archive/2013/04/26/nuget-for-... > Anyone here unhappy with pip? Pip has (had) a number of issues (mostly related to pypi/availability) -- but pip+virtualenvs is something I use all the time, and am very happy with. The ease with which one can simply: virtualenv some_experiment # --no-site-packages # is now standard! yay! ./some_experiment/bin/pip install -U pip distribute # sadly needed -- but gets us pip list --outated, which # is very helpful ./some_experiment/bin/pip install <thing-to-test> And then just work with that, without even having to mess around with sourcing the "activate" script etc for most packages is great. No clutter under /usr/local, no broken system tools due to some dependency being pulled in etc.
- exDM69 11y agoThe operating system package manager is supposed to provide packages for libraries that are required to run the rest of the operating system. Not libraries you need for development. Package managers for development allow things such as installing multiple versions of a library, creating "sandboxes" with specific versions of libraries, and sometimes they are also the de-facto build system for a language. The OS package manager isn't doing the same job and has very different requirements. Not all libraries (especially ones that are usually built statically or header-only) end up in an OS package manager. Typically OS package managers don't bundle any libraries that are not required by one or more of applications in the package repository. So no, an OS package manager doesn't cut it for C or C++ development. They don't ship all the libraries and they can't do all the things you need for serious development. As a C and C++ developer, this pisses me off constantly. Even though most libraries are easy enough to fetch these days with Git, there's no standard way of configuring, building and installing them. And no OS package manager has ever been able to provide all the libraries I need.
- frankzinger 11y ago(Note: my frame of reference is experience with UNIX-like systems such as Linux and the BSDs, and even MacPorts on OS X.) The operating system package manager is supposed to provide packages for libraries that are required to run the rest of the operating system. Not libraries you need for development. Distro repos do provide many of the packages you need for development because you need to be able to compile all of the C++ applications and libraries in the distro repo, of which there are many. Package managers for development allow things such as installing multiple versions of a library, creating "sandboxes" with specific version Distro repos often include multiple versions of libraries because not all of the crucial applications and libraries in the repo are upgraded at the same speed. The OS package manager isn't doing the same job and has very different requirements. Not all libraries (especially ones that are usually built statically or header-only) end up in an OS package manager. Typically OS package managers don't bundle any libraries that are not required by one or more of applications in the package repository. Fair enough, and for this reason a language-specific PM will most likely have more libraries available, so I concede that point. However, I seriously doubt that a single group of people could be better at providing packages for all the major combinations of kernel, distro, and CPU architecture than the collection of distro groups. Just imagine how difficult that would be! C++ is different because it is very intertwined with the system. For D it makes sense at this point because it doesn't have the existing distro PM support that C++ does. Once crucial parts of the system starts depending on D the situation might change.
- e12e 11y agoSpeaking of package managers, looks like the ssl-cert for dlang.org is expired (and has been for more than a year) -- which leaves most of us with one less way to try to verify the installer, as: https://dlang.org/gpg_keys.html https://dlang.org/gpg_keys.html is only available via a untrusted channels.