Live data from Hacker News

Five Popular Myths about C++: Postscript

isocpp.org

1–10 of 39 posts

Re: Five Popular Myths about C++: Postscript

#3

There are a lot of objections to C++, but I've never seen any of the five he mentions. They sound more like strawmen to knock down than real objections by actual users or commentators critical of the language.

The article does not claim to be refuting objections, but debunking myths.

Re: Five Popular Myths about C++: Postscript

#4
> "Unfortunately, there is not a single place to go to look for C++ Libraries."

I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have this HUGE Boost dependency in my code, even if I'm only using a few packages. I know the Boost project has now finally migrated to Github and provides individual repositories for libraries. It just startles me that there isn't a single, consolidated package manager to have rolled out of the millions of work-hours that have gone into C++ projects.

It's possibly the single biggest criticism of the language that I felt wasn't tackled at all. There is a complete lack of consensus. In trying to accommodate everything and anything, C++ has in my experience overshot the mark.

Re: Five Popular Myths about C++: Postscript

#5

> "Unfortunately, there is not a single place to go to look for C++ Libraries." I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have t…

I think that and the previous issue go hand in hand, contributing to each other:

> Unfortunately, C++ Libraries are often not designed for interoperability with other libraries

And I think it's not just that the libraries don't work well with each other, but they also only work with a subset of C++ projects since any given group of collaborating C++ programmers seems to settle on their own subset of the language to allow in their coding standards. Perhaps I am falling into the trap of thinking about old C++ now -- modern C++ does seem to have more of a broadly understood idiomatic style.

Re: Five Popular Myths about C++: Postscript

#6

> "Unfortunately, there is not a single place to go to look for C++ Libraries." I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have t…

  The bane of my existence at the moment is the fact that I 
  have this HUGE Boost dependency in my code, even if I'm      
  only using a few packages...  It just startles me that 
  there isn't a single, consolidated package manager...
Sincerely, I have never understood this common complaint about C++ (applies to C as well, actually). My OS comes with a huge repo of C++ libraries. For example, there is a separate package for each of the Boost libraries you used as your example. Why do I need a C++-specific package manager? What's the use case? Windows?

Re: Five Popular Myths about C++: Postscript

#7

> "Unfortunately, there is not a single place to go to look for C++ Libraries." I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have t…

A package manager is generally not part of the language per se and should not be part of the language, but rather be part of the tooling ecosystem around it. Don't get me wrong. A de facto package manager is extremely important for any major language - and it's high time someone in the C++ community builds and promotes one. It just doesn't belong in the spec.

Re: Five Popular Myths about C++: Postscript

#8

> "Unfortunately, there is not a single place to go to look for C++ Libraries." I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have t…

The bane of my existence at the moment is the fact that I have this HUGE Boost dependency in my code, even if I'm only using a few packages... It just startles me that there isn't a single, consolidated package manager... Sincerely, I have never understood this common complaint about C++ (applies to C as well, actually). My OS comes with a huge repo of C++ libraries. For example, there is a separate package for each…

Pretty much. In particular, Boost is already packaged and available for clean dependency management on all Linux distros. And on Windows, you're almost always looking at shipping a statically build binary (or one with the DLLs packaged) anyway, so an external package manager would provide little value anyway.

Really the existence of language-specific package management might be considered the bug, and not the feature. In all cases I've dealt with, the OS packaging is superior anyway.

Re: Five Popular Myths about C++: Postscript

#9

> "Unfortunately, there is not a single place to go to look for C++ Libraries." I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have t…

The bane of my existence at the moment is the fact that I have this HUGE Boost dependency in my code, even if I'm only using a few packages... It just startles me that there isn't a single, consolidated package manager... Sincerely, I have never understood this common complaint about C++ (applies to C as well, actually). My OS comes with a huge repo of C++ libraries. For example, there is a separate package for each…

Windows. OSX (to some degree; Homebrew and MacPorts mitigate this). Linux if you want library versions newer than those supplied by the distro, if you want something that's not supplied by the distro, or if you want to be able to handle your build in a distro-independent manner (those "separate packages for each of the Boost libraries" you reference are provided by your distribution; Boost themselves only distribute one monolithic package from which you can, with some massaging, pull out individual parts if you really need to).

The language-specific package managers used with (for example) Python, Ruby, or Node give developers an OS-agnostic way to pull in dependencies, and, since dependencies are being packaged uniformly, avoids the conflicts between build systems that can make it hard for C++ libraries to coexist (this thing needs CMake, this other guy used Autoconf/Automake, and I've got Boost which built with Bjam, and now I need to make it all work on Windows and they're all providing binaries built with different MSVC versions).

Re: Five Popular Myths about C++: Postscript

#10
post #8

Earlier quoted context omitted.

The bane of my existence at the moment is the fact that I have this HUGE Boost dependency in my code, even if I'm only using a few packages... It just startles me that there isn't a single, consolidated package manager... Sincerely, I have never understood this common complaint about C++ (applies to C as well, actually). My OS comes with a huge repo of C++ libraries. For example, there is a separate package for each…

Pretty much. In particular, Boost is already packaged and available for clean dependency management on all Linux distros. And on Windows, you're almost always looking at shipping a statically build binary (or one with the DLLs packaged) anyway, so an external package manager would provide little value anyway. Really the existence of language-specific package management might be considered the bug, and not the feature…

I think it's fascinating how wildly differing peoples' experiences are with this. I find system package managers nice for system administrators and applications, but for development, every one I've used is far less convenient than a purpose-built package ecosystem.
Post reply on HN