![]() |
1
0
我认为这取决于你的听众。以emacs为例;它的目标受众需要广泛的兼容性——系统、操作系统、编译器和其他各种应用程序和api。用Emacs提高技术水平是一个大问题;小的变化会产生深远的影响。 对于任何产品,无论是商业的还是开源的,你都需要了解你的目标市场(受众?)。如果您的用户被困在Framework 2.0上,那么是的,您需要避免使用较新的语言功能,或者为他们提供可以以降级方式运行的产品版本。 否则,如果没有必要,为什么要限制你的产品和你自己? |
![]() |
2
0
大多数OSS软件都是通过发行版使用的。由于从新的开发人员代码到集成到发行版的涓流过程相对较慢,如果您今天使用最新的API编写代码,那么很有可能API会在当前版本之前包含在发行版中。我参与的每一个开源项目都希望那些想参与的人愿意更新到项目使用的所有lib和工具的最新版本。如果正在使用的lib中有一个出现了不兼容的新版本,那么任何不兼容都会被报告为bug,并且项目会迁移到与新版本兼容的位置,而长期目标是完全放弃与旧版本的兼容。 在像OSX这样的情况下,库依赖于OS版本,并且你不能期望你的用户库按照开源操作系统的方式升级,你可以像处理其他跨平台代码一样处理它。必须在多个操作系统版本上工作的代码是跨平台的,因此您可以配置脚本变量、源代码中的ifdef等所有标准的跨平台技术。 听起来你说的是一种人们为开发工具付费的情况。对于开源来说,这是一种不寻常的情况,而我只使用了自由软件开发工具,没有处理过这种情况。 |