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

    Annonce

    Annonceindlæg fra Computerworld

    Hvad sker der, når bryllupsrejsen med AI er forbi?

    Lige nu er det svært ikke at være begejstret for AI.

    Navnenyt fra it-Danmark

    IFS Danmark A/S har pr. 1. november 2026 ansat Emma Karlsson som Solution Architect. Emma skal især beskæftige sig med at forstå kundernes behov og vise, hvordan løsninger fra IFS kan skabe værdi for dem. Emma kommer fra en stilling som Industry Lead Solution Engineer & AI Champion hos Oracle. Emma er uddannet MSc Industrial Engineering and Management, MBA. Emma har tidligere beskæftiget sig med ERP-systemer på tværs af industrier, forretningsprocesser, implementering og presales. Nyt job

    Emma Karlsson

    IFS Danmark A/S

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation, har pr. 1. september 2026 ansat Maria Juliane Friedrichsen, 47 år,  som Office Manager. Hun skal især beskæftige sig med at holde overblik og sikre, at alt på kontoret kører, som det skal. Hun kommer fra en stilling som Office Manager hos Kontorhotellet H2M. Hun er uddannet professionsbachelor i ernæring og sundhed og har en korrekturlæseruddannelse. Hun har tidligere beskæftiget sig med korrekturlæsning og den daglige drift af kontorer. Nyt job

    Maria Juliane Friedrichsen

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation,

    Netip A/S har pr. 1. august 2026 ansat Thomas B. Steffensen som Seniorkonsulent ved netIP's kontor i Thisted. Han kommer fra en stilling som Senior IT/OT Network Consultant hos Frontmatec. Nyt job
    Genetec har pr. 1. august 2026 ansat Jan Julin som Channel Account Executive. Han skal især beskæftige sig med styrke samarbejdet med partnere og kunder i Danmark, Finland og Baltikum. Han kommer fra en stilling som Senior Business Development Manager hos Dahua Technology. Han har tidligere beskæftiget sig med videoovervågning, adgangskontrol, sikkerhedsteknologi, salg og forretningsudvikling. Nyt job

    Jan Julin

    Genetec