4 ms·
Dear Oracle, Either make new versions of Java 100% backwards compatible, or support them for a long time. The end. -John
by jhugg 11y ago
Dear Oracle,
Either make new versions of Java 100% backwards compatible, or support them for a long time. The end.
-John
- needusername 11y agoOracle supports Java 7, just not for free.
- jhugg 11y agoI mean... sure. Oracle doesn't OWE me anything. They can do what they want. But if they want a positive relationship with their community, they could not break compatibility with every Java release. I don't know if they care. At some point, people will rebel, but I can't predict where that tipping point is.
- flurdy 11y agoJust no. Their hesitancy to not break backwards compatibility is why Java got so stale. They have gotten better since 1.5 but I would prefer if they broke it more often. JVM however is a different matter.
- reagency 11y agoYou are talking about Sun really. But Java got really stale when Oracle bought Sun and no one cared about Java language for a few years. That's why 7 was so late and had almost no features. Everything in 8 was supposed to be in 7.
- RyanZAG 11y agoJava versions are 100% backwards compatible, or close enough. I think you're asking them to make Java forwards compatible..? If so, no, that doesn't make any sense. Code written for Java 7 runs perfectly on Java 8. Code that uses new Java 8 features doesn't run on Java 7 though, because those features didn't exist then. You upgrade the Java runtime to Java 8 and then it supports the new features. Simple, no?
- macspoofing 11y ago>Code written for Java 7 runs perfectly on Java 8. Ummmmmmmm...no. Why do you think (paid) maintenance options exist?
- abarringer 11y agoNo, it is not close enough. We have a project three months on so far making our Java7 code work with Java8. We have several products that use the JVM from various vendors stuck on Java6 because it won't run on Java7 or Java8.
- sarciszewski 11y ago> We have a project three months on so far making our Java7 code work with Java8. What crazy thing were you doing that required a 3+ month rewrite?
- jerven 11y agoI had one experience in java6 to java7 migration. The issue was a partly overriding of a list implementation. That list implementation was used in a for loop. The way the for loop was iterated across over was different in the two java versions. e.g. for(Object a:list){ a.doSomething(); } In java6 it was equivalent to for (int i:i<list.length();i++){ list.get(i).soSomething(); } In java7 it was done like this Iterator iter = list.iterator(); while(iter.hasNext() { iter.next().doSomething(); } The original programmer had overridden the get method but not the next method in the iterator method. (Actually just called toLowerCase on a list of strings). Oracle did nothing wrong, the programmer only partly overriding the list implementation was broken. This kind of programmer error is too common and is normally the reasons that upgrades become an issue, i.e. its the equivalent of using undefined behaviour in C and then scream when your compiler upgrade burns down your house.
- RyanZAG 11y agoAh, this is why I never see these kind of issues. He subclassed a list just to modify the list to return lowercased output always, preventing any method of ever accessing the original multi case text. At any rate, all of the java 6/7 code I've ever had has ported to java 8 without any changes. Assumed it was the normal experience.
- thalesmello 11y agoOracle doing it's part and releasing updated versions of Java whereas Google is stuck in time. Is it really Oracle's fault?
- vbezhenar 11y agoI never run into backward compatibility issues with Java. What issues you are talking about?
- eonwe 11y agoI've run into a few, but they've been mostly of the kind where a library/framework infers JDK version and assumes 1.8 is < 1.4 or whatever is the earliest they support.
- deleted 11y ago[deleted]