Vodič za programere za prednosti i nedostatke Pythona

Python joj naplaćuje Python Software Foundation jer ga je lako naučiti i raditi svugdje. Korisna je za niz vrsta aplikacija, uključujući web razvoj, znanstveno računanje i obrazovanje. Google i Instagram bili su među brojnim korisnicima Pythona, a jezik ima dobre rezultate u indeksima popularnosti.

Ali Python je imao problema, postavljajući pitanja o svojim izvedbama i hirovima. Da bi došao do dna onoga što je ispravno - a možda i nije tako ispravno - o Pythonu, glavni urednik Paul Krill zamolio je uglednike u zajednici Python za njihov doprinos.

Python profesionalci

Pročitajte ga, koristite s lakoćom. "Glavne karakteristike programa Python su da se lako čita", kaže Pierre Carbonnelle, programer i bloger na Pythonu koji vodi indeks jezika PyPL. "Ovo ima koristi i za vas i za druge. Pomaže vam jasnije razmišljati prilikom pisanja programa, a pomaže i drugima koji će održavati ili poboljšati vaš program. U oba slučaja potrebno je manje napora za pisanje Python programa nego za pisanje programa na drugom jeziku kao što je C ++ ili Java. " Čitljivost Pythona olakšava razvoj otvorenog koda, dodao je Carbonnelle.

Python je jednostavan za upotrebu i izuzetno je popularan u akademskoj zajednici, stvarajući velik fond talentovanih, kaže Sumit Chachra, tehnički direktor u Tivixu, tvrtki za softversko savjetovanje koja se specijalizirala za razvoj Pythona / Djanga. Django i Python Tivix koristi u razvoju weba i mobilnih uređaja, kaže.

Python je vrlo produktivan način pisanja koda, kaže Stephen Deibel, iz Wingwarea, što čini Wing Python IDE. "Nešto od toga dolazi iz jednostavne sintakse i čitljivosti - gotovo da uopće nema" uzorka ". Nešto od toga dolazi iz bogate, dobro dizajnirane ugrađene i standardne biblioteke i dostupnosti mnogih otvorenih izvora trećih strana knjižnice i moduli. " Lakim za razumijevanje, kôd je lakše održavati, dodaje. 

Python je, kaže Chachra, dinamički tipkan i fleksibilan, s manje opširnim kodom. Međutim, on navodi dinamičko tipkanje kao potencijalni negativ (vidi dolje).

Mogućnosti Interneta stvari. Python bi mogao postati popularan na Internetu stvari, jer se na njemu temelje nove platforme poput Raspberry Pi, kaže Carbonnelle. U dokumentaciji Raspberry Pi jezik je naveden kao "predivan i moćan programski jezik koji je jednostavan za upotrebu (jednostavan za čitanje i pisanje), a s Raspberry Pi omogućuje vam povezivanje vašeg projekta sa stvarnim svijetom."

Prednosti asinkronog kodiranja. Python, kaže Deibel, "izvrstan je za pisanje asinkronog koda, koji umjesto rezanja nitima koristi jednu petlju događaja za rad u malim jedinicama." Ovaj je kôd, kaže, često lakše napisati i održavati, a da se ne zbunjuju sukobi resursa, zastoji itd. "Pythonovi generatori izvrstan su način za preplitanje pokretanja mnogih petlji obrade u ovom pristupu." 

Multiparadigmični pristup ima Javu. Pythonov programski pristup nije tako ograničen kao Javin, kaže Carbonnelle. "Na primjer, ne trebate stvoriti OO klasu za ispis 'Hello world' na Pythonu - morate na Javi." Za razliku od Jave, Python je multiparadigma i podržava OO, proceduralne i funkcionalne stilove programiranja, kaže on. (Java je nedavno dodala funkcionalne mogućnosti u Javi 8.)

"U Pythonu je sve objekt", kaže Brian Curtin, član upravnog odbora Python Software Foundation i glavni suradnik CPythona. "Moguće je pisati programe na Pythonu koristeći nekoliko programskih paradigmi, ali to omogućuje pisanje vrlo jasnog i razumljivog objektno orijentiranog koda."

Pythonove kontra

Brzina može biti problem. "Budući da je to interpretirani jezik, često je puno puta sporiji od kompajliranih jezika", kaže Curtin. "Međutim, vraća se na razdvajanje jezika od vremena izvođenja. Određena mjerila Python koda koja se izvode pod PyPyom rade brže od ekvivalentnog C koda ili drugih."

"Mogući nedostatak Pythona je njegova spora brzina izvršavanja", kaže Carbonnelle. No, mnogi su Python paketi optimizirani tijekom godina i izvršavaju se brzinom C, kaže.

Izvedba je, kaže Chachra, "sporija u odnosu na starije jezike kao što je C / C ++ i još novije poput Go."

Odsutnost mobilnog računanja i preglednika. "Python je prisutan na mnogim poslužiteljskim i stolnim platformama, ali je slab u mobilnom računanju; vrlo je malo aplikacija za pametne telefone razvijeno s Pythonom", kaže Carbonnelle. "To se također rijetko može vidjeti na klijentskoj strani web aplikacije."

Python nije u web preglednicima, napominje Deibel. "To je prava šteta. Postoji brython, ali mislim da nije upotrebljiv u stvarnom svijetu." Python je teško osigurati i zato ga nema u preglednicima, dodaje. "Još uvijek ne postoji dobar siguran pješčanik / zatvor za Python, i mislim da se u osnovi smatra nemogućim za CPython (standardna implementacija). 

Ograničenja dizajna. Pobožnici Pythona naveli su nekoliko problema s dizajnom jezika. Budući da se jezik dinamički upisuje, zahtijeva više testiranja i ima pogreške koje se pojavljuju samo u vrijeme izvođenja, kaže Chachra.

U međuvremenu, Pythonova globalna brava tumača znači da samo jedna nit može istovremeno pristupati Pythonovim internim mrežama, kaže Deibel. "Ovo je možda manje važno u današnje vrijeme, jer možete tako lako iznjedriti zadatke kako biste odvojili procese pomoću modula za višeprocesorsku obradu ili umjesto toga napisali asinkroni kod." 

Curtin kaže da postoji nekoliko konvencija oko upotrebe Pythona, ali značajan razmak je onaj koji provodi tumač. "Struktura programa Python mora biti dosljedna, pa tamo gdje zagrade ili drugi identifikatori omogućuju korisniku veću slobodu na drugim jezicima, uvlačenje je ono što je važno kada je riječ o Pythonu."