Tan simple como se requiera

Esta es la primera anotación en este blog.

En los lenguajes de programación que he aprendido, como Pascal, Java, Javascript, o PHP, las funciones y objetos permiten reutilizar ciertas soluciones.

También los patrones de programación son formas de reutilizar soluciones.

Las librerias, o bibliotecas, son colecciones de funciones y objetos. Los frameworks, son colecciones de patrones, que suelen usar a ciertas librerias.

Uno puede hacer más funciones y objetos y patrones para expresar la solución de manera más comprensible.

Sin embargo, lo que he observado en los proyectos donde he participado, es que simplemente usar funciones, objetos y patrones no es una garantía de menos complejidad, aunque sea esa la intención inicial.

Pienso que no es todavía muy claro cómo se deben usar las cosas para lograr más simplicidad.

No se trata de hacer simplemente menos código. Nombres de variables largos pero descriptivos son preferibles a nombres cortos y crípticos, o que requierean consultar un diccionario a cada rato. Aunque pueda resultar más largo, si el código es claro y simple, es preferible a las sofisticaciones enrevesadas.

Además, hay ciertos patrones que, a pesar de sus virtudes para organizar el trabajo, no son muy naturales de pensar. Por ejemplo, MVC (Modelo-Vista-Controlador) es un patrón que obliga a pensar cada solución en tres partes. No es que sea muy difícil. Es que no es muy natural y es una carga más a la hora de elaborar una solución. Es como pintar pensando solamente en colores primarios.

Me gustaría que hubiera maneras de implementar esquemas simples que oculten la complejidad tanto como se requiera.

Quizás hay un punto donde el ocultar la complejidad compromete la reutilización. Por ejemplo, la interface gráfica web, o de otra aplicación típica, no permite que un usuario pueda componer una nueva solución reutilizable. ¿Qué se necesitaría para que si lo permitieran?

Si yo he resuelto una manera de presentar en web un mensaje, que esa manera se pueda llamar más fácilmente la siguiente vez, y no tener que tender una y otra vez el mismo esquema como suele ser el modo actual.

¿Será que se podría resolver con gulp?, ¿será que se necesita usar alguna herramienta de meta programación?

Me pregunto si habrá algún lenguaje de programación que permita hacer ese escalamiento de manera natural. ¿Será Tcl?, ¿será algún lenguaje funcional?

Imagino que si la complejidad de programar se pudiera hacer tan simple como se requiriera, se podría llegar a una interfaz de programación simple aún para el común de las personas, que no son programadores profesionales.

Comentarios

Entradas más populares de este blog

Problemas vs Tareas

No pienses en un elefante rosa

La paradoja del elegir