代码之家  ›  专栏  ›  技术社区  ›  Dan Tao

在操作OSS时,您是否有意识地努力保持代码与旧技术兼容?[关闭]

  •  2
  • Dan Tao  · 技术社区  · 15 年前

    在过去,我是少数几个小OSS项目的创建者,虽然我不一定要招募其他人加入到我的项目中来,但我仍然想知道,使用更新的技术是否是“糟糕的形式”,例如,利用最近发布的框架/语言的特性(我没有 需要 但是它只是让事情变得更快了),因此可能会使项目对一些开发人员来说更难进行。

    作为一个简单的例子,假设我要为使用 Enumerable.Range 方法(需要.NET3.5);在只安装了.NET2.0的Visual Studio 2005上工作的开发人员必须将其转换为 for 循环(或自己写 Range -就像方法)只是为了让代码编译。诚然,也许大多数.NET开发人员现在至少使用3.5版;但这只是一个例子。

    不管怎样,在处理其他人可能希望参与的项目时,如果框架、IDE甚至编程语言本身的版本可能因开发人员而异,那么尝试避开新功能是好还是坏的礼仪呢?或者是普遍的态度,这并不重要?我特别感兴趣的是从那些在这个场景中工作过的人那里得到消息(和其他在不同环境中工作的人一起工作一个OSS项目)。。。或者有足够的经验告诉我,“这种情况不会真的发生。”

    2 回复  |  直到 15 年前
        1
  •  0
  •   Jeff Paquette    15 年前

    我认为这取决于你的听众。以emacs为例;它的目标受众需要广泛的兼容性——系统、操作系统、编译器和其他各种应用程序和api。用Emacs提高技术水平是一个大问题;小的变化会产生深远的影响。

    对于任何产品,无论是商业的还是开源的,你都需要了解你的目标市场(受众?)。如果您的用户被困在Framework 2.0上,那么是的,您需要避免使用较新的语言功能,或者为他们提供可以以降级方式运行的产品版本。

    否则,如果没有必要,为什么要限制你的产品和你自己?

        2
  •  0
  •   Justin Smith    15 年前

    大多数OSS软件都是通过发行版使用的。由于从新的开发人员代码到集成到发行版的涓流过程相对较慢,如果您今天使用最新的API编写代码,那么很有可能API会在当前版本之前包含在发行版中。我参与的每一个开源项目都希望那些想参与的人愿意更新到项目使用的所有lib和工具的最新版本。如果正在使用的lib中有一个出现了不兼容的新版本,那么任何不兼容都会被报告为bug,并且项目会迁移到与新版本兼容的位置,而长期目标是完全放弃与旧版本的兼容。

    在像OSX这样的情况下,库依赖于OS版本,并且你不能期望你的用户库按照开源操作系统的方式升级,你可以像处理其他跨平台代码一样处理它。必须在多个操作系统版本上工作的代码是跨平台的,因此您可以配置脚本变量、源代码中的ifdef等所有标准的跨平台技术。

    听起来你说的是一种人们为开发工具付费的情况。对于开源来说,这是一种不寻常的情况,而我只使用了自由软件开发工具,没有处理过这种情况。

    推荐文章