Programmering

En utviklerveiledning for fordeler og ulemper med Python

Python faktureres av Python Software Foundation som lett å lære og kjøre overalt. Det er nyttig for en rekke applikasjonstyper, inkludert nettutvikling, vitenskapelig databehandling og utdanning. Google og Instagram har vært blant de mange brukerne av Python, og språket scorer godt i popularitetsindekser.

Men Python har hatt sine problemer, med spørsmål som er reist om ytelsen og designegenskapene. For å komme til bunns i hva som er riktig - og kanskje ikke så riktig - om Python, spurte redaktør hos Large Paul Krill dignitarier i Python-samfunnet om deres innspill.

Python-proffer

Les den, bruk den med letthet. "De viktigste egenskapene til et Python-program er at det er lett å lese," sier Pierre Carbonnelle, en Python-programmerer og blogger som kjører språkindeksen PyPL. "Dette har fordeler for deg og andre. Det hjelper deg å tenke tydeligere når du skriver programmer, og det hjelper de andre som vil vedlikeholde eller forbedre programmet ditt. I begge tilfeller krever det mindre innsats å skrive et Python-program enn å skrive et på et annet språk som C ++ eller Java. " Lesbarheten til Python letter utviklingen av åpen kildekode, la Carbonnelle til.

Python er enkel å bruke og ekstremt populær i akademia, og skaper et stort talentbasseng, sier Sumit Chachra, CTO i Tivix, et programvarekonsulentfirma som spesialiserer seg på Python / Django-utvikling. Django og Python er utnyttet av Tivix i utvikling av nett og mobil, sier han.

Python er en veldig produktiv måte å skrive kode på, sier Stephen Deibel, fra Wingware, som gjør Wing Python IDE. "Noe av dette kommer fra den enkle syntaksen og lesbarheten - det er praktisk talt ingen" kjeleplate "i det hele tatt. Noe av det kommer fra det rike, veldesignede innebygde og standardbiblioteket og tilgjengeligheten av mange tredjeparts åpen kildekode. biblioteker og moduler. " Ved å være lett å forstå er koden lettere å vedlikeholde, legger han til.

Python, sier Chachra, er dynamisk skrevet og fleksibel, med kode som er mindre detaljert. Imidlertid siterer han dynamisk skriving som et potensielt negativt (se nedenfor).

Internett av ting muligheter. Python kan bli populært for ting på internett, ettersom nye plattformer som Raspberry Pi er basert på det, sier Carbonnelle. Raspberry Pi's dokumentasjon siterer språket som "et fantastisk og kraftig programmeringsspråk som er enkelt å bruke (lett å lese og skrive) og med Raspberry Pi kan du koble prosjektet ditt til den virkelige verden. "

Asynkrone kodingsfordeler. Python, sier Deibel, "er flott for å skrive asynkron kode, som i stedet for å tråde bruker en enkelt hendelsessløyfe for å gjøre arbeid i små enheter." Denne koden, sier han, er ofte lettere å skrive og vedlikeholde uten å forvirre ressurskonkurranse, fastlåser, etc. "Pythons generatorer er en fin måte å blande inn mange prosesseringsløkker i denne tilnærmingen."

Multiparadigm-tilnærming best Java. Pythons programmeringsmetode er ikke like begrenset som Java, sier Carbonnelle. "For eksempel trenger du ikke opprette en OO-klasse for å skrive ut" Hello world "i Python - det må du i Java." I motsetning til Java er Python multiparadigm og støtter OO, prosessuelle og funksjonelle programmeringsstiler, sier han. (Java har nylig lagt til funksjonelle funksjoner i Java 8.)

"I Python er alt et objekt," sier Brian Curtin, medlem av styret for Python Software Foundation og en sentral bidragsyter til CPython. "Det er mulig å skrive applikasjoner i Python ved hjelp av flere programmeringsparadigmer, men det gir skriving veldig klar og forståelig objektorientert kode."

Pythons ulemper

Hastighet kan være et problem. "Fordi det er et tolket språk, er det ofte mange ganger tregere enn kompilerte språk," sier Curtin. "Det kommer imidlertid tilbake til å skille språket fra kjøretiden. Visse referanser for Python-kode kjører under PyPy, kjører raskere enn tilsvarende C-kode eller andre."

"En mulig ulempe med Python er dens langsomme gjennomføringshastighet," sier Carbonnelle. Men mange Python-pakker er optimalisert gjennom årene og kjøres med C-hastighet, sier han.

Ytelse, sier Chachra, "er tregere sammenlignet med eldre språk som C / C ++ og enda nyere som Go."

Fravær fra mobil databehandling og nettlesere. "Python er til stede på mange server- og stasjonære plattformer, men det er svakt innen mobil databehandling; svært få smarttelefonapplikasjoner er utviklet med Python," sier Carbonnelle. "Det blir også sjelden sett på klientsiden av et webapplikasjon."

Python er ikke i nettlesere, bemerker Deibel. "Det er veldig synd. Det er brython, men jeg tror ikke det er brukbart i den virkelige verden." Python er vanskelig å sikre, og det er derfor det ikke er i nettlesere, legger han til. "Det er fremdeles egentlig ikke en god sikker sandkasse / fengsel for Python, og jeg tror det anses som i utgangspunktet umulig for CPython (standardimplementeringen).

Designbegrensninger. Python-hengivne siterte flere problemer med utformingen av språket. Fordi språket er skrevet dynamisk, krever det mer testing og har feil som bare vises ved kjøretid, sier Chachra.

Pythons globale tolkelås betyr i mellomtiden at bare en tråd kan få tilgang til Python-interne om gangen, sier Deibel. "Dette kan være mindre viktig i disse dager, siden du så enkelt kan gyte oppgaver for å skille prosesser ved hjelp av flerbehandlingsmodulen, eller skrive asynkron kode i stedet."

Curtin sier at det er noen få konvensjoner rundt bruken av Python, men betydelig mellomrom er en som blir håndhevet av tolken. "Strukturen til Python-programmer må være konsistent, så der parenteser eller andre identifikatorer tillater brukeren mer frihet på andre språk, er innrykk det som betyr noe når det gjelder Python."

$config[zx-auto] not found$config[zx-overlay] not found