организация, повторное использование и простая интеграция в другие программы.
если у вас есть библиотека, которая используется несколькими приложениями или предназначена для нескольких платформ, вам придется поддерживать сборку для каждого приложения. с библиотекой вы позволяете сопровождающему библиотеки правильно настроить сборку, а затем просто ссылаетесь на результат (если он разработан внутренне, то вы захотите добавить его и в качестве зависимости).
это как СУХОЙ, но для проектов.
библиотеки становятся более полезными, поскольку проекты становятся более сложными. Вы должны попытаться определить, какие программы (функции, иерархии классов и т. д.) можно использовать повторно вне контекста вашего приложения, и поместить их в библиотеку для простого повторного использования, например, для распознавания образов.
как только ваша кодовая база содержит сотни или тысячи файлов, вы захотите свести к минимуму то, что используете, и не захотите поддерживать зависимости вручную для каждого проекта.