Why do some structures refuse to support older versions of Java?

Since I'm sitting here modifying PircBot , I just noticed that the entire backend was written to support Java 1.1 . It has a special queue implementation, uses hash tables, producer / consumer custom implementations based on the wait () and notify () signature, etc. Even Commons-lang does not have support for the things that Java 5 brings to the table, such as generics. You can get a bunch of other examples of very popular frameworks that try their best to support 1.1.

My question is why? Why do some parts of the Java community refuse to support new versions? I adhere to this theory: older versions use older versions of frameworks and older JVMs, newer versions use updated frameworks and JVMs. You update everything using software.

Now I can partially understand the people who are still using Java 1.5, but 1.1? If something works for you before that, then you obviously do not update the JVM because of stupid policies / are afraid of unsolved, and therefore you are not going to upgrade to newer versions of the software. So why do we still support them?

In the corresponding note, if you write a new structure, if you support something and lt; 1.5? If you try to expand the existing framework by upgrading it to 1.5, and then talk to your maintainers about using it?

Much more specific discussion (about general support): Is there a good reason to support JDK 1.4?

Decrease in support of JRE 1.3

+6
java backwards-compatibility forward-compatibility
source share
4 answers

Because its easy! From Java 1.1 to Java 1.4, only tiny language functions were introduced (e.g. strictfp ). So why limit yourself if you don’t need it. So let's say that you are writing the StringUtil class or you are StringUtil Word files, and then it just doesn't matter. Starting with Java 5, you have an improvement in the language and from Java 1.0 to Java 1.1, of course, inner classes.

This is for language only and not for libraries. Of course, there are interesting additions.

+2
source share

I think the most common reason is that the new features introduced in later versions are not used anyway. I mean, if the library does not use new functions, such as generics or advanced concurrency functions, there is no compatibility overhead at all.

+1
source share

Backward compatibility?

Changing the level of support for the JVM should guarantee a large release. That is, version 1.x goes to 2.x to indicate this.

I also think that I read that in order to get the most coverage in mobile phones, you need to target 1.1. It may be old.

+1
source share

I know at least one commercial enterprise that has decided that they will never go beyond 1.1 so that they can work forever on both java JVMS and .NET with the same source code.

+1
source share

All Articles