  Well structured and readable source code is a pre-requisite for maintainable
software and successful collaboration among developers. Static analysis enables
the automated extraction of code complexity and readability metrics which can
be leveraged to highlight potential improvements in code to both attain
software of high quality and reinforce good practices for developers as an
educational tool. This assumes reliable readability metrics which are not
trivial to obtain since code readability is somewhat subjective. Recent
research has resulted in increasingly sophisticated models for predicting
readability as perceived by humans primarily with a procedural and object
oriented focus, while functional and declarative languages and language
extensions advance as they often are said to lead to more concise and readable
code. In this paper, we investigate whether the existing complexity and
readability metrics reflect that wisdom or whether the notion of readability
and its constituents requires overhaul in the light of programming language
changes. We therefore compare traditional object oriented and reactive
programming in terms of code complexity and readability in a case study.
Reactive programming is claimed to increase code quality but few studies have
substantiated these claims empirically. We refactored an object oriented open
source project into a reactive candidate and compare readability with the
original using cyclomatic complexity and two state-of-the-art readability
metrics. More elaborate investigations are required, but our findings suggest
that both cyclomatic complexity and readability decrease significantly at the
same time in the reactive candidate, which seems counter-intuitive. We
exemplify and substantiate why readability metrics may require adjustment to
better suit popular programming styles other than imperative and
object-oriented to better match human expectations.
