2010-03-31 9 views
6

Sviluppatore Java da molto tempo qui, ma ho trascorso più tempo a lavorare con Ruby negli ultimi 3 anni circa fino alle applicazioni web. Mi sono davvero divertito, ma ci sono preoccupazioni che ho scoperto che non parlerò qui.Quali sono le librerie e le utilità Java essenziali per un utente di lingua dinamica di ritorno?

Ora che ho trovato il Play! framework, sono entusiasta della prospettiva di avere un'esperienza simile a Rails con velocità e affidabilità di Java. A parte ciò che Play! fornisce out of the box, sto cercando consigli su librerie e strumenti "da non perdere" per lo sviluppatore Java utilizzato per esperienze pragmatiche e dinamiche. Ho trovato Project Lombok, che sembra un modo molto intrigante per eliminare un sacco di piastra della caldaia, rumore Java inutile. Cos'altro dovrei sapere? So che Google ha rilasciato diverse librerie negli ultimi tre anni che ho sentito menzionare su Java Posse, ma non riesco a ricordare esattamente cosa siano. Sono sicuro di aver perso altri in mia assenza.

Quindi, cosa costituisce la tua casella degli strumenti Java essenziale in questi giorni?

Grazie per le vostre risposte!

risposta

5

Direi che Guava è un MUST. Potresti anche voler dare un'occhiata a guice da google.

Se siete interessati alla programmazione multi-threaded, quindi java.util.concurrent è un must ...

+0

Questa è sicuramente una delle librerie che stavo cercando di ricordare. Grazie! – jbwiv

2

C'è stato un sacco di cose con i linguaggi che girano su Java Virtual Machine, sfruttare le librerie Java, e interoperare con Java, ma che sono più espressivi. Date un'occhiata a JRuby (che esegue Rails), Groovy (e allo stile di Rails Grails), Clojure, Jython (un'implementazione Python) e anche Javascript (consultate l'interprete di Rhino, scritto in Java).

Particolarmente interessante è Scala, fusione molto elegante di programmazione orientata agli oggetti e programmazione funzionale. Scala è quasi veloce come Java, ha la migliore interoperabilità con Java ed è molto espressivo. I programmi Scala possono essere molto più brevi dei programmi Java. Il framework Lift è paragonabile a Rails nel mondo di Scala.

+1

Sono molto familiare con JRuby e Groovy. Mi piacciono entrambi, ma Grails è semplicemente un impiallacciatura di Groovy su una serie complessa di progetti Java e i problemi di debug possono essere un incubo. Immagino che quello che sto chiedendo sia librerie e strumenti specifici di java. Ho fatto il linguaggio dinamico per un po 'di tempo ...ma sono pronto almeno a sperimentare con la tipizzazione statica e ancora java ;-) – jbwiv

+0

(Scala è tipizzato staticamente ma utilizza l'inferenza di tipo per far sembrare qualcosa di simile a un linguaggio dinamico.) –

+1

Sul fronte della biblioteca, dai un'occhiata a Google Collezioni (parte del progetto Guava @Zwei a cui punta). Sono stato davvero contento di iBatis (un gestore di persistenza) e di Restlet (un framework per il supporto di applicazioni Web e servizi Web RESTful). Sto anche utilizzando la libreria Jackson JSON di Google. –

1

Ho sempre un occhio su commons-lang. Un sacco di cose cattive è stato incapsulato nelle classi. Aiuta ad esempio a scrivere equals e hashcode. Sono paragonabile a projectlombok lo fa in fase di esecuzione tramite riflessione, ma con la possibilità di escludere attributi speciali.

Per la concorrenza è possibile dare un'occhiata a Akka, disponibile per Scala e Java. Non ho mai potuto provarlo, ma ho sentito una sessione su JAX a riguardo e sembra che sia buono.

0

Per rendere il mio software non Web "aperto" aggiungo sempre (aggiunto) Jetty e recentemente RESTEasy. Rende un'API "restfull" un gioco da ragazzi.

1

Oggi, ho trovato lambdaj che offre molte buone possibilità di groovy. Non ho alcuna esperienza con esso, ma penso che valga la pena dare un'occhiata più da vicino.