当我坐在这里修改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?