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.

Læses lige nu
    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    Sikkerhed | Online

    Connected sikkerhed: Sådan samles netværk, drift og sikkerhed i én platform

    Få indblik i, hvordan NaaS og SOC samler netværk og sikkerhed i én platform. Hør Semler Group dele erfaringer med hurtigere trusselsrespons, færre leverandører og mindre kompleks drift. Deltag og se, hvordan moderne sikkerhedsdrift skalerer i...

    Infrastruktur | Frederiksberg

    Roundtable: Suverænitet, risk management og resiliens i en urolig verden

    Digital suverænitet er rykket fra politisk debat til konkret risikostyring.På dette eksklusive dinner roundtable samler Computerworld, T-Systems og Palo Alto Networks 12-15 ledende it- og sikkerhedsbeslutningstagere til en fortrolig samtale om...

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Netip A/S har pr. 1. maj 2026 ansat Steffen Bendix Søjberg som Systemkonsulent ved netIP's kontor i Rødekro. Han kommer fra en stilling som Systemadministr,og har været i branchen i mange år. Nyt job
    Mohamed El Haddaoui, er pr. 7. april 2026 ansat hos Dafolo A/S som IT-systemudvikler. Han skal især beskæftige sig med udviklingsopgaver relateret til Brugerklubben SBSYS. Han er nyuddannet datamatiker og har erfaring med udvikling af REST API'er og integreret databaser. Nyt job

    Mohamed El Haddaoui

    Dafolo A/S

    Den danske eID-virksomhed Idura har pr. 1. april 2026 ansat Kari Lehtimäki som Country Manager. Han skal især beskæftige sig med at styrke kendskabet til Iduras løsninger i Finland samt fremme samarbejdet med økosystemet omkring det finske Trust Network. Han kommer fra en stilling som Salgschef hos Telia Finland. Han er uddannet uddannet civilingeniør (M.Sc. Tech.) og medbringer ledelse, markedsindsigt og praktisk erfaring. Han har tidligere beskæftiget sig med salg og forretningsudvikling inden for Telias trust services-forretning. Nyt job

    Kari Lehtimäki

    Den danske eID-virksomhed Idura

    Netip A/S har pr. 1. maj 2026 ansat Michael Schou som Operations Manager ved netIP Aalborg og Aarhus. Han kommer fra en stilling som Senior Director - Head of IT hos BDO. Han har tidligere beskæftiget sig med flere områder indenfor IT-branchen, hvor han bla. også har drevet sin egen IT-virksomhed. Nyt job

    Michael Schou

    Netip A/S