In primo luogo, l'iperbole è un po 'spenta:
You have to recompile every time you modify any line of code and pass the built EAR or WAR to the application server...
Questo dipende interamente se si utilizza JSP o qualche altra libreria di template per creare la propria applicazione. I JSP e la maggior parte dei modelli alternativi ti consentono di modificare sul posto e di ricaricare semplicemente la pagina. Devi solo ricordarti di copiare queste modifiche nel tuo repository. Ma c'è di più, vedi sotto.
Perché Java?
Il più grande vantaggio che Java ha su diverse altre lingue è l'ecosistema che lo circonda. Sia che tu stia costruendo un'applicazione basata su Spring o facendo le tue cose, di solito ci sono alcune API là fuori che sono pronte per supportare ciò che vuoi fare. L'ecosistema Java si è ampiamente specializzato sul lato server. Sapere che non devi reinventare la ruota è un grande vantaggio.
Java ha i suoi aspetti negativi? Assolutamente, ma questo vale per ogni linguaggio informatico inventato. Se non la pensi così, probabilmente non hai costruito nulla di sostanziale con quel linguaggio.
Incolpare Java per una build lenta è ingiusto. Prenditi del tempo per vedere se uno strumento di costruzione migliore può migliorare i tempi di costruzione. Se il tuo server di build è anemico, prenditi del tempo per capire come migliorare come si costruisce. Ad esempio, ho un progetto che impiega 2,5 minuti per creare sul mio computer locale per compilare e creare un pacchetto di distribuzione da tutti i pezzi Java, C # e Python. Lo stesso processo sul server di build richiede 14 minuti. Molto di ciò ha a che fare con la velocità del disco e si tratta di un vecchio server. Correggere la build.
Perché non una lingua interpretata?
Dipende molto dalla piattaforma che stai costruendo e dalla squadra che hai. Una cosa è dire che stai usando Ruby on Rails o PHP, ecc. E un'altra per trovare sviluppatori competenti che supportino la tua app. Per essere onesti, il problema del personale è l'unica ragione per cui siamo riusciti a migrare da Ruby on Rails in un progetto.
Detto questo, ci sono pochissime ragioni tecniche per non usare un linguaggio interpretato. In genere dipende da se è possibile trovare tutte le librerie di supporto necessarie per il proprio dominio specifico.
- Scegli la lingua più adatta alle tue esigenze, inclusa la ricerca di persone
- Fai attenzione a lavorare in un modo in cui puoi impegnare il codice funzionante nel controllo della versione
- Sii obiettivo quando selezioni la tua piattaforma. Un'app è più grande del framework o del linguaggio in cui è integrata.
Non si escludono a vicenda
Per i team che utilizzano Java per i servizi Web e creano app per pagina singola in JavaScript, hanno il meglio di entrambi i mondi. L'interfaccia utente è costruita utilizzando una delle tante piattaforme di applicazioni per pagina singola con il vantaggio di poter sperimentare rapidamente. Nel frattempo, la parte del servizio web che in genere non cambia molto può essere utilizzata.
In questo mondo di microservizi, sta diventando sempre più comune disporre di un insieme eterogeneo di tecnologie. Ad esempio, potresti avere un servizio basato su Python per sfruttare le librerie di supporto del linguaggio naturale per una parte della tua app mescolata con pezzi di infrastruttura basati su Java.