I get the impression that some people think that developing on Linux means doing everything from the shell, and rolling their own make files. Maybe my impression is wrong?
Linux has lots of IDE's and most of them generate their own make files automatically. I have used Code::Blocks, qtCreator, KDevelop, and most recently Eclipse. I didn't like C::B because it doesn't seem to have any version control, and doesn't do background parsing. qtCreator is fine for Qt. KDevelop is a mature app and is fine for C++ development. Then I discovered Eclipse which has plugins for everything: want to program in any one of dozens of languages / scripting environment? Install the plugin. The plugins are not restricted to just languages though, there are all kinds of things available. https://marketplace.eclipse.org/
Some people also have the impression that Linux doesn't come with many apps. In fact there are over 20,000 free apps available for most distributions.
|you got me on the package manager. I don't remember what it even does, or why we need it, though|
Package managers are for installing and updating software. They are aware of dependencies and will download them also. Software can be built from source and installed in one operation. They can use secure keys. Each day I use the Software update facility, it checks for any new versions of all the software installed on the system through various repositories, the whole lot can be updated in one go if required. The kernel is included in this process. One can even use this for updating to a later version of the current distribution, eg from Fedora 29 -> 30. New versions of the distribution appear every 6 months.
I have been using Linux since it's first version Yggdrisil (https://en.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X),
UNIX before that, so I have a strong leaning towards it, and this is reflected in my opinions.
I have heard many good things about VS, but I have never used it, probably because I was never going to pay for it. I did have a go with VS 2013 Community, but was turned off it mainly because at that stage VS was way behind in C++11 conformance. But these days VS is doing really well with conforming to new standards, and has the ability to use other compilers like gcc and clang.
But which system one uses is dependent on a number of things, all the systems will have disadvantages somewhere, and I guess they all have their own idiosyncrasies. So use what best suits all of the requirements, I guess.