gpt4 book ai didi

backwards-compatibility - 放弃对旧编译器版本的支持的技术考虑?

转载 作者:行者123 更新时间:2023-12-02 07:54:50 28 4
gpt4 key购买 nike

我从事的项目以源代码和二进制形式免费分发,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑,以保持与旧主机系统(主要是它们的编译器)的向后兼容性。

其中一些最糟糕的,例如 GCC 3.2(2003 年!)、ICC 9、MSVC(几乎是废弃软件,而不是 C++!)和 Sun 的编译器(在我们仍然关心的一些旧版本中),缺乏​​对语言的支持使开发更容易的功能。在某些情况下,让用户坚持使用这些编译器肯定会导致他们付出大量性能代价,这与我们提供的目标背道而驰。

那么,我们在什么时候说够了?我可以看到几个停止支持特定编译器的论点:

  • 生成的代码性能不佳(相对于较新的版本,询问 here )
  • 缺乏对语言功能的支持
  • 开发系统的可用性较差(专有系统的可用性比 GCC 高,但旧的 GCC 也存在系统管理问题)
  • 可能存在未修复的错误(我们已经在 ICC 和 xlC 中隔离了 ICE,还有什么可能潜伏着?)

我确定我错过了其他一些,但我不确定如何权衡它们。那么,我错过了什么论点?还有哪些其他技术考虑因素起作用?

注意:这个问题之前的措辞更为宽泛,导致许多受访者指出决策制定从根本上说是一个业务流程,而不是工程流程。我知道“商业”方面的考虑,但这不是我在这里寻找的更多内容。我想听听那些不得不支持旧编译器或选择放弃旧编译器的人的经验,以及这对他们的开发有何影响。

最佳答案

您的问题在概念上与 Web 开发人员想知道何时应该停止支持 Internet Explorer 6 相同。答案是您必须进行研究。

  1. 有多少人使用旧版编译器?
  2. 有多少人使用较新的?
  3. 有多少人愿意升级?
  4. 您会失去多少用户? (这可以根据 1、2 和 3 的答案计算得出)。
  5. 放弃对旧编译器的支持会为您节省多少时间和工作量?

基本上,您的决定归结为比较 4 和 5 的答案。从您的描述来看,这似乎是一个开源项目,但如果是企业,您可以进行数字比较(如果损失的钱少于节省的钱, 放弃支持)。如果不是企业,那就有点复杂了,因为你必须猜测人力成本,这可能有点棘手。

关于backwards-compatibility - 放弃对旧编译器版本的支持的技术考虑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516804/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com