2017-01-22 45 views
0

我在C++中編寫了一段時間,並且已經習慣了平臺兼容性問題。但現在,我才意識到,向後兼容的另一項重大的問題:在Java中與C++相比具有向後兼容性

如何能在Boost庫成功地用於重要的項目?

許多Boost庫都在積極維護和改進,所以因此與以前版本的向後兼容並非總是可行

(來源:http://www.boost.org/users/faq.html

的Java是否有同樣的問題?我知道每個軟件包的情況都不一樣,但是如何知道與C++世界中的boost一樣有名的Java軟件包呢?

+0

請正確引用,並說明您的來源! –

回答

3

你方便地剪斷的升壓常見問題的其餘的答案的,它告訴你如何處理這個問題:

應對這種凍結被 使用的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都以非常專業且記錄完備的方式處理這個基本的軟件工程問題。不幸的是,無論使用哪種編程語言,對於大多數其他庫和框架都不能這麼說。

+0

「凍結一個版本」是一種特殊的編程技術,或者它只是意味着總是下載一個使用特定版本的庫? – Admia

+1

@Admia:這不是一種特殊的技術,沒有。這意味着你堅持使用一個版本的庫,不要更新到新版本。 –