Indeed. While it’s written today as a description of what is current, it is also meant to prescribe the behavior in the future. The outcome is that we won’t break in the future what works today. Ultimately that’s what we want.
2 Likes
Maybe the distinction @MateuszKowalewski had in mind is that usually specifications are intended to allow other people to create compatible implementations. (I guess the Java specification is to JVMs as interfaces are to implementing classes…)
That’s technically true, but I think most developers (not JVM/compiler/IDE implementers) think of the spec as where you go when the regular documentation has some normal natural-language ambiguities and you want to know precisely how it’s supposed to behave in some corner case.
1 Like