[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [mindfood] Sobre Bash
Hola Jose,
Por lo que conozco, tienes razón en que los scripts suelen estar mucho menos
estructurados que el código de más alto nivel. Quizá tenga que ver con que
los lenguajes empleados son menos potentes que sus hermanos mayores y no
facilitan algunas buenas prácticas como la modularización, gestión de
excepciones, etc. Aunque creo que tiene más que ver con que los scripts, que
se suelen destinar a tareas de mantenimiento, despliegue, etc. tienden a
considerarse mucho menos importantes que el resto de aplicaciones de la
empresa y se les presta menos atención.
Por lo que a mi respecta, que no estoy muy puesto en shell scripting, cada vez
que me enfrento con la tarea de escribir un shell script tengo que partir de
los últimos scripts que haya realizado y tener muy a mano una buena
referencia (en mi caso "Classic Shell Scripting" [1]). Seguro que a mucha
gente como yo, nos vendría muy bien una iniciativa como la tuya, para tener
un buen punto de partida y conseguir a la vez un poco de orden en todos
nuestros scripts. Por lo tanto, te animo a que hagas público el proyecto.
No conozco ningún otro proyecto público con objetivos similares. Supongo que
lo habitual es que cada empresa acabe desarrollando internamente sus propias
soluciones.
Como dices, cuando las necesidades se hacen más complejas, lo habitual es
reescribir los scripts con un lenguaje de más alto nivel. Creo que
actualmente, entre estos dos extremos, cabe una solución intermedia para
aprovechar la potencia de un lenguaje de más alto nivel y la agilidad del
scripting. La solución consistiría en utilizar alguno de los muchos lenguajes
dinámicos tan de moda últimamente. En particular, estoy pensando en Groovy
[2], que permite escribir scripts que pueden invocarse desde la shell de UNIX
(usando como primera línea del script "#!/usr/bin/env groovy") y que ponen a
nuestra disposición toda la librería Java y la infinidad de proyectos open
source de su comunidad, además de un lenguaje (en mi opinión) más expresivo y
potente que Java (closures, tipos dinámicos, metaobject protocol, etc.).
De esta forma se pueden escribir en pocas líneas scripts muy potentes, capaces
de hacer cosas muy difíciles en un shell script, como conectarse a una base
de datos [3] o generar informes PDF [4].
[1] http://www.amazon.com/exec/obidos/ASIN/0596005954
[2] http://groovy.codehaus.org/
[3] http://groovy.org.es/home/story/109
[4]
http://groovy.org.es/home/story/coacutemo-generar-pdf-desde-un-script-de-shell-usando-groovy
Rafa