2009-03-18 18 views

Respuesta

4

Mi favorito es Jython, y lo uso al incrustar un intérprete Jython en mi aplicación Java. Se está utilizando en proyectos comerciales, y permite personalizar fácilmente la aplicación de acuerdo con las necesidades de los clientes sin tener que compilar nada. Simplemente envíeles el guión, y eso es todo. Algunos clientes incluso pueden personalizar su aplicación ellos mismos.

3

Prefiero Scala, pero no puedo decir, todavía estoy aprendiendo. Por el momento, usa Groovy para escribir pequeños programas de utilidad. No he intentado ni siquiera Groovy en Grails. También escuché mucho sobre Lift Framework for Scala.

+0

Yo era un fanático de Scala por un tiempo (no como un insulto, está dirigido a mí mismo, no a ti) pero me encontré molesto por su pedantería con respecto a los tipos y su sintaxis algo compleja. Se siente como un idioma con demasiados fregaderos de cocina atornillados. Encontré a Clojure más cómodo. Por supuesto, el kilometraje de todos puede variar. –

3

JavaScript Rhino tiene una ventaja convincente: es included with the JDK. Dicho esto, las versiones posteriores de Rhino que la que tiene Java 6 tienen características agradables como generators, array comprehensions, and destructuring assignment.

Estoy a favor de usarlo cada vez que la ceremonia de manejo de excepciones Java desordenar el código para ningún beneficio real. También lo uso cuando quiero escribir un script simple de línea de comandos que aproveche las bibliotecas de Java.

4

He utilizado con éxito Groovy en un proyecto comercial. Yo prefiero los lenguajes de script, debido a la tipificación de pato y cierres:

def results = [] 
def min = 5 
db.select(sql) { row -> 
    if (row.value > min) 
     results << row; 
} 

Traducción: Ejecutar una consulta SQL en la base de datos y añadir todas las filas en la columna "Valor" es mayor que "min" a "número". Tenga en cuenta la facilidad con que puede pasar datos al "bucle" interno o obtener resultados de él. Y sí, soy consciente de que podía lograr el mismo con SQL:

def results = [] 
def min = 5 
db.select(sql, min) { row -> 
    results << row; 
} 

(solo imaginar que la cadena en "SQL" tiene una en el lugar correcto "?").

En mi humilde opinión, utilizar una base de datos con un lenguaje que no ofrece operaciones de listas enriquecidas (ordenar, filtrar, transformar) y cierres solo sirve como un ejemplo de cómo no debe hacerlo.

Me encantaría usar Jython más, pero el trabajo en Jython 2.5 ha comenzado recientemente y Python 2.2 es demasiado viejo para mis propósitos.

+0

No solo podría lograr lo mismo con SQL, sería más eficiente y fácil de leer si lo hiciera ... –

+1

... y no tendría un ejemplo simple que encajaría en cinco líneas y que todos aquí podrían Comprende sin 10 líneas de explicación. Tenga en cuenta la intención, señor. –

3

Java. Seriamente. Es un lenguaje poderoso, fácil de usar (si es un poco prolijo) que todos conocen. La integración con Java es genial.

1

La empresa para la que trabajo incorpora a Groovy en un sitio web Java/Spring, que se implementa en una serie de sitios. Los scripts se almacenan externamente del archivo WAR compilado y nos permiten manipular parte de la lógica del sitio sin tener que desplegar nuevas WAR en cada sitio. Hasta ahora, este enfoque ha funcionado muy elegantemente para nosotros.

Una característica especialmente buena de Groovy es que se asemeja mucho al código de Java, lo que hace que sea muy fácil transferirle las clases de Java existentes.

1

¿Qué hay de SISC (Segundo Intepreter del código del esquema)?

REF: http://sisc-scheme.org/

+0

+1 para señalar este idioma. Se ve muy bien, especialmente si eres un especialista veterano en Scheme que no está dispuesto a cambiar a Clojure. –

6

Para mí, Clojure gana sin esfuerzo.Siendo un Lisp, es conciso y tipado dinámicamente, tiene un enorme poder expresivo, así que puedo escribir muchas funcionalidades en pocas líneas. Y su integración con Java es insuperable. –. Bromeo solo parcialmente cuando digo que Clojure es más compatible con Java que con Java. Como resultado, toda la gama de bibliotecas de Java, tanto del JDK como de terceros, es totalmente utilizable.

Finalmente, con un poco de cuidado, el código de Clojure puede ser tan rápido como el código de Java, por lo que ni siquiera estoy perdiendo rendimiento.

+2

+1 - como Stuart Halloway ha señalado: Clojure es una mejor Java que Java. – wlangstroth

Cuestiones relacionadas