java - 为什么有些框架拒绝放弃对古老 Java 版本的支持?

标签 java backwards-compatibility forward-compatibility

当我坐在这里修改 PircBot ,我刚刚注意到整个后端都是为支持 Java 1.1 而编写的。它有一个自定义队列实现,使用哈希表,基于 wait() 和 notify() 信号的自定义生产者/消费者实现,等等。甚至 Commons-lang 也缺乏对 Java 5 带来的东西的任何支持,比如泛型。您可以举出许多其他非常流行的框架示例,这些框架尽最大努力支持 1.1。

我的问题是为什么?为什么 Java 社区的某些部分拒绝支持新版本?我遵循这个理论:旧版本使用旧版本的框架和旧 JVM,新版本使用升级的框架和 JVM。您可以使用软件升级所有内容。

现在我可以部分理解人们仍在运行 Java 1.5,但是 1.1?如果你在那之前运行任何东西,那么你显然不会因为愚蠢的政策/害怕未知而升级 JVM,因此不会升级到更新版本的软件。那我们为什么还要支持他们呢?

在相关说明中,如果您正在编写一个新框架,您应该支持 <1.5 的任何东西吗?您是否应该尝试 fork 现有框架,将其升级到 1.5,然后与维护人员讨论如何使用它?

更具体的讨论(这是关于一般支持): Is there still a good reason to support JDK 1.4?

Dropping support for JRE 1.3

最佳答案

因为它很简单!从 Java 1.1 到 Java 1.4,只引入了微小的语言特性(例如 strictfp)。那么,如果不需要,为什么要限制自己。因此,假设您编写了一个 StringUtil 类,或者您解析了 Word 文件,那么就没有关系了。从 Java 5 开始,您就有了语言改进,从 Java 1.0 到 Java 1.1,当然还有内部类。

这只是针对语言,而不是针对库。当然还有一些有趣的补充。

关于java - 为什么有些框架拒绝放弃对古老 Java 版本的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381187/

相关文章:

ios - Xcode 6 是否可能显示 iOS 7 兼容性错误?

java - 如何使使用不同jdk版本的两方之间兼容

android - android中的兼容性行为是什么?

java - 获取 View 中 Spring Controller 和方法的名称

java - 如何在不阻塞 UI 的情况下暂停 Java 指定时间?

java - 当消息为空时如何隐藏 jface.dialogs.TitleAreaDialog 消息光标

java - 如何有效地检查两个字符是否是键盘上的邻居?

html - 在同一文本上同时使用强标签和粗体标签有好处吗?

android - 如何在 ICS 中使用自定义数据库路径并仍然向后兼容?