2008-11-20 33 views
5

當你在開發工具中考慮升級時,向後兼容性對你來說有多重要?如果您需要對源代碼進行重大更改,您還會購買Visual Studio 2010嗎?在交易向新的功能兼容性方面,您的轉折點在哪裏?向後兼容性有多重要?

+0

你能不能作爲一個經驗豐富的人解釋一下我爲什麼這不是一個社會維基職位? – badbadboy 2008-11-20 19:56:38

+0

因爲這是一個合法的問題?社區Wiki並不適用於所有事情,我不會因爲沒有選擇它而認錯。 – 2008-11-20 20:05:53

回答

10

當你問這個但從開發商的角度來看,我認爲這將是參考你開發軟件一個更有趣的問題。所以我要回答這個問題。 :)

的硬件和軟件的向後兼容(更重要的是,未來兼容)提供一種安全感給您的用戶,購買或升級平臺,如Windows時尤其如此。如果沒有別的,Windows以其對向後兼容性的細緻關注而聞名。如果程序寫得很好(即不使用未公開的API),則可以在Windows Vista上運行十幾年前編寫的程序,但只有小問題。

在另一方面,嚴格注意向後兼容性可以配合你的手,當你試圖引入新的功能或者以革命性的平臺。蘋果知道它有一個垂死的操作系統,並且在其最大膽的舉動之一中,它購買了NeXT並決定讓NeXTSTEP成爲新的MacOS。銷售人員轉型的關鍵之一是向後兼容的圖層Classic。再次,當蘋果決定轉用英特爾芯片時,在英特爾上運行PowerPC應用程序的機制(稱爲Rosetta)以及通用二進制文件允許人們在PowerPC和英特爾之間自由移動,而不用擔心應用程序丟失。

一個有趣的事情是,隨着向英特爾過渡,Classic環境消失了,但沒有人真正在意,因爲他們有前5年從Mac OS 9過渡。因此,最終可能會將遺留系統的支持放棄爲只要你有一個簡單的方法遷移到新系統,並給你的用戶足夠的時間這樣做。

0

定義「重大變化」。如果可以通過精心製作的「搜索&替換」進行更改,即使它們很廣泛,我也會去做。

但是,這就是會做什麼。我曾經工作過的任何公司都會拒絕對現有代碼進行任何更改。

1

這取決於您需要支持哪些環境以及使用哪些第三方工具可能相容也可能不相容。

例如,在我工作的地方,我們將所有人都升級到VS2008,除了我們的BI組,因爲SQL Server BI工具與VS2008不兼容。一旦更新,他們升級到VS2008。

當專注於VS時,請記住VS2008可以針對.NET 2.0,.NET 3.0和.NET 3.5。訣竅是意識到它實際上是以.NET 2.0 SP1和.NET 3.0 SP1爲目標的。因此,升級IDE不應要求您更改代碼。

1

由於軟件和硬件領域發生了很多變化,因此在構建解決方案時,我認爲開放新變更和更好工具是一個好主意。例如,我們在90年代沒有多核處理器和高端圖形卡或網卡,因此編譯器和工具的優化目標自然不同。但同時,工具正在盡其所能地適應舊的框架和應用程序。

我認爲,如果我們期待着一個更美好的世界,我們應該開放不斷的變革,直到這個行業超級成熟。 (可能不會發生在我們的生活中:) :)

1

在genreal中,如果您正在開發一個平臺,許多其他用戶會不斷用它來構建自己的產品,並且您計劃開發一個應用程序很長一段時間,這很重要。查看PHP,Python,Eclipse和其他開源項目,這些項目對於向後兼容性非常重要。在開發n層體系結構中使用的服務或其他開放apis時,它也是重要的。當您更改服務時,您可以讓企業中的所有應用程序始終處於中斷狀態。

現在,如果您正在構建一個收縮包裝應用程序或商業應用程序,那麼它並不是那麼重要,因爲每個版本都與其前身是分開的。

2

對於家庭項目,向後兼容性並不重要。對於辦公室/企業來說,這絕對是關鍵。

3

在開發工具中,如果它沒有提供與我以前的代碼的完全向後兼容性,我不會購買它,我懷疑任何人都會。坦率地說,沒有意義。如果我已經有了一個編譯器,可以將我的源代碼構建成適用於我的可執行代碼,那麼我將使用它。爲什麼要改變我的代碼以符合顯然對工具製造者而言不是一個標準?如果他們強迫從一個版本到另一個版本的源代碼更改,他們爲什麼會打擾使下一個版本兼容?

100%與源的向後兼容性是一項要求。唯一不是全部要求的情況是不兼容的位是擴展名;即特定於該工具的API更改,例如Eclipse插件等。即便如此,我還是喜歡兼容性,但是我意識到它不能完全被期望。但是,如果您爲基礎應用程序/工具開發提供API,並且無法保持兼容性;那麼,那麼,你顯然不認真對待你的工具,我不會爲他們付出沉重的代價。