2010-07-16 12 views
5

Me gustaría desarrollar algunas aplicaciones para JVM usando un lenguaje conciso y dinámico. Las opciones más populares para esto parecen ser Jython, JRuby, Groovy, y tal vez Clojure.¿Por qué no Rhino para aplicaciones JVM?

Rhino parece ser rápido y muy estable, pero no veo ningún libro sobre desarrollo de Rhino y poca discusión. ¿Por qué hay aparentemente poco uso de JavaScript para otras secuencias de comandos integradas?

Editar: He encontrado this pregunta informativa sobre la viabilidad del desarrollo basado en Rhino.

Respuesta

5

He usado Rhino como parte de un intérprete VoiceXML de calidad de producción escrito en Java y ejecutándose en la JVM. Funciona extremadamente bien para este propósito. Si volviera a implementar este intérprete desde cero, me habría inclinado por hacer aún más de mi desarrollo en JavaScript. Entonces definitivamente es una opción. Necesitará explorar qué tan maduras son las bibliotecas de su área de aplicación (siempre puede escribir lógica que emite llamadas de JavaScript a las bibliotecas de Java, pero eso puede ser demasiado laborioso).

Pero también estoy de acuerdo con @Peter Recore: dale a los otros lenguajes de JVM una segunda mirada. Estoy impresionado con el lenguaje Scala funcional del objeto: su rendimiento es casi tan bueno como Java, y tiene mucho poder expresivo.

Actualización: Los buenos libros para leer en JavaScript son: JavaScript: The Definitive Guide y JavaScript: The Good Parts. La única cosa específica de Rhino que necesitarás es here.

3

nunca he utilizado Rhino así que no puedo ofrecer razones técnicas, sino como un programador genérico, que puede ofrecer una teoría de la psicología popular:

Para la mayor parte de su vida, Javascript se encuentra estrictamente un lado del cliente idioma, al menos en la cabeza de las personas. Peor aún, parecía como una mierda, porque siempre había problemas en las páginas web con javascript. Estos problemas no eran necesariamente la culpa del idioma tanto como la forma en que los navegadores lo implementaron, cómo organizaron el dominio, y lo que pudimos acceder a través de JavaScript. Pero en nuestras cabezas empezamos a pensar "javascript tiene problemas" o incluso solo "JavaScript está limitado en lo que puede hacer".

Así que a pesar de la magia de alto nivel que algunas personas pueden hacer, muchos de nosotros pensamos en JavaScript como un lenguaje de juguete, desde nuestros primeros recuerdos de la web donde todo lo que podía hacer era cambiar la imagen en un rollover .

Finalmente, para que un idioma sea popular (especialmente cuando no cuenta con un gran patrocinador corporativo) necesita tener un beneficio tangible sobre los existentes. Ya hay muchos lenguajes, marcos y tiempos de ejecución del lado del servidor que compiten por la atención de las personas. ¿Qué tiene de especial JavaScript para que las personas dejen de lado sus inversiones en tecnología X que ya usan? (eso no es una excavación en js, solo algo para pensar)

+0

también, ¿ha considerado scala? No es dinámico en un sentido estricto, pero de todos modos le ofrece la mayoría de los beneficios de un lenguaje dinámico. –

+0

Me gusta crear prototipos con Lua. La semántica de JavaScript está lo suficientemente cerca como para darme agradables miradas. – user287424

Cuestiones relacionadas