2017-01-22 18 views
0

Я кодирую в C++ некоторое время, и я уже привык к проблеме совместимости с платформой. Но теперь я понял, что обратная совместимость является еще одним существенным вопросом:Обратная совместимость в Java по сравнению с C++

Как можно библиотеки Повышения быть успешно использована для важных проектов?

Многие из библиотек Boost активно поддерживаются и улучшаются, так что обратная совместимость с предыдущей версией не всегда возможна.

(Источник: http://www.boost.org/users/faq.html)

ли Java имеют один и тот же вопрос? Я знаю, что ситуация отличается от пакета к пакету, но как насчет пакетов Java, которые так знамениты, как boost, в мире C++?

+0

Пожалуйста, укажите правильность и укажите источники! –

ответ

3

Вы удобно обрезала остаток ответ на Boost, FAQ, который говорит вам, как справиться с этой проблемой:

Обработайте этим путем замораживания версии библиотек буста, используемый ваш проект. Только обновление в точках жизненного цикла вашего проекта , где небольшое изменение не вызовет проблем. Индивидуальные исправления ошибок всегда могут быть получены из хранилища boost.

Что касается остальной части вашего вопроса ...

ли Java имеют один и тот же вопрос?

Конечно. Это не проблема с конкретным языком программирования. Это проблема с сторонними библиотеками или фреймворками в целом.

Я знаю, что ситуация отличается от пакета к пакету, но как насчет пакетов Java, которые так же известны, как boost, в мире C++?

Существует не что иное, как Boost для Java, потому что многие вещи, предлагаемые Boost, уже являются частью самой структуры Java, к лучшему или к худшему. Подумайте о строковых алгоритмах или операциях файловой системы.

Это, как указано, возможно Apache Commons подходит к концу. Как оказалось, у нее есть своя доля проблем обратной совместимости, которая, как я сказал выше, абсолютно нормальная. Например, в release notes for v4.0 четко указано следующее:

Эта версия использует общие характеристики Java 5 и несовместима с более ранними версиями JDK.

(...), мы решили разбить API по-разному. (...) Мы также удалили все устаревшие классы и фиксированные странности в предыдущем API, которые мы не смогли исправить из-за ограничений обратной совместимости.

Имейте в виду, что и Boost, и Apache Commons справляются с этой фундаментальной проблемой разработки программного обеспечения очень профессионально и хорошо документированы. К сожалению, то же самое нельзя сказать о большинстве других библиотек и фреймворков, с которыми вы столкнетесь в дикой природе, независимо от используемого языка программирования.

+0

«Замораживание версии» - это специальный метод программирования или просто означает всегда загружать использование определенной версии библиотеки? – Admia

+1

@Admia: Это не специальная техника, нет. Это означает, что вы придерживаетесь одной версии библиотеки и не обновляетесь до более новой версии. –