我在C++中編寫了一段時間,並且已經習慣了平臺兼容性問題。但現在,我才意識到,向後兼容的另一項重大的問題:在Java中與C++相比具有向後兼容性
如何能在Boost庫成功地用於重要的項目?
許多Boost庫都在積極維護和改進,所以因此與以前版本的向後兼容並非總是可行。
(來源:http://www.boost.org/users/faq.html)
的Java是否有同樣的問題?我知道每個軟件包的情況都不一樣,但是如何知道與C++世界中的boost
一樣有名的Java軟件包呢?
我在C++中編寫了一段時間,並且已經習慣了平臺兼容性問題。但現在,我才意識到,向後兼容的另一項重大的問題:在Java中與C++相比具有向後兼容性
如何能在Boost庫成功地用於重要的項目?
許多Boost庫都在積極維護和改進,所以因此與以前版本的向後兼容並非總是可行。
(來源:http://www.boost.org/users/faq.html)
的Java是否有同樣的問題?我知道每個軟件包的情況都不一樣,但是如何知道與C++世界中的boost
一樣有名的Java軟件包呢?
你方便地剪斷的升壓常見問題的其餘的答案的,它告訴你如何處理這個問題:
應對這種凍結被 使用的Boost庫的版本你的項目。只有在項目生命週期 中的某些點進行升級,其中一些更改不會導致問題。總是可以從boost庫獲取單個錯誤修復程序 。
至於你的問題的休息...
的Java是否有同樣的問題?
當然。這不是特定編程語言的問題。一般來說,這是第三方庫或框架的問題。
我知道每個軟件包的情況都不一樣,但是在C++世界中,與提升一樣有名的Java軟件包怎麼樣?
沒有什麼比Boost for Java更好的了,因爲Boost提供的許多東西已經是Java框架本身的一部分,無論好壞。想想字符串算法或文件系統操作。
也就是說,也許Apache Commons接近。事實證明,它具有自己的後向兼容性問題 - 正如我上面所說的那樣,這是完全正常的。例如,release notes for v4.0明確指出以下內容:
此版本使用Java 5的泛型功能,並且與早期的JDK版本不兼容。
(...),我們選擇以各種方式打破API。 (...)我們還刪除了以前API中不再修復的所有棄用類和固定類,這是由於向後兼容限制造成的。
請記住,Boost和Apache Commons都以非常專業且記錄完備的方式處理這個基本的軟件工程問題。不幸的是,無論使用哪種編程語言,對於大多數其他庫和框架都不能這麼說。
「凍結一個版本」是一種特殊的編程技術,或者它只是意味着總是下載一個使用特定版本的庫? – Admia
@Admia:這不是一種特殊的技術,沒有。這意味着你堅持使用一個版本的庫,不要更新到新版本。 –
請正確引用,並說明您的來源! –