Re:Java SE 8 Proposed Final Draft Specification — Draft 1
by aeonsky on Monday December 23, 2013 @11:19PM
(#6958186)
So you want Oracle to include a "shared" and "auto" keywords and break millions of programs?
[ Parent
| on HN ]
Re:Java SE 8 Proposed Final Draft Specification — Draft 1
by grogenaut on Tuesday December 24, 2013 @12:38AM
(#6958392)
Yes, Yes I do.
And as for backward compatibility, they already did. I love the myth that java never broke backwards compatibility. Bytecode maybe (), they definitely broke syntax compatiblity.
: The various xml parsers and other library thrash really do break backwards bytecode compatiblity.
Re:Java SE 8 Proposed Final Draft Specification — Draft 1
by laureny on Tuesday December 24, 2013 @01:32AM
(#6958525)
> I love the myth that java never broke backwards compatibility. Bytecode maybe (), they definitely broke syntax compatiblity.
Proof?
Re:Java SE 8 Proposed Final Draft Specification — Draft 1
by mhixson on Tuesday December 24, 2013 @02:14AM
(#6958593)
If by "syntax compatibility" he means code that compiles in one version does not compile is another, that's definitely true. Name collisions with the new default methods in Java 8 are one source. If your Comparator-implementing class has a method "void reverseOrder()", that will no longer compile.
Here's a couple of recent examples the Guava authors have fixed. Fortunately they were in internals and not their public API, so users won't care.
https://code.google.com/p/guava-libraries/source/detail?r=7d... https://code.google.com/p/guava-libraries/source/detail?r=25...
Re:Java SE 8 Proposed Final Draft Specification — Draft 1
by laureny on Tuesday December 24, 2013 @10:17AM
(#6959650)
This happens for all languages and is not usually considered as "a language breaking backward compatibility", it's purely a library concern.
What is meant by "breaking backward compatibility" is when the grammar is altered in a way that makes existing sources no longer compile.