I don’t think there is a “preferred” language over all. Each individual will have their own preferences. All the supported languages have their own advantages and disadvantages and are more or less suited to various things.
Everything that is openHAB specific is actually Java. In Rules DSL when you call
MyItem is a Java Object,
sendCommand is a method on a Java Object, and
ON is a Java Enum.
All of the Java stuff that is part of the Java language is available and available at Overview (Java SE 11 & JDK 11 ). All of the Java classes that make up openHAB itself are available at https://www.openhab.org/javadoc/latest.