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

The*_*eLQ 6 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吗?您是否应该尝试将现有框架升级为1.5,然后与维护人员讨论使用它?

更具体的讨论(这是关于一般的支持): 是否还有充分的理由支持JDK 1.4?

不再支持JRE 1.3

Chr*_*oom 2

因为它很容易!从 Java 1.1 到 Java 1.4,仅引入了一些微小的语言功能(strictfp例如)。那么,如果不需要的话,为什么要限制自己呢?因此,假设您编写一个StringUtil类或解析 Word 文件,那么这根本不重要。从 Java 5 开始,语言就得到了改进,当然还有从 Java 1.0 到 Java 1.1 的内部类。

这仅适用于语言,而不适用于库。当然还有一些有趣的补充。