Una buena pregunta - Expresividad

> Hola tío saludos, ¿Qué significa que un lenguaje de programación sea expresivo?

¡Qué pregunta tan interesante, muy bien!

Opino que el lenguaje de programación puede tener mecanismos que ayudan a la expresividad, pero en realidad lo que puede ser expresivo son los programas particulares formulados con dicho lenguaje de programación. Es decir, el lenguaje por sí mismo no va a impedir que una persona escriba programas que equivalen a una piedra con jeroglíficos. Recuerda que cuando hablamos de un lenguaje de programación, estamos hablando de una notación para comunicar lógica computacional precisa. Para "comunicar", es la palabra clave aquí.

Así como con los lenguajes o idiomas naturales como Español o Inglés, con el mismo lenguaje se puede escribir una obra maestra de la literatura y también se puede escribir un texto mal redactado, con faltas de ortografía, sin claridad y sin orden. ¿Qué es lo expresivo? ¿El idioma español? ¿O el texto en cuestión escrito en idioma español? Igualmente con los programas para computadora y los lenguajes de programación en los que son escritos estos.

La expresividad es algo muy importante en diseño de software, significa que el autor y escritor del texto fuente (también conocido como 'código fuente') del software se asegura que -en la manera de lo posible- todas sus intenciones y todas sus ideas al respecto del software queden claramente manifestadas o sugeridas en el texto fuente mismo y no en documentos aparte. La documentación suplementaria es, precisamente eso, secundaria y ésta debe ser breve y concisa.

La razón por la cual la expresividad es tan importante en diseño de software es que un buen diseñador sabe que escribe el software para que sea legible (que se pueda leer y entender), no sólo por compiladores, sino -y más importante- que pueda ser entendible para otros profesionales del diseño de software (inclusive él mismo) que harán cambios al software o simplemente necesitan entender su comportamiento y sus funciones, meses o años más adelante.

Para lograr la expresividad escrita en los textos técnicos* donde queda formulado el diseño de software, así como ocurre con la expresividad escrita usando Español o Inglés, se requiere un conocimiento profundo del lenguaje y una destreza en su uso para poder manifestar clara y explícitamente todas las ideas y las decisiones de diseño relevantes.

*estos textos técnicos también son popularmente conocidos como 'código fuente'

Los grandes maestros del diseño de software han insistido desde hace muchos años en la importancia que la elegancia, el estilo y la simplicidad tienen en la destreza para diseñar software.

¿Me expliqué?