[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