2011-10-10 1 views
32

Vedo un sacco di potenziale nello sviluppo di Node.JS sulla JVM, con il suo runtime fortemente ottimizzato.Differenze tra Apache Deft, Webbit e Vert.x

In questo momento nel tempo, vedo tre progetti che hanno lo scopo di portare uno stile node.js-come sviluppo alla JVM:

Questi progetti devono collaborare? Quali sono i loro punti di forza e di debolezza relativi? Quale progetto ha il maggior slancio?

+4

Perché i voti "non costruttive"? Questo è un vero e proprio greenfield per lo spazio JVM e questi sembrano essere i tre progetti in fase iniziale. Mi sembra giusto scoprire le loro differenze. Non inteso per essere un'esca infuocata, e non preso come tale dalle persone coinvolte nel progetto come puoi vedere qui sotto. Rimuoverò la parte "vs" dal titolo –

+4

+1. Adoro il fatto che le uniche risposte provengano dai ragazzi reali che hanno realizzato i tre progetti in questione. –

risposta

28

Disclaimer: io sono il ragazzo Webbit

C'è sicuramente un sacco di sovrapposizione tra i 3 progetti. Quando ho creato Webbit non ero a conoscenza degli altri due - se lo fossi stato, potrebbe non esistere, o forse avrei passato il mio tempo a contribuire agli altri.

posso parlare un po 'di Webbit ...

Non è un framework IO evented multiuso. O toolkit del protocollo di rete. O astrazione del filesystem. Webbit fa solo una piccola parte di ciò che fanno gli altri.

Webbit non è un framework Web completo. Come Node.JS o l'API Servlet, fornisce gli elementi costitutivi fondamentali per la creazione di framework di livello superiore, ma lo lascia a progetti esterni (come Webbit-EasyRemote o Webbit-REST).

Ciò su cui Webbit si concentra è un server HTTP e WebSocket semplice, integrabile, non bloccante.

Poiché richiede l'approccio "fai una cosa e fallo bene", è stato progettato anche per essere utilizzato in combinazione con altre librerie. Permette di passare java.util.concurrent.Executors esterni ed evita i contesti dei thread singleton, rendendolo particolarmente adatto per l'integrazione con le librerie di concorency in stile Actor come Jetlang e HeySync.

Vert.x e Deft portano framework completi per lo sviluppo in stile Node immediato. Webbit è solo un piccolo strumento che può aiutare HTTP/WebSocket a abilitare la tua applicazione.C'è bisogno di entrambi e dipende in realtà dalle vostre esigenze (e dallo stile personale) su quale sia più appropriato.

+1

grazie per la tua risposta chiara –

+1

Continua il buon lavoro Joe – Schildmeijer

+1

Ultimo paragrafo inchiodato :) –

21

Disclaimer: Sono un committer Apache Deft.

Apache Deft ha più in comune con tornado e twistato rispetto a node.js, mentre vert.x è fortemente influenzato da node.js. Tim Fox di wmware sta facendo un ottimo lavoro con vert.x e la velocità di sviluppo è davvero impressionante.

vert.x ha un paio di disponibile. Alcuni Apache Deft examples. Apache Deft ha anche un più grande "demo application" che dovrebbe darti un'idea di come potresti usare il framework per cose diverse da http.

AFAIK webbit sta attualmente diventando un "server WebSocket e HTTP".

Se dovrebbero collaborare? Assolutamente :)

31

Disclosure - io sono il ragazzo vert.x :)

Vert.x è una piattaforma a tutti gli effetti per la costruzione poliglotta, scalabili, asincroni applicazioni web-enabled.

È fortemente ispirato da node.js ma va oltre a node.js e fornisce un bus di eventi distribuiti che arriva dal server direttamente nel lato client di JavaScript, creando così un modello semplicissimo per il cosiddetto "tempo reale" applicazioni Web. Forniamo anche un mailer e un persisto di mongodb. C'è un tutorial completo qui http://vertx.io/tutorials.html

Ma probabilmente la cosa principale che lo distingue dagli altri framework asincroni è la natura poliglotta. La stessa (o simile) API è disponibile in Java, Ruby, JavaScript e Groovy (con supporto Clojure, Python e Scala da seguire)

Vert.x sfrutta davvero il vero multi -creare su JVM per fornire scalabilità e prestazioni rispetto a node.js non può essere toccato.

Se non si desidera l'intera piattaforma. Vert.x può anche essere usato come libreria per fornire supporto HTTP, TCP, websockets, sockjs, eventbus, ecc. Nella tua applicazione Java o Groovy.

Per ulteriori informazioni visitare il sito Internet pls http://vertx.io