LINUX.ORG.RU

История изменений

Исправление bbk123, (текущая версия) :

Их просто слишком много. conan, vcpkg, кто-то просто считает, что менеджер зависимостей в С++ == системный пакетный менеджер, кто-то использует сабмодули гит (привет, mdbx и gtest), CMake со своим FetchContent (привет, grpc). Собственно всё в лучших традициях.

Это их сейчас слишком много и все в каком-то полузачаточном состоянии, потому что года 2 - 3 назад уж очень сильно припёрло и вдруг их начали писать... в лучших традициях фрагментации велосипедов. Практически как тот же десктопный Linux.

В той же Java, если библиотека существует, значит она устанавливается из maven-овских репозитариев. И разработчики заботятся о доступности их творения. В С++ - исходники есть? Есть. Налетай, компиляй.

В Java библиотеки распространяются в виде Jar архивов, внутри которых байткод и иногда ресуры. Java байткод одинаков везде и даже не оптимизируется компилятором, поскольку вся оптимизация осуществляется в JIT. С такими языками как C/C++ сделать так же просто нельзя, там нет байткода. А даже если паковать промежуточный байткод из LLVM, всё равно платформонезависимо не получится. Что касается компиляции, то в C/C++ она гораздо сложнее, с кучей проверок всякими auto tools, макросами, включающими или отключающими целые блоки кода по условиям. Я в общем не против компилировать C/C++ библиотеки самостоятельно, но даже это в C/C++ сделано слишком сложно и почти всегда с кучей костылей или патчей.

Исходная версия bbk123, :

Их просто слишком много. conan, vcpkg, кто-то просто считает, что менеджер зависимостей в С++ == системный пакетный менеджер, кто-то использует сабмодули гит (привет, mdbx и gtest), CMake со своим FetchContent (привет, grpc). Собственно всё в лучших традициях.

Это их сейчас слишком много и все в каком-то полузачаточном состоянии, потому что года 2 - 3 назад уж очень сильно припёрло и вдруг их начали писать... в лучших традициях фрагментации велосипедов. Практически как тот же десктопный Linux.

В той же Java, если библиотека существует, значит она устанавливается из maven-овских репозитариев. И разработчики заботятся о доступности их творения. В С++ - исходники есть? Есть. Налетай, компиляй.

В Java библиотеки распространяются в виде Jar архивов, внутри которых байткод и иногда ресуры. Java байткод одинаков везде и даже не оптимизируется компилятором, поскольку вся оптимизация осуществляется в JIT. С такими языками как C/C++ сделать так же просто нельзя, там нет байткода. А даже если паковать промежуточный байткод из LLVM, всё равно платформонезависимо не получится. Что касается компиляции, то в C/C++ она гораздо сложнее, с кучей проверок всякими auto tools, макросами, включающими или отключающими целые блоки кода по условиям. Я в обще не против компилировать C/C++ библиотеки самостоятельно, но даже это в C/C++ сделано слишком сложно и почти всегда с кучей костылей или патчей.