Python - fremtidens scriptingsprog

Det objektorienterede programmeringssprog Python vinder mere og mere popularitet, og det er ikke så underligt. Python er nemt, simpelt, er rettet imod alle typer applikationer og kommer med en lang række klassebiblioteker. Vi sætter lys på et ungt programmeringssprog, der har overbevist forbavsende mange på ganske kort tid.

Dynamiske typer

Så forskellige mennesker som open source-giraffen Eric Raymond og den tidligere C++-guru Bruce Eckel er at finde i fanskaren for Python, et moderne open-source scriptingsprog, som har fået mange med på holdet i løbet af ganske kort tid.

Pythons succes har bund i en række faktorer. Python er nemt at lære, og bygger på få sprogkonstruktioner. Syntaksen ligner mange andre "almindelige" sprog, og er faktisk simplere end de fleste. Python er objektorienteret på et højt plan, og understøtter funktioner som introspektion, som tillader kode at undersøge anden kode.

Men de procedurale programmører er ikke tvunget til at sætte sig ind i objekt-verdenens koncepter for at få glæde af Python. I lighed med JavaScript (men i modsætning til Java) kan man benytte funktioner til at kaste objekter ud af ærmet, uden at skulle benytte egentlige klassedefinitioner. Men klassedefinitioner er til stede, og Python kan glimrende bruges til at komme fra den procedurale verden og over i objektorientering.

Dynamiske typer
Som så mange andre scriptingsprog benytter Python dynamiske typer, hvor en variabels type afgøres under kørslen. Ligesom de fleste moderne scriptingsprog og sprog som Java og Microsofts nye .Net-sprog benytter Python bytecode, hvor et programs kildetekst oversættes til en række atomare instruktioner, en slags pseudo-assembler. Dette gør sproget hurtigere end de gammeldags scriptingsprog, som fortolkes linie for linie.

Hvis det ikke er nok, så har Python en meget høj grad af platformsuafhængighed - højere end Java, faktisk. Den første implementering var på Macintosh, men i dag findes sproget på Linux/Unix, Windows, OS/2 og Amiga.

Funktionalitet som dynamiske typer gør sproget langsommere end for eksempel Java, og Perl-scripts vil som regel også afvikles hurtigere end tilsvarende programmer i Python. Det betyder dog ikke, at det ikke er muligt at udvikle stærke applikationer under Python. Applikationsserveren Zope er et godt eksempel herpå. Zope er en kompleks og effektiv applikationsserver, som har vundet stor udbredelse på grund af sin effektivitet og stringente design.

Derudover findes der værktøjer, som kan generere kompilerbar C-kode ud fra Python-kode, og Python-kode kan indlejres i et eksekverbart program, som indeholder både bytecode og fortolker.

Projektet Jython trækker tråde imellem Java og Python. Jython er en implementering af Python i Java. Det gør det muligt at skabe Java-applikationer, som kan scriptes med Python. Da Python er væsentligt nemmere at gå til end Java, sætter det altså et større publikum i stand til at styre sådanne Java-applikationer.

Tættere på slangen

Python er opfundet af den hollandske programmør Guido van Rossum, som startede projektet for at have noget at gøre på de lange vinteraftener. Navnet hentyder i øvrigt til Monty Python og ikke reptilet. Van Rossums mål var at bygge på et undervisningssprog med navnet ABC, som aldrig fik den store udbredelse. Python låner i en vis grad ideer fra Pascal-efterfølgeren Modula, med inspiration fra det objektorienterede sprog SmallTalk samt det effektive, men svært forståelige sprog Lisp, som nyder stor udbredelse i akademiske kredse.

Et Python-program, som udskriver Fibonacci-tallene mindre end 10, kan se sådan ud:

a, b = 0, 1
while b < 10:
       print b
       a, b = b, a+b

I første linie tilskrives variablerne a og b henholdsvis værdierne 0 og 1. Sådanne multiple tilskrivninger går stærkt, og de ses ofte i Python-verdenen. I den næste linie ses en af de ting, som ofte får Python-begyndere til at studse. I modsætning til de fleste andre moderne sprog benytter Python indrykning til at markere blokstrukturer. Der er ikke behov for BEGIN- og END-nøgleord eller krøllede parenteser, og heller ikke afslutningsbrikker (tokens) som semikolon eller andet.

