CloudFoundry: Java, Ruby o Nodo.js?
Mi è capitato di conoscere il nuovo progetto CloudFoundry di VMware
Se voglio distribuire un'applicazione su CloudFoundry.com, quale lingua è la migliore scelta?
Proprio come Google App Engine, ovviamente, Python è il più maturo mentre Go è il più inmature.
Che ne dici di CloudFoundry?
Il software open source CloudFoundry è scritto in Ruby, ma la pubblicità mette sempre Java prima di Ruby. come " Esegui la tua molla, Rotaie, Nodo.js e Scala applicazione. "Vedi la seguente foto:
Significa che il supporto per Java è migliore di Ruby?
5 answers
Penso che tu stia leggendo troppo nelle cose riguardanti l'ordine delle lingue. Come la maggior parte delle altre domande che chiedono "quale lingua dovrei scegliere", la risposta ha più a che fare con il tipo di app che stai costruendo e la quantità di esperienza che hai nelle varie lingue rispetto a quale lingua è "la migliore."
Come ex membro del team App Engine, ora parte del team Cloud Foundry, concordo con Andrew: usa il linguaggio e il framework che preferisci, lo strumento migliore per il lavoro, Cloud Foundry li tratta tutti allo stesso modo.
Il team di App Engine deve creare collegamenti specifici per la lingua per i servizi Google sottostanti, e di solito fare prima Python, poi Java, quindi Andare, in modo da avere un intervallo di tempo tra quando viene introdotta una funzionalità in Python, a quando scorre verso le altre lingue (anche se ha ottenuto molto meglio di recente come il prodotto matura).
Cloud Foundry espone i servizi ai vari linguaggi/framework utilizzando le interfacce di servizio esistenti di questi framework, automatizza solo il provisioning e il binding del servizio (i parametri di connessione/configurazione non sono più codificati in un file di proprietà, sono forniti da Cloud Foundry in fase di runtime, in un modo specifico del framework). Ad esempio, quando RabbitMQ è stato introdotto in Cloud Foundry, non è stato necessario creare una nuova API per servizio in ogni lingua, sfruttiamo solo le librerie client AMPQ esistenti per ogni lingua/framework.
Il confronto con GAE non è appropriato qui. Una delle differenze tra GAE e CF è che in CF non ci sono API specifiche da utilizzare. Se stai scrivendo un'app RoR, scrivi semplicemente l'app e poi la distribuisci. Stessa cosa se si sta scrivendo una molla o Grails app.
La mia comprensione è che con le integrazioni di base fornite e mantenute da VMware, sono pensate per essere trattate allo stesso modo. Ovviamente, CF è ancora in beta e differenze nei livelli di supporto tra le piattaforme può esistere, ma questo è probabilmente un bug, e non una caratteristica.
Quindi, penso che Brandon Tilley sia in gran parte corretto in quanto dovresti pensare alla lingua/piattaforma più appropriata per la tua app, piuttosto che a ciò che è appropriato per CF.
In realtà non avrà importanza, usa quello che conosci. La chiave per l'applicazione sarà l'architettura che si imposta, non proprio la lingua o lo stack che si utilizza in cima.
Poi, naturalmente, l'altra risposta è ancora ciò che la maggior parte delle risposte che sono aperte risultato finale, "dipende!" :)
Penso che Java e Spring sarebbero la scelta migliore. Lo farei prima di Ruby o node.js. Spring Source è stato acquistato da VMware qualche tempo fa (un anno fa? due anni?), quindi ha senso.