Programmering

En udviklerguide til fordele og ulemper ved Python

Python faktureres af Python Software Foundation som nem at lære og køre overalt. Det er nyttigt til en række applikationstyper, herunder webudvikling, videnskabelig computing og uddannelse. Google og Instagram har været blandt de mange brugere af Python, og sproget scorer godt i popularitetsindekser.

Men Python har haft sine problemer med spørgsmål rejst om dens ydeevne og designegenskaber. For at komme til bunden af ​​hvad der er rigtigt - og måske ikke så rigtigt - om Python, bad redaktør hos Large Paul Krill dignitarier i Python-samfundet om deres input.

Python-professionelle

Læs det, brug det med lethed. "De vigtigste kendetegn ved et Python-program er, at det er let at læse," siger Pierre Carbonnelle, en Python-programmør og blogger, der kører PyPL-sprogindekset. "Dette har fordele for dig og andre. Det hjælper dig med at tænke mere klart, når du skriver programmer, og det hjælper de andre, der vil vedligeholde eller forbedre dit program. I begge tilfælde kræver det mindre indsats at skrive et Python-program end at skrive et på et andet sprog som C ++ eller Java. " Læsbarhed af Python letter udvikling af open source, tilføjede Carbonnelle.

Python er let at bruge og ekstremt populær i den akademiske verden og skaber en stor talentpulje, siger Sumit Chachra, CTO hos Tivix, et softwarekonsulentfirma, der har specialiseret sig i Python / Django-udvikling. Django og Python udnyttes af Tivix inden for web- og mobiludvikling, siger han.

Python er en meget produktiv måde at skrive kode på, siger Stephen Deibel fra Wingware, som gør Wing Python IDE. "Noget af dette kommer fra den enkle syntaks og læsbarhed - der er stort set ingen" kedelplade "overhovedet. Noget af det kommer fra det rige, veldesignede indbyggede og standardbibliotek og tilgængeligheden af ​​mange tredjeparts open source biblioteker og moduler. " Ved at være let at forstå er koden lettere at vedligeholde, tilføjer han.

Python, siger Chachra, er dynamisk skrevet og fleksibel med kode, der er mindre detaljeret. Imidlertid nævner han dynamisk typning som et potentielt negativt (se nedenfor).

Internet af ting muligheder. Python kan blive populær på Internettet af ting, da nye platforme som Raspberry Pi er baseret på det, siger Carbonnelle. Raspberry Pi's dokumentation citerer sproget som "et vidunderligt og kraftigt programmeringssprog, der er let at bruge (let at læse og skriv) og med Raspberry Pi kan du forbinde dit projekt til den virkelige verden. "

Asynkrone kodningsfordele. Python, siger Deibel, "er fantastisk til at skrive asynkron kode, som i stedet for at tråde bruger en enkelt begivenhedssløjfe til at udføre arbejde i små enheder." Denne kode, siger han, er ofte lettere at skrive og vedligeholde uden at forvirre ressourcekonflikt, deadlocks osv. "Pythons generatorer er en fantastisk måde at sammenflette kørsel af mange behandlingssløjfer i denne tilgang."

Multiparadigm tilgang bests Java. Pythons programmeringsmetode er ikke så begrænset som Java, siger Carbonnelle. "For eksempel behøver du ikke oprette en OO-klasse for at udskrive 'Hello world' i Python - det skal du i Java." I modsætning til Java er Python multiparigigm og understøtter OO, proceduremæssige og funktionelle programmeringsstile, siger han. (Java tilføjede for nylig funktionelle funktioner i Java 8.)

"I Python er alt et objekt," siger Brian Curtin, medlem af bestyrelsen for Python Software Foundation og en central bidragyder til CPython. "Det er muligt at skrive applikationer i Python ved hjælp af flere programmeringsparadigmer, men det gør det til at skrive meget klar og forståelig objektorienteret kode."

Pythons ulemper

Hastighed kan være et problem. ”Fordi det er et fortolket sprog, er det ofte mange gange langsommere end kompilerede sprog,” siger Curtin. "Det kommer imidlertid tilbage til at adskille sproget fra runtime. Visse benchmarks for Python-kode kører under PyPy kører hurtigere end den tilsvarende C-kode eller andre."

"En mulig ulempe ved Python er dens langsomme udførelseshastighed," siger Carbonnelle. Men mange Python-pakker er blevet optimeret gennem årene og udføres med C-hastighed, siger han.

Ydeevne, siger Chachra, "er langsommere sammenlignet med ældre sprog som C / C ++ og endnu nyere som Go."

Fravær fra mobil computing og browsere. "Python er til stede på mange server- og desktopplatforme, men det er svagt inden for mobil computing; meget få smartphone-applikationer er udviklet med Python," siger Carbonnelle. "Det ses også sjældent på klientsiden af ​​en webapplikation."

Python er ikke i webbrowsere, bemærker Deibel. "Det er virkelig en skam. Der er brython, men jeg tror ikke, det kan bruges i den virkelige verden." Python er svært at sikre, og det er derfor, det ikke er i browsere, tilføjer han. "Der er stadig ikke rigtig en god sikker sandkasse / fængsel til Python, og jeg synes, det betragtes som grundlæggende umuligt for CPython (standardimplementeringen).

Designbegrænsninger. Python-hengivne citerede flere problemer med sprogets design. Fordi sproget er skrevet dynamisk, kræver det mere test og har fejl, der kun vises ved kørsel, siger Chachra.

Pythons globale tolkelås betyder i mellemtiden, at kun en tråd kan få adgang til Python-interner ad gangen, siger Deibel. "Dette kan være mindre vigtigt i disse dage, da du så let kan gyde opgaver ud til separate processer ved hjælp af multiprocesseringsmodulet eller skrive asynkron kode i stedet."

Curtin siger, at der er et par konventioner omkring brugen af ​​Python, men en betydelig hvid plads er en, der håndhæves af tolken. "Strukturen i Python-programmer skal være ensartet, så hvor parenteser eller andre identifikatorer giver brugeren større frihed på andre sprog, er indrykning det, der betyder noget, når det kommer til Python."