Сегодня встретился с интересным кодом на Scala:

protected def logDebug(msg: => String) {
    if (log.isDebugEnabled) log.debug(msg)
}

Подумал, что какие-то недалекие люди такое писали. Ведь всем известно, что

log.isDegubEnabled

Вызывается для того, чтобы умный JIT компилятор увидел, что это выражение всегда false и выпилил вызов

log.debug(msg)

И мы бы сэкономили кучу ресурсов на формировании сложного msg. Оказалось это я дурак и Scala поддерживает параметры по имени, о чем нам говорит => перед типом. И тогда значение параметра вычисляется не в момент вызова функции, а в момент использования. Это позволяет не только экономить ресурсы при выключенном дебаге, но и делать еще некоторые трюки, например реализовать функцию notIf, которая вычисляет значение выражение только если условие выполняется.

В Java такого нет, а в Clojure такое можно было бы реализовать с помощью макросов.