I never got around to formally describe it, but I had this idea how we could formalize these concepts like readability or programming effort.
We can think of each function (those make up our program) as a channel in information theory - input values are input symbols and output values are output symbols. Our "not understanding" of what the function does is modeled as the noisiness of the channel, so the higher the understanding, the higher the information gain between inputs and outputs of the function.
But I never got around to compose the channels and their associated entropies, which would be the goal of this formalization.
We can think of each function (those make up our program) as a channel in information theory - input values are input symbols and output values are output symbols. Our "not understanding" of what the function does is modeled as the noisiness of the channel, so the higher the understanding, the higher the information gain between inputs and outputs of the function.
But I never got around to compose the channels and their associated entropies, which would be the goal of this formalization.