Нужен совет по С++

Я новичок по С++, но опытный в javascript и веб разработке в целом. С недавних пор интересуюсь в разработке на С++ и так как у меня сейчас неразбериха, хотелось бы узнать у более опытных пару вопросов, так как это могло бы помочь мне в дальнейшем развитии и укомплектовать знания по полочкам. Итак:

  1. В чем отличия MinGW и Visual Studio? Я хочу работать в IDE от Jetbrains, на CLion, и не совсем пойму есть ли разница между выбором компилятора.
  2. Что лучше выбрать из вышеперечисленного и почему, будет ли мне доступны все библиотеки С++ в обоих случаях, и зачем так много разных компиляторов придумали?
  3. Можно ли настроить CLion и скачать только необходимое из Visual Studio, не скачивая Visual Studio целиком
  4. Есть ли в C++ какой нибудь пакетный менеджер типа npm, pip, итд. Если есть то как устанавливается библиотеки?
  5. Какие есть возможности на С++? Знаю что можно создавать десктопные приложения, но что можно ещё, какое направление сейчас популярное и что лучше всего выбрать?
  6. Можно ли на С++ создавать десктопные приложения которые будут кроссплатформенны, и работать как на винде на маке и на линуксе?

Ответы (2 шт):

Автор решения: KoVadim

В чем отличия MinGW и Visual Studio?

Первое - компилятор, второе - среда разработки с компилятором.

Я хочу работать в IDE от Jetbrains, на CLion, и не совсем пойму есть ли разница между выбором компилятора.

нет, не нужно выбирать IDE от Jetbrains.

Что лучше выбрать из вышеперечисленного

Выберите любой компилятор, который Вам нравится.

и почему,

плохой вопрос. очень спорный.

будет ли мне доступны все библиотеки С++ в обоих случаях,

нет, некоторые библиотеки нормально работают только с определенными версиями определенных компиляторов. И если что, у нас ещё есть clang.

и зачем так много разных компиляторов придумали?

а почему бы и нет. Это же круто!

Можно ли настроить CLion и скачать только необходимое из Visual Studio, не скачивая Visual Studio целиком

Вам не нужен CLion. Если хотите работать под Windows - студия будет хорошим выбором. Хотите работать под Linux - vim, emacs, vscode, juce++, geany + командная строка. Но если хочется странного - https://www.jetbrains.com/help/clion/quick-tutorial-on-configuring-clion-on-windows.html#msvc-compiler

Есть ли в C++ какой нибудь пакетный менеджер типа npm, pip, итд. Если есть то как устанавливается библиотеки?

им тысячи, самые популярны - vspkg, conan. В случае линукса - сам дистрибутив уже есть пакетным менеджером.

Какие есть возможности на С++? Знаю что можно создавать десктопные приложения, но что можно ещё, какое направление сейчас популярное и что лучше всего выбрать?

практически все. Можно создать свой редактор или ide, можно написать свой язык программирования (почти все языки программирования написаны на с/с++ или вначале были на них написаны, но потом сделали bootstrap на себя). Можно делать нейроночки, игры, а особые любители даже сайты пишут.

Можно ли на С++ создавать десктопные приложения которые будут кроссплатформенны, и работать как на винде на маке и на линуксе?

да, можно. Но лучше использовать готовые фреймворки, например, Qt или GTK, им много. А можно и свое написать, sublime тому пример - работает везде и приблизительно одинаково.

→ Ссылка
Автор решения: S.H.

KoVadim дал прекрасный и краткий ответ на вопрос, я хотел бы дополнить его буквально парой слов

и зачем так много разных компиляторов придумали?

Первоначально новые компиляторы возникали для того, чтобы решить проблемы, которые "старые компиляторы" не могли решить или решали не так, как хотелось бы авторам новых компиляторов.

Так, первоначально майкрософтовский компилятор нужен был для полного контроля над кодом при создании Windows.

LLVM был "штукой, котрая позволяет писать много компиляторов с разных языков, при этом подход к написанию компиляторов и оптимизаторов общий".

Кроме того, нельзя не вспонить тех, кто сошел с этой гонки: борланд и эмбаркадеро - они используются, но, похоже, не очень равиваются.

Ну, и самое главное. есть такое наблюдение: когда игрок один - то возникает застой и стагнация. Так что когда компиляторов несколько - это обещает более интересное развитие.

Можно ли на С++ создавать десктопные приложения которые будут кроссплатформенны, и работать как на винде на маке и на линуксе?

я возлагаю большие надежды на то, что называется MAUI (Multi-platform App UI), подробнее можно об этом прочитать здесь. Пусть Вас не смущает, что статья написана применительно к NET Core - вроде бы, вызовы там нативные и могут быть сделаны из C++.

Также, если Вы склонны делать что то в Windows - обратите внимание на проект Msys2 - остроумный и забавный способ, еще больше стирающий границы между виндой и не-виндой.

→ Ссылка