scripting-language - significado - scripting traduccion
¿Cuándo usar un lenguaje de scripting? (10)
¿Cuándo se debe usar un lenguaje de scripting sobre un lenguaje compilado más detallado como C ++? C # o Java?
Y para hacer la pregunta un poco más interesante, respondamos las preguntas de esta manera:
Deberías usar un lenguaje de scripting cuando ... BLANK ...
Cuando necesita un lenguaje de script de uso X.
Cuando necesite B, use el lenguaje de scripts Y.
Cuando necesite C, use el lenguaje de scripts Z.
Agregar un lenguaje de scripts como un componente de un sistema compilado más grande es un patrón común: la parte compilada del sistema está optimizada para la velocidad de ejecución, pero es más difícil de modificar (porque debe ser compilada y recargada), mientras que la parte del script de el sistema está optimizado para la flexibilidad, se ejecutará más lento, pero puede ser modificado rápida y fácilmente por cualquier persona con un editor de texto.
Utilizarías este patrón si quisieras personalizar parte de la funcionalidad de tu aplicación.
Aquí está mi jerarquía:
Pruébalo usando grep.
Si no puedes hacerlo con grep, usa sed.
Si sed no es lo suficientemente potente, usa awk.
Si awk no es lo suficientemente potente (o comienza a ponerse realmente desagradable), use C, C ++ u otro lenguaje de programación de propósito general completo de su elección.
Tenga en cuenta que no existe un "lenguaje de guiones" entre awk y C. Eso es a propósito.
Debe usar un lenguaje de scripting cuando la velocidad de desarrollo es más importante que la velocidad de ejecución.
Encuentro que los lenguajes de script son muy útiles, obviamente, cuando hay una tarea específica que se adapta a las fortalezas del lenguaje (es decir, el procesamiento de cadenas con perl, desarrollo web con ruby o cualquier otra cosa). En particular, los lenguajes de scripting de desarrollo web tienen la propiedad de mostrarle los resultados de los cambios de código más rápidamente.
Hay algunos casos en los que mezcla idiomas compilados con lenguajes con guiones, como en algunos juegos. Es útil hacerlo cuando se puede expresar una menor cantidad de comportamiento más rápido, más limpio y más simple en un lenguaje de scripting que en el lenguaje compilado. C ++, por ejemplo, es un lenguaje muy expresivo, pero sus costos de desarrollo son más altos que, por ejemplo, lua.
Este es un problema ligeramente religioso. Uso un lenguaje de scripting para tareas ad-hoc, tales como:
- buscando un artículo específico en un registro de diez mil líneas
- Generando un gráfico de rendimiento
- Reducción de datos: transformar un archivo de texto en un formato necesario
- Obtener un subconjunto específico de datos de una base de datos y empaquetarlo como un archivo de texto
Todo esto también se puede hacer en un lenguaje compilado, pero para mí es más rápido y más fácil hacerlo en un lenguaje de scripting (yo uso ruby, pero PERL y python están bien).
No creo que haya una regla general sobre cuándo usar un lenguaje de scripting. Los lenguajes de scripting son fáciles de desarrollar, pero a veces son difíciles de mantener, especialmente cuando el script debe ejecutarse bajo diferentes plataformas (sistemas operativos).
Los pros de los lenguajes de script son, por supuesto:
- Puede darle al usuario (o cliente) la posibilidad de cambiar algo en su secuencia de comandos por sí mismo.
- Es fácil de desarrollar: la mayoría de los lenguajes de scripting no son seguros para el tipo, lo que hace que sea mucho más fácil desarrollarlo en aplicaciones pequeñas, por supuesto.
- Pero - es plataforma independiente ...
Los contras son:
- Es de código abierto: todos pueden ver su código y pueden usar su conocimiento en sus propios productos de competencia ...
- Lentamente en tiempo de ejecución ...
Tiendo a usar lenguajes de scripting para prototipos rápidos, experimentación y disputa de datos. Por ejemplo, si tengo un montón de archivos de texto que necesito preprocesar y compilar en accesorios de base de datos como una operación única, generalmente lo guiaré.
Sin embargo, en estos días, la línea entre ''scripting'' y ''compiled'' se está volviendo borrosa, con idiomas como groovy y ruby. Para la tarea mencionada anteriormente, usaré ruby pero luego también lo usaré para construir una aplicación web de producción con rieles. Escribiré aplicaciones de escritorio en Java, pero Groovy también me permite combinar guiones. Incluso al escribir en C / C ++, encontré un patrón útil para incrustar un lenguaje de scripting específico del dominio (por ejemplo, tcl, aunque no me gusta mucho ese lenguaje).
La elección real del lenguaje es una opción religiosa, aunque hay algunas concesiones que son obvias (por ejemplo, la legibilidad es útil, pero es demasiado fácil escribir secuencias de comandos crípticas). De alguna manera, es un "solo escritura". idioma :-). En el pasado he usado bash + awk + sed, algunos perl, ruby, etc ... Para tareas únicas, es principalmente una cuestión de lo que usted y el resto de su equipo se sienten cómodos. Hago una elección consciente de usar ruby en estos días, incluso si fuera algo más rápido haciendo lo mismo en bash / awk / sed, pero esto es solo para mejorar mis habilidades de rubí realizando tantas tareas como sea posible en él.
Utilice un lenguaje de scripting cuando la operación interactiva es importante, por ejemplo, un shell de línea de comandos, o si está exportando funcionalidades para que otros usuarios las usen en operaciones simples. (No deberían tener que compilar; las secuencias de comandos son suficientes)
Utilizo el lenguaje de scripts para extraer datos y alimentarlos a la base de datos como un trabajo de cron. Es más fácil porque puedo configurarlos fácilmente usando el programador de Windows o crontab en Unix y me resulta más fácil escribir debido a algunas características clave como la expresión regular en Perl.
Además de los millones de módulos que están disponibles para mí desde CPAN ...
Lenguaje de scripts si planea escribir una vez o mantenerlo simple. Un lenguaje fuertemente tipado es mucho mejor una vez que su proyecto se vuelve más grande. Piénselo, cuánto tiempo se gasta en un proyecto grande con desarrollo inicial versus integración y mantenimiento. ¿Prefiere mantener un gran conjunto de scripts o un lenguaje fuertemente tipado que obligue a sus tipos a comportarse?