La regla de Stroustrup: explícito para principiantes, conciso para expertos

Fuentes: Stroustrup's Rule

La regla de Stroustrup, formulada por el creador de C++, sostiene que los principiantes necesitan sintaxis explícita y detallada, mientras que los expertos prefieren notación breve y tersa. El principio aparece en una retrospectiva sobre C++ del propio Bjarne Stroustrup: las características nuevas piden sintaxis ruidosa y explícita; cuando se consolidan, la comunidad demanda notación más compacta.

La dinámica se observa en Rust: cuando los option types eran novedad, manejar errores obligaba a un match explícito; al extenderse su uso, el lenguaje introdujo la macro try! y, después, el operador ? para abreviar el manejo de errores. Algo similar ocurrió en Python con el operador walrus (:=), defendido por expertos por su elegancia y rechazado por docentes y principiantes por su dificultad de aprendizaje. El fenómeno también se da con identificadores como user_id frente a user_identifier.

La regla opera tanto a nivel individual como comunitario: al inicio de un lenguaje, todos son principiantes; con el tiempo crece la proporción de expertos y la sintaxis tiende a comprimirse. Esto puede entorpecer el aprendizaje de los recién llegados.

En la enseñanza, el instructor debe luchar contra la regla. En TLA+, por ejemplo, definir que cada worker tenga un contador no negativo con una función conjunto ("counter ∈ [Workers -> Nat]") es elegante para expertos, pero pedagógicamente resultará más legible para principiantes la versión literal ("\A w ∈ Workers: counter[w] >= 0"). Elegir entre legibilidad para expertos y claridad para novatos es una tensión constante en el diseño y la docencia de lenguajes.