当您考虑升级开发工具时,向后兼容性对您有多重要?如果需要对源代码进行重大更改,您还会购买Visual Studio 2010吗?在交易新功能的向后兼容性方面,您的转折点在哪里?
答案 0 :(得分:11)
虽然您从开发人员的角度提出这个问题,但我认为参考您开发的软件这将是一个更有趣的问题。所以我打算回答这个问题。 :)
向后兼容的硬件和软件(更重要的是,未来兼容)为您的用户提供了安全感,尤其是在购买或升级Windows等平台时。如果不出意外,Windows因其对向后兼容性的细致关注而闻名。您可以在Windows Vista上运行十多年前编写的程序,只需要很小的问题,只要它们“写得好”(即不使用未记录的API)。
另一方面,当您尝试引入新功能或彻底改变平台时,严格注意向后兼容性会束缚您的双手。 Apple知道它有一个垂死的操作系统,并且在其最大胆的举动之一,它购买了NeXT并决定将NeXTSTEP作为新的MacOS。销售过程中销售人员的关键因素之一是向后兼容的Classic层。当Apple决定转向英特尔芯片时,在英特尔运行PowerPC应用程序的机制Rosetta以及通用二进制文件允许人们在PowerPC和英特尔之间自由移动而不用担心应用程序丢失。
一个有趣的事情是,随着向英特尔的过渡,经典环境消失了,但没有人真正关心,因为他们有前5年从Mac OS 9过渡。所以有可能最终放弃对遗留系统的支持因为您可以轻松地迁移到新系统并为用户提供充足的时间。
答案 1 :(得分:3)
在开发工具中,如果它不提供与我之前的代码的完全向后兼容性,我将不会购买它,我怀疑任何人都会。坦率地说,没有意义。如果我已经有一个编译器可以将我的源代码构建成适合我的可执行代码,那么我将使用它。为什么要更改我的代码以符合显然对工具制造商而不是标准?如果他们强制源代码从一个版本更改为另一个版本,他们为什么还要打扰下一个版本兼容?
要求与源100%向后兼容。这不是一个总要求的唯一情况是当不兼容的比特是扩展时;即特定于该工具的API更改,例如Eclipse插件等。即使这样,我也喜欢兼容性,但我意识到它不能完全预期。但是,如果您为基础应用程序/工具开发提供API,并且不能为维护兼容性而烦恼;那么,你显然对你的工具并不认真,我也不会为他们付出沉重的代价。
答案 2 :(得分:2)
对于家庭项目,向后兼容性并不重要。对于办公室/企业来说,这绝对是至关重要的。
答案 3 :(得分:1)
这取决于您需要支持哪些环境以及使用哪些可能与可兼容的第三方工具。
例如,在我工作的地方,除了我们的BI组之外,我们将每个人从VS2005升级到VS2008,因为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不应要求您更改代码。
答案 4 :(得分:1)
由于软件和硬件领域发生了很多变化,我认为在构建解决方案时,开放新的变更和更好的工具是个好主意。例如,我们在90年代没有多核处理器和高端显卡或网卡,所以编译器和工具的优化目标自然是不同的。但与此同时, Visual Studio 等工具正在尽力适应旧的框架和应用程序。
我认为,如果我们期待一个更美好的世界,我们应该持续改变,直到这个行业超级成熟。 (虽然可能不会发生在我们的一生中:))
答案 5 :(得分:1)
在genreal中,如果您正在开发一个平台,许多其他用户将不断使用该平台来构建自己的产品,并且您计划长时间开发应用程序,那么这很重要。请参阅PHP,Python,Eclipse和其他开源项目,这些项目非常重视向后兼容性。在开发n层架构中使用的服务或其他开放式api时,它也是重要的。当您更改服务时,您可以让企业中的所有应用程序都处于中断状态。
现在,如果您正在构建一个收缩包装应用程序或一个商务应用程序,那么它就不那么重要了,因为每个版本都与它的前辈分开。
答案 6 :(得分:0)
定义“重大变化”。如果可以通过精心设计的“搜索和替换”进行更改,即使它们很广泛,我也会去做。
然而,这就是 I 会做的事情。我所工作的任何公司都会对现有代码的任何更改保持不满。