Mange programmører finder en smule ubehag ved den slags, men det har den virkning, at alle Python-programmer ser ens ud. Der er altså ikke noget grundlag for diskussioner om den krøllede parentes skal stå i slutningen af linien eller i starten af næste linie, og derudover indebærer det, at alle Python-programmører nemt kan læse hinandens programmer. Ideen er kendt fra ældre programmeringssprog, men også fra moderne scriptingsprog så som HyperTalk (i Apples HyperCard) og Lingo (i Macromedias Director).

Python indeholder en lang række stærke datastrukturer som lister og associative arrays. Undtagelseshåndtering (exceptions) er indbygget i sproget, og sproget er i det hele taget meget generøst, og byder blandt andet på nem overloading.

GUI

Python er nemt at programmere i, og de overbeviste mener, at Python-programmer kan skrives langt hurtigere end for eksempel Java. Den slags udsagn plejer tilhængere af specifikke sprog gerne at stryge omkring sig med løs hånd, men givet er det, at de fleste, som giver Python en chance, ofte overraskes over, hvor nemt det er at komme i gang med.

I et moderne sprog forventer man at få et antal klassebiblioteker med, så man ikke skal opfinde hjulet selv, og her kan Python også være med. Sproget kommer med mange moduler, som dækker over alle de områder, et generelt programmeringssprog må forventes at adressere. Netværksprogrammering, XML, mediemanipulation, sikkerhed og kryptering, GUI-biblioteker og mange platformsspecifikke moduler følger med Python.

Python har ikke sit eget GUI-miljø som Javas Swing, men understøtter en lang række platformsafhængige og -uafhængige værktøjssæt til GUI-bygning, herunder Qt og MFC, som jo benyttes under henholdsvis Linux og Windows.

Men GUI-biblioteket Tk, som oprindeligt er udviklet til Unix-scriptingsproget Tcl, er blevet en de facto-standard i Python. Tk findes til både Linux/Unix, Windows og Macintosh, og på den måde kan man altså udvikle platformsuafhængige GUI-applikationer.

Tk har et "født" udseende på hver af de tre platforme, så under Windows har de Tk-baserede programmer samme udseende som Windows-programmer normalt har. Det samme gør sig gældende på andre platforme. Python-GUI-applikationer behøves altså ikke at se anderledes ud end andre platformsspecifikke applikationer. I Python-distributionen medfølger i øvrigt et rudimentært IDE, Idle, som bygger på Tk.


Idle er et begrænset men brugbart IDE til Python, og det er selvfølgelig selv skrevet i Python.

Der kan siges og skrives meget mere om Python, og man kan få en udmærket introduktion til sproget, skrevet af blandt andre Guido van Rossum, i form af først kapitel af bogen Internet Programming with Python. Derudover holder sproget til på sit eget website, Python.org hvor der er masser af ressourcer at finde. Herfra kan Python selvfølgelig også downloades.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Ciklum ApS
Offshore software- og systemudvikling.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
PCI og cloud-sikkerhed: Strategi til beskyttelse af betalingsdata

Er din organisation klar til de nye PCI DSS 4.0-krav? Deltag i vores event og få indsigt i, hvordan du navigerer i compliance-udfordringerne i en cloud-drevet verden.

16. januar 2025 | Læs mere


Strategisk It-sikkerhedsdag 2025, Aarhus: Viden om trusler og tendenser – Beskyt din virksomhed

Gå ikke glip af årets vigtigste begivenhed for it-sikkerhedsprofessionelle! Mød Danmarks førende eksperter, deltag i inspirerende diskussioner og få praktisk erfaring med de nyeste teknologier. Bliv klogere på de seneste trusler og lær, hvordan du bedst beskytter din virksomhed mod cyberangreb. Tilmeld dig nu og vær på forkant med fremtidens cybersikkerhedsudfordringer.

21. januar 2025 | Læs mere


Strategisk It-sikkerhedsdag 2025, København: Viden om trusler og tendenser – Beskyt din virksomhed

Gå ikke glip af årets vigtigste begivenhed for it-sikkerhedsprofessionelle! Mød Danmarks førende eksperter, deltag i inspirerende diskussioner og få praktisk erfaring med de nyeste teknologier. Bliv klogere på de seneste trusler og lær, hvordan du bedst beskytter din virksomhed mod cyberangreb. Tilmeld dig nu og vær på forkant med fremtidens cybersikkerhedsudfordringer.

23. januar 2025 | Læs mere