2010-03-31 13 views
6

Desarrollador de Java a largo plazo aquí, pero he pasado más tiempo trabajando con Ruby en los últimos 3 años más o menos en lo que respecta a las aplicaciones web. Realmente lo he disfrutado, pero hay preocupaciones que he descubierto que no cubriré aquí.¿Cuáles son las bibliotecas y utilidades esenciales de Java para un usuario de lenguaje dinámico recurrente?

Ahora que encontré el Play! framework, estoy encantado con la posibilidad de tener una experiencia similar a la de Rails con la velocidad y confiabilidad de Java. ¡Aparte de lo que Juega! proporciona de inmediato, estoy buscando recomendaciones sobre las bibliotecas y herramientas "no se puede perder" para el desarrollador de Java utilizado para experiencias pragmáticas y dinámicas. He encontrado Project Lombok, que parece una forma muy intrigante de eliminar gran parte de la placa de la caldera, ruido innecesario de Java. ¿Qué más debería saber? Sé que Google ha lanzado bastantes bibliotecas en los últimos tres años que he oído mencionar en Java Posse, pero no recuerdo exactamente cuáles son. Estoy seguro de haber extrañado a otros en mi ausencia.

Por lo tanto, lo que constituye su caja de herramientas esenciales de Java en estos días?

Gracias por sus respuestas!

Respuesta

5

diría Guava es una necesidad. También es posible que desee comprobar guice por google.

Si usted está interesado en la programación multi-hilo, a continuación, java.util.concurrent es una necesidad ...

+0

Esa es definitivamente una de las bibliotecas que estaba tratando de recordar. ¡Gracias! – jbwiv

2

Ha habido mucho que hacer con los idiomas que se ejecutan en la máquina virtual de Java, aprovechar las bibliotecas de Java, e interoperabilidad con los Java, pero que son más expresivos. Eche un vistazo a JRuby (que ejecuta Rails), Groovy (y los Rails-like Grails), Clojure, Jython (una implementación de Python) e incluso Javascript (consulte el intérprete de Rhino, escrito en Java).

Particularmente interesante es Scala, muy elegante fusión de la programación orientada a objetos y la programación funcional. Scala es casi tan rápido como Java, tiene la mejor interoperabilidad con Java y es muy expresivo. Los programas Scala pueden ser mucho más cortos que los programas Java. El marco Lift es comparable a Rails en el mundo de Scala.

+1

Estoy muy familiarizado con JRuby y Groovy. Me gustan los dos, pero Grails es simplemente una chapa de Groovy sobre un complejo conjunto de proyectos de Java, y los problemas de depuración pueden ser una pesadilla. Supongo que lo que estoy pidiendo son bibliotecas y herramientas específicas de Java. He hecho el lenguaje dinámico por un tiempo ...pero estoy listo para al menos experimentar con el tipado estático y java nuevamente ;-) – jbwiv

+0

(Scala está tipado estáticamente, pero usa la inferencia de tipo para que se sienta como un lenguaje dinámico.) –

+1

En el frente de la biblioteca, eche un vistazo a Google Colecciones (parte del proyecto Guava @Zwei señalado). Estuve muy contento con iBatis (un administrador de persistencia) y Restlet (un marco para soportar aplicaciones web RESTful y servicios web). También estoy usando la biblioteca Jackson JSON de Google. –

1

siempre tengo un ojo puesto en commons-lang. Una gran cantidad de cosas desagradables fueron encapsuladas en las clases. Por ejemplo, ayuda a escribir equals y hashcode. Estoy en comparación con projectlombok, lo hace en tiempo de ejecución a través de la reflexión, pero con la posibilidad de excluir atributos especiales.

para la concurrencia que podría tener una mirada en Akka, que está disponible para la Scala y Java. Nunca pude probarlo, pero escuché una sesión sobre JAX al respecto y parece ser bueno.

0

Para hacer que mi software no web "abierto" siempre agregue (embeeded) Jetty y recientemente RESTEasy. Hace que una API "restfull" sea un juego de niños.

1

Hoy en día, me encontré con lambdaj que le da un montón de buenas posibilidades maravilloso parecidos. No tengo ninguna experiencia con eso, pero creo que vale la pena echarle un vistazo más de cerca.

Cuestiones relacionadas