Linguaggi di programmazione: Come Instagram è domare un milioni di riga di Python mostro

0
162

Python aumento di domande di JavaScript dominanza di
Aumento query guidata da interessi in Python e comunità di nuovi programmatori.

Facebook-di proprietà Instagram ha dettagliato la sua soluzione per migliorare l’app in un modo che migliora di Python vantaggi e mitiga la lingua, gli ostacoli alla produttività in progetti su larga scala.

Dietro tutto troppo perfetto selfies su Instagram, il Facebook di proprietà di rete sociale è costruito su un popolare linguaggio di programmazione Python.

Come Instagram ingegneri mappa di recente, Instagram Server back-end dell’applicazione per smartphone che milioni di millennials utilizzare per la condivisione di foto di amici e se stessi – è quasi interamente alimentato da Python, il terzo più popolare della lingua Java e JavaScript.

Per aumentare la produttività degli sviluppatori, Facebook gli ingegneri hanno sviluppato strumenti open-source come il Python statico di tipo ortografico, Pira, che Instagram utilizza per analizzare i suoi server codebase. Instagram progettisti hanno anche creato strumenti di sviluppo come LibCST per l’analisi di codice Python.

Instagram ingegneri’ obiettivo principale è quello di essere il più produttivo possibile quando si utilizza Python su scala massiccia e hanno rivelato come lo stanno prendendo in giro “un paio di punti di dolore” quando si utilizza la lingua.

L’azienda, inoltre, si vogliono attrarre nuovi talenti, anche se i programmatori non sono necessariamente Python esperti, che è il motivo per cui vuole spiegare alla codifica candidati come la creazione di strumenti per aiutarli a essere più produttivi.

Si vuole anche tenere gli sviluppatori che come l’utilizzo di Python felice, così la società sta spingendo Python oltre i suoi limiti. Ecco perché Instagram gli ingegneri hanno sviluppato una rigorosa dei moduli per Python.

“Una ragionevole prendere potrebbe essere che siamo stretching Python di là di ciò che è stato inteso per. Funziona alla grande per le squadre minori su piccole basi di codice in grado di mantenere una buona disciplina in giro come usarlo, e si dovrebbe passare ad una minore dinamica della lingua”, scrive Instagram ingegnere Carl Meyer.

“Ma siamo oltre il punto di codebase dimensione dove una riscrittura è anche fattibile. E, cosa più importante, nonostante questi punti di dolore, c’è molto di più che ci piace di Python, e in generale i nostri sviluppatori di lavorare in Python. Quindi sta a noi capire come possiamo rendere il Python lavoro a questa scala, e continuare a lavorare come abbiamo crescere,” Meyer scrive.

Egli spiega che Python è brillante per una rapida iterazione perché è possibile apportare le modifiche e vedere il risultato senza la necessità di compilare il codice.

“Ma con un paio di milioni di righe di codice (e un po ‘di dipendenza grafico), che vantaggio inizia a girare acida”, egli scrive.

L’Instagram Server richiede fino a un minuto prima di iniziare, che si traduce in un ritardo critico quando la sperimentazione di nuove funzionalità ed è abbastanza a lungo per uno sviluppatore per essere distratto da un altro lavoro e non portare a termine il compito.

Nonostante Python consente di accelerare i tempi di sviluppo, ci sono difficoltà con l’utilizzo a scala di Instagram.

“Perché le importazioni possono avere qualunque effetti collaterali, non c’è alcun modo sicuro per ricaricare in modo incrementale il nostro server [Python]. Non importa quanto piccolo sia il cambiamento, dobbiamo ripartire da zero ogni volta, l’importazione di tutti i moduli, ri-creazione di tutte quelle classi e funzioni, ricompilare tutte quelle espressioni regolari, ecc,” Meyer scrive.

“Di solito, il 99% del codice non è cambiato dall’ultima volta che l’abbiamo ricaricato il server, ma dobbiamo rifare tutti che lavoro lento, comunque.”

Instagram sfide con l’utilizzo di Python alla scala, specchio delle difficoltà di Salesforce con esso per la sua analisi CRM prodotto Einstein. Salesforce composti di recente discesa del codice Python in favore di Google-backed Andare, o Golang.

“Python è grande per rapidamente la scrittura di applicazioni di livello superiore, ma non sempre per fornire le prestazioni necessarie a livello d’impresa”, un Salesforce architetto, ha spiegato.

In Instagram caso, aggiunge Meyer che non solo danneggia la produttività degli sviluppatori, ma causa una notevole quantità di spreco di calcolare in produzione”, perché Instagram continuamente distribuisce e ricarica il sito sul server di produzione.

Meyer descrive una rigorosa moduli’ come Instagram risposta a Python di debolezza quando utilizzato in grandi ambienti di produzione

“Rigorosa moduli posto alcune limitazioni su ciò che può accadere al modulo di livello superiore. Tutti i moduli a livello di codice, tra decoratori e funzioni/inizializzatori chiamato a livello di modulo, deve essere puro (lato privo di effetti, in assenza di I/O). Questo è verificata staticamente in fase di compilazione via astratta interprete”, dice.

“Questo significa che stretto moduli effetto collaterale gratuito di importazione: interazioni negative di tempo di importazione effetti collaterali non sono più possibili.”

Di più su Python e linguaggi di programmazione

Salesforce: Perché abbiamo abbandonato il Python per Google Go lingua Einstein Analytics
Python-ispirato Nim: Versione 1.0 del linguaggio di programmazione lancia
Microsoft Dattiloscritto 3.7: linguaggio di Programmazione beta terre con tutte queste caratteristiche
Google: Prendere il nostro libero Kotlin programmazione di corsi di lingua per costruire applicazioni Androiddi Microsoft: Abbiamo voglia di imparare il linguaggio di programmazione Python per liberoOracle: linguaggio di Programmazione Java 13 è fuori, che ti rendono più produttivoGoogle: Dart 2.5 linguaggio di programmazione SDK ‘metti’ gli sviluppatoriRaspberry Pi diventa MIT Zero 3 linguaggio di programmazione per RaspbianJulia linguaggio di programmazione: gli Utenti di rivelare ciò che l’amore e l’odio di più èil linguaggio di Programmazione Python ‘minaccia esistenziale” è la distribuzione di applicazioni: È questa la risposta?È Julia rapida crescita nuovo linguaggio di programmazione? Statistiche grafico rapida ascesa nel 2018Python vs R per i dati della scienza: il Professor tassi di linguaggio di programmazione rivalilinguaggi di Programmazione: Python previsto per il sorpasso di C e Java nei prossimi 4 anni Netflix: il linguaggio di programmazione Python è alla base di ogni film in streaming
Potrebbe Dattiloscritto sostituire JavaScript? Utilizzo del linguaggio di programmazione spin-off volaÈ Julia la prossima grande linguaggio di programmazione? MIT pensa così, come la versione 1.0 terre TechRepublicdi Mozilla radicale open-source spostare contribuito a riscrivere le regole di tecnologia CNET

Argomenti Correlati:

CXO

Cloud

Big Data Analytics

L’innovazione

Tecnologia e Lavoro

Collaborazione