代码之家  ›  专栏  ›  技术社区  ›  TheLQ

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

  •  6
  • TheLQ  · 技术社区  · 14 年前

    当我坐在这里 PircBot ,我刚刚注意到整个后端都是为了支持Java而编写的 1.1 . 它有一个定制的队列实现,使用哈希表,基于wait()和notify()信令的定制生产者/消费者实现,等等。甚至连Commons lang都不支持Java5给表带来的泛型之类的东西。你可以拉一些其他非常流行的框架的例子,尽可能地支持1.1。

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

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

    另一方面,如果您正在编写一个新框架,您是否应该支持任何内容<1.5? 您是否应该尝试分叉现有框架,将其升级到1.5,然后与维护人员讨论如何使用它?

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

    Dropping support for JRE 1.3

    4 回复  |  直到 7 年前
        1
  •  2
  •   Christian Ullenboom    14 年前

    因为这很简单!从Java1.1到Java1.4,只引入了很小的语言特性( strictfp 例如)。所以,如果你不需要的话,为什么要限制自己呢。假设你写了一个 StringUtil 类或者你解析Word文件的话根本没关系。从Java5开始,您就有了语言改进,从Java1.0到Java1.1,当然还有内部类。

        2
  •  1
  •   b_erb    14 年前

    我认为最常见的原因是,在以后的版本中引入的新特性无论如何都不会被使用。我的意思是,如果一个库不使用像泛型或高级并发特性这样的新特性,那么根本就没有兼容性开销。

        3
  •  1
  •   Thorbjørn Ravn Andersen    14 年前

    向后兼容?

    改变JVM支持的级别,应该保证一个主要的版本。也就是说,版本1.x转到2.x来表示这一点。

        4
  •  1
  •   user207421    14 年前

    据我所知,至少有一家商业企业决定他们永远不会超越1.1,这样他们就可以用相同的源代码在java JVM和.NET上永远运行。