DEV Community

Discussion on: Prefix vs Postfix When Using Increment & Decrement Operators.

Collapse
 
elmuerte profile image
Michiel Hendriks

It has nothing to do with number of steps, or more efficient (although ++i is more efficient than i++ in non-optimizing compilers).

It is a simplicity principle. This principle is the foundation of a lot of other philosophies and theories. For example, in the UNIX philosophy "Make each program do one thing well.". Or the simple statement "less is more".

Constructions which require less cognitive effort are easier to work with, and therefor result in less mistakes. This article basically point this out. So, both constructions can be correct, but the one which requires less cognitive effort is more correct.

A simple example.

int i = 0
do {
    print "hello"
    i++
} while (i < 10)

Let's refactor that

int i = 0
do {
    print "hello"
} while (i++ < 10)

Guess what, now it's wrong.

Thread Thread
 
caleb_rudder profile image
Caleb Rudder

Adding in the simplicity principle makes a lot of sense. In your original comment I was confused by the correlation of less steps and how correct a function is.

"the one which requires less cognitive effort is more correct."

This statement is what really answered my question. Thanks for taking the time to explain! That actually helped me better understand the simplicity principle better.