I have been reading the source code of some Java library classes, specifically CompletableFuture
. I noticed that the authors are making extensive use of cryptic (single-letter) variables in the code, which makes the code arguably unreadable and difficult to track.
Is there a specific reason/rationale behind this approach ? (since the official Java naming conventions suggest semantically-rich variables naming, avoiding single letter variables, except in specific contexts, such as for loops)
I found this related question, but I think it's not a duplicate, since I am talking about the standard libraries of Java (not snippets or tutorials), which should ideally be optimal in terms of maintainability and readability.
I also think that answers to these questions are not highly opinion-based, because they have to be backed up with data in order to be solid. For instance, @Jorg's answer below is backed up by a very thorough explanation, showing how single-letter variables might be part of the domain model and instead be intent-revealing to experienced engineers (especially for non-public, internal components).