QNA > P > Perché Amazon Usa Prevalentemente Java?

Perché Amazon usa prevalentemente Java?

EDIT1: Sto rispondendo a come è successo che Amazon la società è arrivata ad usare prevalentemente Java come linguaggio interno. Quindi mi scuso se gli amanti di Java non si fanno accarezzare l'ego con commenti su quanto sia grande Java stesso. Sono sicuro che è la cosa migliore dopo il pane affettato. Se state cercando "Oh, per favore, ditemi ancora una volta quanto è grande Java, e rallegriamoci che possiamo citare Amazon come approvazione", questa non è la risposta.

EDIT2: Sono stato profondamente coinvolto nella migrazione e uno dei primi team a passare da Perl a Java. In seguito sono stato anche coinvolto nel primo sforzo per passare da Java a Scala+Node. Quindi so di cosa sto parlando. E sono stato il loro Tier 1 resolver (fondamentalmente la singola persona responsabile quando la parte di ricerca del sito va giù il venerdì nero) per due anni. Quindi so DAVVERO di cosa sto parlando. Ho messo i miei soldi dove è la mia bocca. Non sto parlando ipoteticamente di come i sistemi di produzione dovrebbero/potrebbero/dovrebbero funzionare. Li ho fatti funzionare.

Alcune ragioni. Per uno, Java è molto nuovo per l'azienda. Ci sono un sacco di emozioni coinvolte quando si fa una migrazione di quella scala.

Nel corso degli anni, Amazon è passata da C a Perl a Java. Tre anni fa, sarebbe stato il 99% del codice Perl, con alcuni "hipsters" che cercavano di portare questa nuova cosa chiamata Java. Oggi è Java con alcuni "hipsters" che cercano di portare nuove cose come Node.js o Scala.

Quando hanno dovuto abbandonare Perl, linguaggi come Swift, Rust, Scala, Javascript, e così via - non erano esattamente opzioni. Non devi mai pianificare una migrazione basandoti su ciò che pensi che accadrà tra cinque anni. Devi pianificarla in base a ciò che esiste.

Se non fossero aperti ad altre cose, non avrebbero costruito Lambda su Javascript. Sanno cosa esiste. Ci sono team che non vorrebbero altro che passare a cose più nuove e più semplici.

Detto questo, dirò che i problemi di middle management che sono stati scritti da un altro commentatore, esistono. Ma Java non è stato introdotto a causa di questi problemi. Quei problemi si sono verificati come risultato del fatto che Java è diventato predominante.

Innumerevoli ore vengono sprecate a discutere sui design pattern, o se qualcosa debba essere statico, o se qualcosa debba restituire un Optional<> o no. Innumerevoli sforzi di refactoring producono promozioni. Innumerevoli problemi possono bloccare il progresso e lo fanno.

Ma guarda Javascript. Ha portato le classi, no? La gente della tipizzazione statica ha la sua strada. Quello che una volta era il linguaggio più semplice, migliore e più pulito si sta trasformando nel tempo in oggetti e nell'ereditarietà classica. Scala è ancora impantanato dall'eredità delle librerie Java esistenti che devono essere riportate, e una JVM che esegue la cancellazione dei tipi, o la necessità di metodi creativi per implementare la tail-recursion (poiché gli stack frame non possono essere sostituiti).

Ma non illudetevi. Amazon ha un sacco di gente MOLTO intelligente, e molti di loro hanno riconosciuto i limiti di Java da un po' di tempo. Molti strumenti interni usano sistemi simili a Prolog. Un sacco di sviluppatori stanno giocando con Scala. Molti strumenti interni usano Python o Ruby. Un sacco di nuovi strumenti come Lambda sono Javascript. Non c'è nessun mandato a livello di senior management di usare Java o di attenersi ad esso. Non è una dottrina a livello aziendale. Ci sono un sacco di persone che cercano di vincere la guerra contro Java, e un numero sorprendente di loro sta avendo successo.

Addendum: Queste battaglie in Amazon sono vinte attraverso i dati, non dalla politica o dagli esperimenti di pensiero. Così, quando ho visto che stanno vincendo queste battaglie, lo stanno facendo diminuendo i costi, aumentando l'affidabilità, aumentando le entrate o tutte queste cose insieme.

Di Prosser

Il Huawei Mate 40 Pro vale un acquisto per il 2020? Perché c'è un aggiornamento massiccio improvvisamente? :: Com'è giocare nella stessa squadra di basket di Jeremy Lin?
Link utili