Ad esempio, un nuovo compilatore java potrebbe consentire una certa retrocompatibilità per consentire cose come l'overloading di tipi generici come:
void foo(List<String> arr);
void foo(List<Integer> arr);
O per consentire cose come i generici su tipi primitivi
void foo(List<int> arr);
Ora non sto suggerendo che si tratti di cambiamenti banali, o che tutti utilizzerebbero un simile compilatore, ma ero curioso di sapere perché non potevo trovare NESSUNA alternativa a javac. Anche se non hai mai modificato le specifiche bytecode, alcune di queste modifiche (e altre) potrebbero essere implementate esclusivamente in fase di compilazione. Se non altro, potrebbe consentire a un banco di prova di unire le modifiche alla linea principale in qualche modo (ho capito che cambiare la semantica del linguaggio significa che non è più "Java", ma chiamiamolo J ++ o qualcosa del genere).
Mi piace la prima mentalità di compatibilità con le versioni precedenti di Java, ma sono rimasto sorpreso dal fatto che questo non sia un approccio che le persone hanno adottato completamente nuovi linguaggi come Kotlin / Ceylon / etc.
C'è ancora qualcosa che impedisce che ciò accada?