我用C ++编写了一段时间,我已经习惯了平台兼容性问题。但现在,我意识到向后兼容性是另一个重要问题:
Boost库如何成功用于重要项目?
许多Boost库都得到了积极的维护和改进,因此无法始终向后兼容先前版本。
(来源:http://www.boost.org/users/faq.html)
Java是否有同样的问题?我知道情况因包而异,但是与boost
一样着名的Java包在C ++世界中怎么样?
答案 0 :(得分:3)
你已经在Boost常见问题解答中方便地剪掉了其余的答案,它会告诉你如何处理这个问题:
通过冻结所使用的Boost库的版本来解决这个问题 你的项目。只能在项目生命周期中的某些点进行升级 一点点改变不会导致问题。个别错误修复 总是可以从boost存储库中获取。
至于你的其余问题......
Java是否有同样的问题?
当然。这不是特定编程语言的问题。这是第三方库或框架的一个问题。
我知道组件的情况不同,但是在C ++世界中,那些与boost一样着名的Java软件包怎么样呢?
没有像Boost for Java那样的东西,因为Boost提供的许多东西已经成为Java框架本身的一部分,无论好坏。想想字符串算法或文件系统操作。
话虽这么说,或许Apache Commons也很接近。事实证明,它有自己的向后兼容性问题 - 如上所述,这是完全正常的。例如,release notes for v4.0明确说明以下内容:
此版本使用Java 5的泛型功能,与早期的JDK版本不兼容。
(...),我们选择以各种方式打破API。 (...)我们还删除了之前的API中所有已弃用的类和固定的奇怪,由于向后兼容性限制,我们无法解决这些问题。
请记住,Boost和Apache Commons都以非常专业且记录良好的方式处理这个基本的软件工程问题。遗憾的是,无论使用何种编程语言,无论在野外都会遇到的大多数其他库和框架都是如此。