2008-09-10 11 views
5

Soy un programador de Java y me gusta mi compilador, las herramientas de análisis estático y los marcos de prueba de unidades como herramientas que me ayudan a entregar rápidamente un código robusto y eficiente. El JRE es más o menos en todas partes donde trabajaría, también.¿Debo elegir secuencias de comandos o código compilado para tareas pequeñas?

Teniendo en cuenta esta situación, no veo una razón por la que alguna vez elegiría utilizar scripts de shell, vb scripting, etc., no importa cuán pequeña sea la tarea si uso uno de mis otros sombreros como mi sysadmin negro fedora .

No uso los otros sombreros con demasiada frecuencia, ¿bajo qué circunstancias debo elegir escribir código sobre el código compilado?

+0

Mmmm ... blub ..... – jrockway

Respuesta

2

Lo que usted cree que será más eficiente para usted!

Tenía un compañero de trabajo que parecía usar un idioma diferente para cada tarea; Perl para el procesamiento de texto rápido, PHP para pequeñas aplicaciones web internas, .NET para nuestro producto principal, cygwin para cosas del sistema de archivos. Él prefirió usar la tecnología que era más específica para la tarea en cuestión.

Personalmente, encuentro que el cambio de contexto entre tecnologías es doloroso. Mi trabajo diario está en .NET, así que son más o menos los términos en los que pienso.Para la mayoría de las tareas, creo que es más eficiente eliminar algo en C# usando SnippetCompiler que hacerlo en PowerShell o en un entorno de scripting.

1

Yo diría que tiene sentido. Si va a llevar más tiempo abrir su IDE, compilar el script, etc., de lo que sería editar un archivo de script y terminarlo, entonces use el archivo de script. Si no va a cambiar la cosa a menudo y es más rápido en la codificación Java, vaya por esa ruta :)

2

Si se siente cómodo con Java, y el JRE está en todas partes donde trabaja, entonces yo diría que lo siga usando . Sin embargo, hay idiomas como Perl y Python que son particularmente adecuados para resolver problemas rápidamente. Sugeriría aprender Perl o Python, y luego usar su juicio sobre cuándo usarlo.

1

Suele ser más rápido escribir scripts que programas compilados. No tiene que preocuparse demasiado por la portabilidad entre diferentes plataformas y entornos. Un script de shell se ejecutará prácticamente en todas partes en la mayoría de las plataformas. Debido a que eres un desarrollador de Java y mencionas que tienes Java en todas partes, puedes mirar groovy (http://groovy.codehaus.org/). Es un lenguaje de scripting escrito en Java con la capacidad de usar bibliotecas de Java.

1

De la forma en que lo veo (otros no están de acuerdo) todo su código necesita ser mantenible. La colección más pequeña de código útil es la que mantiene una sola persona. Incluso eso se beneficia del lenguaje y las herramientas que mencionaste.

Sin embargo, es posible que haya tareas en las que los idiomas especializados sean más ventajosos que un único lenguaje de propósito general.

2

Si tengo un pequeño problema que me gustaría resolver rápidamente, tiendo a usar un lenguaje de scripting. El impuesto del código es más pequeño y, al menos para mí, el resultado es más rápido.

1

Si puede escribirlo más rápido en Java, entonces hágalo.

Simplemente intente y tenga en cuenta lo que pueden hacer los distintos lenguajes de scripting.

p. Ej. No hagas una aplicación Java completa cuando puedas hacer lo mismo con un bash one-liner.

0

ponderar la importancia de la herramienta contra apareciendo un editor de texto abierto para una edición rápida vs IDE de apertura, recompilar, redistribución, etc.

0

Por supuesto, la principal directriz debe ser "usar lo que sea que te sientas cómodo". Si Java está haciendo el trabajo bien y a tiempo, mantenlo. Pero muchos de los lenguajes de scripting podrían ahorrarle algo de tiempo porque están en sintonía con diferentes problemas. Si está utilizando expresiones regulares, los lenguajes de scripting son una buena opción. Si está recurriendo a comandos de shell, los scripts son agradables.

Tiendo a usar scripts de Ruby cada vez que escribo algo que es pequeño, porque es rápido de escribir, fácil de mantener y (con gemas) fácil de agregar funcionalidad adicional sin necesidad de utilizar JAR ni nada. Tu kilometraje variará, por supuesto.

0

Al final del día, esta es una pregunta que solo usted puede responder por sí mismo. Basado en el hecho de que dijiste "No puedo ver una razón por la que alguna vez elegiría usar scripts de shell, ..." entonces es probable que nunca lo elijas en este momento.

Pero si fuera usted elegiría un lenguaje de scripting como python, ruby ​​o perl y comenzaría a tratar de resolver algunos de estos pequeños problemas con este lenguaje. Con el tiempo, comenzará a tener una idea de cuándo es más apropiado escribir un guión rápido que construir una solución completa.

0

Uso los lenguajes de script para escribir programas que no se espera que se mantengan más allá de algunas ejecuciones. La mayoría de estos idiomas son livianos en sintaxis de placa de caldera y tienen REPL. Ambas características permiten el prototipado rápido.

Dado que ya conoce Java, puede probar los lenguajes JVM como Groovy, JRuby, BeanShell, etc. Scala tiene una sintaxis mucho más ligera que Java, tiene un REPL, está tipado estáticamente y se ejecuta en la JVM; podría darle una oportunidad también.

Cuestiones relacionadas