Programmeertalen: Hoe Instagram ‘ s het temmen van een multi-line Python monster

0
125

Python met de opkomst van vragen van JavaScript ‘ s dominantie
Stijging in query ‘ s gedreven door interesse in de Python en de gemeenschap van nieuwe programmeurs.

Facebook-eigendom Instagram heeft de oplossing voor het verbeteren van de app op een manier die leidt tot een Python ‘ s voordelen en beheerst de taal van de obstakels om de productiviteit in grootschalige projecten.

Achter al de perfecte selfies op Instagram, de Facebook-owned sociale netwerk is gebouwd op de populaire programmeertaal Python.

Als Instagram ingenieurs gedetailleerde onlangs Instagram-Server – de backend van de smartphone-app die miljoenen millennials gebruiken voor het delen van foto ‘ s van vrienden en zelf – is bijna volledig aangedreven door Python, de derde meest gebruikte taal achter Java en JavaScript.

Om te stimuleren productiviteit van de ontwikkelaar, Facebook ingenieurs hebben ontwikkeld-open-source tools zoals de Python statische type-checker, Brandstapel, die Instagram gebruikt voor het analyseren van de server codebase. Instagram hebben de ingenieurs ook gemaakt developer tools zoals LibCST voor het analyseren van de Python-code.

Instagram ingenieurs’ belangrijkste doel is om zo productief mogelijk te zijn bij het gebruik van Python op een grote schaal en ze hebben laten zien hoe ze het rond “een paar pijnpunten” bij het gebruik van de taal.

Het bedrijf wil ook nieuw talent aan te trekken, zelfs als de codeurs zijn niet noodzakelijkerwijs de Python deskundigen, dat is waarom ze wil om uit te leggen aan de codering van de kandidaten hoe het maken van tools om hen te helpen productiever te zijn.

Ook wil houden ontwikkelaars die graag met behulp van Python gelukkig, dus het bedrijf is duwen Python buiten haar grenzen. Dat is de reden waarom Instagram ingenieurs hebben ontwikkeld – ‘strenge modules’ voor Python.

“Een redelijke nemen kan het zijn dat we het uitrekken van Python is dan wat het was de bedoeling voor. Het werkt prima voor de kleinere teams op kleinere codebases dat kan het behouden van een goede discipline om hoe het te gebruiken, en we moeten overschakelen naar een minder dynamische taal,” schrijft Instagram ingenieur Carl Meyer.

“Maar we zijn voorbij het punt van codebase grootte waar een rewrite is zelfs haalbaar. En belangrijker nog, ondanks deze pijn punten, er is veel meer dat we graag over Python, en de algehele onze ontwikkelaars genieten van het werken in Python. Het is dus aan ons om erachter te komen hoe we kunnen maken Python werken op deze schaal, en blijven werken zoals we groeien,” Meyer schrijft.

Hij legt uit dat Python is briljant voor het snelle iteratie omdat u wijzigingen kunt aanbrengen en zie het resultaat, zonder te compileren van de code.

“Maar met een paar miljoen lijnen code (en een rommelige afhankelijkheid grafiek), maar dat voordeel begint te draaien, zure,” schrijft hij.

De Instagram-Server duurt een minuut om te beginnen, wat zich vertaalt in een kritieke vertraging bij het testen van nieuwe functies en is lang genoeg voor een ontwikkelaar om te worden afgeleid door andere baan en niet de taak te voltooien.

Ondanks Python waardoor een snellere ontwikkeling van de tijden, en er zijn uitdagingen met behulp van het op de schaal van Instagram.

“Omdat de invoer kan willekeurige bijwerkingen, er is geen veilige manier om stap voor stap herladen onze server [in Python]. Hoe klein de verandering, we moeten beginnen, het importeren van al die modules, het opnieuw maken van al die klassen en functies, het compileren van al deze reguliere expressies, etc,” Meyer schrijft.

“Meestal, 99% van de code is niet veranderd sinds de laatste keer dat we opnieuw geladen op de server, maar we hebben opnieuw alle die traag werken toch.”

Instagram problemen met het gebruik van Python op schaal spiegel sommige van de moeilijkheden Salesforce had met het voor de CRM-analytics-product Einstein. Salesforce onlangs gebeld naar beneden Python-code in het voordeel van de Google-back Gaan, of Golang.

“Python is ideaal voor het snel schrijven van hoger-niveau-toepassingen, maar niet altijd leveren van de hoge prestaties die nodig zijn in een enterprise-niveau,” een Salesforce-architect uitgelegd.

In Instagram het geval van Meyer voegt daaraan toe dat het niet alleen schadelijk voor de productiviteit van ontwikkelaars, maar de oorzaken van een “significante hoeveelheid verspilde berekenen in productie”, omdat Instagram continu gebruikt worden en laadt de site op productie servers.

Meyer beschrijft ‘de strikte modules’ als Instagram ‘s antwoord op Python’ s zwakke punten wanneer gebruikt in grootschalige productie omgevingen

“Strikte modules plaats een aantal beperkingen op wat kan gebeuren in de module top niveau. Alle code op moduleniveau, met inbegrip van decorateurs en functies/initializers genoemd op module niveau, moet zuiver zijn (bijwerking-vrij, geen I/O). Dit is statisch gecontroleerd tijdens het compileren via de abstracte tolk”, zegt hij.

“Dit betekent dat strikte modules zijn kant effect op import: slechte interactie van import-time bijwerkingen zijn niet meer mogelijk.”

Meer over Python en programmeertalen

Salesforce: Waarom we gedumpt Python voor Google ‘ s Go taal in Einstein Analytics
Python-geïnspireerd Nim: Versie 1.0 van de programmeertaal lanceert
Microsoft Getypte versie 3.7: programmeertaal beta land met al deze functies
Google: Neem onze gratis Kotlin programmeertaal cursussen voor het bouwen van Android-apps vanMicrosoft: We willen dat je om te leren programmeertaal Python gratisOracle: programmeertaal Java 13 is uit, het zal je meer productieveGoogle: Dart 2.5 programmeertaal SDK ‘boost’ ontwikkelaarsRaspberry Pi krijgt MIT ‘s Kras 3 programmeertaal voor RaspbianJulia programmeertaal: Gebruikers laten zien wat ze liefde en haat het meeste over dezeprogrammeertaal Python’ s ‘existentiële bedreiging’ is een app distributie: Is dit het antwoord?Is Julia snelst groeiende nieuwe programmeertaal? Statistieken grafiek snelle stijging in 2018Python vs R voor data science: Professor tarieven programmeertaal rivalenprogrammeertalen: Python voorspelde inhalen C en Java in de komende 4 jaar Netflix: Python programmeertaal is achter elke film die je stream
Kan de Schrijfmachine vervangen JavaScript? Het gebruik van de programmeertaal spin-off stijgtIs Julia de volgende grote programmeertaal? MIT zo over denkt, als versie 1.0 landen TechRepublicMozilla ‘ s radicale open-source beweging geholpen herschrijfregels van tech CNET

Verwante Onderwerpen:

CXO

Cloud

Big Data Analytics

Innovatie

Tech en Werk

Samenwerking