¿Cuáles son las razones históricas por las que los lenguajes C tienen pre-incrementos y post-incrementos?

(Nota: no estoy preguntando sobre las definiciones de pre-incremento vs. post-incremento, o cómo se usan en C / C ++. Por lo tanto, no creo que esta sea una pregunta duplicada).

Los desarrolladores de C (Dennis Ritchie et al) crearon operadores de incremento y decremento por muy buenas razones. Lo que no entiendo es por qué decidieron crear la distinción de incrementos / decrementos previos a posteriores.

Mi sensación es que estos operadores fueron mucho más útiles cuando se estaba desarrollando C que hoy. La mayoría de los programadores de C / C ++ usan uno u otro, y los programadores de otros lenguajes encuentran hoy que la distinción es extraña y confusa (NB: esto se basa únicamente en evidencia anecdótica).

¿Por qué decidieron hacer esto y qué ha cambiado en la computación que esta distinción no es tan útil hoy?

Para el registro, la diferencia entre los dos se puede ver en el código C ++:

int x = 3;

cout << "x = 3; x++ == " << x++ << endl;
cout << "++x == " << ++x << endl;
cout << "x-- == " << x-- << endl;
cout << "--x == " << --x << endl;

dará como resultado

x++ == 3
++x == 5
x-- == 5
--x == 3

Respuestas a la pregunta(6)

Su respuesta a la pregunta