¿Sobramos los Programadores?
¿Se puede programar sin programadores? ¿Sobramos los programadores? La respuesta es sencilla. Y está en este artículo.
por Juanjo Navarro, 27 junio 05
Hace tiempo corrió por la Internet hispana la noticia de que una empresa española había desarrollado un software que permitía crear programas sin necesidad de programadores, sin necesidad de tirar una sola línea de código.
Todos los ingredientes espectaculares estaban allí: ¡Una empresa había solucionado la crisis del software! ¡Y Española! Naturalmente la noticia saltó a los mass media (prensa, televisión).
En aquella ocasión, el diario El País publicó un artículo que firmaba Adolfo Estadella. Adolfo se puso en contacto conmigo para que le diese mi opinión sobre el tema. En el artículo salía publicado:
Juanjo Navarro, que lleva 15 años programando, se muestra escéptico con este tipo de sistemas, aunque reconoce que ayudan al programador, “pero desde luego no eliminan su necesidad”.
En el desarrollo de software un diseñador realiza el diseño de alto nivel del programa y un programador toma este diseño de alto nivel y lo convierte en código fuente de un lenguaje de programación. Lo importante aquí es que ese diseño de alto nivel no es completo en absoluto y por su propia naturaleza está lleno de ambigüedades. Estas ambigüedades deben ser resueltas por el programador al convertirlo en código fuente de un lenguaje de programación. Un diseñador hace un caso de uso en el que se ve un muñegote que representa al usuario eligiendo items y comprando:
Y un programador coge ese dibujo y lo convierte en 2.000 líneas de código.
Por lo tanto: ¿Se puede programar sin programadores? ¿Sobramos los programadores? La respuesta es sencilla: “Sí, haciendo que el diseñador resuelva todas las ambigüedades en su diseño conceptual”. Claro que entonces se seguirá programando, es sólo que entonces le llamaremos “diseñar”. Pero el trabajo seguirá siendo el mismo: especificar hasta el último punto a un ordenador lo que tiene que hacer.
Volviendo sobre el caso de aquella empresa que decía al principio del artículo, ¿alguien ha oído algo más sobre dicha empresa? ¿cuantos programas creados con aquel software utilizáis a diario? Estoy seguro de que el software de dicha empresa tiene un cierto valor para los programadores. Conozco a la persona al mando de dicho software, Oscar Pastor, profesor de la Universidad de Valencia y alguien muy serio y con una gran formación científica y técnica. Es sólo que lo que se anunciaba entonces, la programación sin programación, es imposible. Lo único que se puede hacer es llevar más atrás en el ciclo de desarrollo del software la especificación detallada del algoritmo y esperar que ello aumenté la productividad del programador. Y francamente, reto a cualquiera a intentar realizar la especificación de un algoritmo (por ejemplo, el algoritmo de ordenación de la burbuja) mediante UML en menos tiempo del que un programador lo hace en su lenguaje favorito.
Para determinadas tareas, la programación es ya la forma más óptima de trabajo.
27 junio 2005, 09:12
De acuerdo con que un programa no podrá hacer nunca todo el trabajo que hace un programador, pero muchas de las cosas que hoy hace un programador se pueden automatizar. Cualquiera que lleve programando un tiempo es consciente de la cantidad de trabajo repetitivo que se hace.
Esta automatización es posible a partir de una descripción hecha a un nivel más alto de abstracción (con UML y/o otros lenguajes). Y esto tiene muchas ventajas no es sólo cuestion de tiempo (en java lo hago más rápido que en UML, ..., quizás sea porque trabajas normalmente en java, y además piensas en java), las ventajas de todo esto son: reutilización, independencia de la tecnología (lenguaje, SO, ..), facilidad de mantenimiento, portabilidad, costes, ...
Queda mucho por hacer en esto, pero échale un vistazo a MDA, la propuesta de OMG.
Los programadores no van a desparecer, pero creo que llegarán herramientas que cambiarán mucho la forma de desarrollar software. Menos picar código y más análisis y diseño.