Python
Alle programmeringsspråk har sine sterke og svake sider. Hvilket språk vi velger bør være avhengig av hvilke oppgaver vi skal løse. Python [1] er et "ubyråkratisk" språk som er godt egnet til tekstbehandling, lasting av nettressurser, enkle beregninger og til CGI-programmering. Python er et ganske komplett objektorientert språk og kan brukes, alene eller sammen med biblioteker skrevet i andre språk, til det meste. Bruken i dette materialet utnytter ikke alle disse mulighetene. Python er valgt først og fremst for å ha et enkelt verktøy for CGI-programmering.
På den annen side er det ikke noe vi gjør i dette materialet som vi ikke kan gjøre i andre språk som C, C++, Java, C#.
Python er valgt fordi det gjøre en del "typiske" ting enkelt og fordi språket er stabilt og kan kjøres på alle aktuelle plattformer. Vi kan f.eks. grovteste CGI-programmene våre på en Windows-klient og så flytte dem over på en Linux-server.
Dette er ikke noen lærebok i Python. Det er tilgjengelig en rekke bøker (se referenser nedenfor) og nettressurser for å lære Python. Det som går gjennom her er de aller viktigste oppgavene for å få en enkel tjeneste på tjeneren.
Python versjon 3.0 ble lansert i desember 2008. Python 3.0 er ikke bakoverkompatibel(!). Dette har ført til en rekke komlikasjoner og en del forvirring. Det finnes en rekke ganske omfattende Python-pakker som må oversettes. De to viktigste forskjellene som må tas fatt i med en gang en legger om er:
- print er en kommando i Python2 og en funksjon i Python 3. Dette er en ganske triviell omlegging.
- Python 3 bruker utf-8 som basis/default tegnesett. Dette er en stor forbedring, men det krever litt arbeid i omskriving. Tegnsett er et h... i Python2
Litt av problemstillingen drøftes på Pythonsiden: Should I use Python 2 or Python 3 for my development activity [2]
Dette materialet refererer til Python 3. Du vil finne serverløsninger som er basert på Python2. Grunnen til dette er at det fortsatt, april 2014, er problemer med å bruke Python3 mot databaser på den serveren jeg bruker (ubuntu).