Den 20. februar 1991 offentliggjorde Guido van Rossum den første version af programmeringssproget Python i alt.sources-gruppen. Han havde arbejdet på det siden december 1989 som en del af et projekt for at skabe et scriptsprog til at løse systemadministratoropgaver i operativsystemet Amoeba, der skulle være af højere niveau end C, men i modsætning til Bourne shell give lettere adgang til systemopkald i OS.
Navnet til projektet blev valgt til ære for komediegruppen Monty Python. I den første version blev der implementeret understøttelse af klasser med arv, undtagelseshåndtering, et modul system og de grundlæggende typer list, dict og str. Implementeringen af moduler og undtagelser blev lånt fra sproget Modula-3, og kodestilen baseret på indrykning fra sproget ABC, som Guido tidligere havde deltaget i udviklingen af.
I udviklingen af Python blev Guido vejledt af følgende principper:
- Principper, der gjorde det muligt at spare tid under udviklingen:
- At låne nyttige ideer fra andre projekter.
- Stræbe efter enkelhed, men uden overdreven forenkling (Einsteins princip: 'Alt skal præsenteres så enkelt som muligt, men ikke enklere').
- Følge filosofien UNUX, ifølge hvilken programmer implementerer en enkelt funktionalitet, men gør det godt.
- Ikke bekymre sig for meget om ydeevne. Optimeringer kan tilføjes efter behov, når de bliver nødvendige.
- Ikke forsøge at bekæmpe eksisterende tilstande, men følge med strømmen.
- Undgå perfektionisme; niveauet 'godt nok' er oftest tilstrækkeligt.
- Nogle gange er det muligt at tage genveje, især hvis noget kan gøres senere.
- De øvrige principper:
- Implementeringen skal ikke være bundet til en specifik platform. Nogle funktioner kan være begrænsede, men den grundlæggende funktionalitet skal virke overalt.
- Brugerne skal ikke overbelastes med detaljer, som maskinen kan håndtere.
- Støtte og fremme af platformuafhængig bruger kode, men uden at begrænse adgangen til platformens funktioner og egenskaber.
- Store komplekse systemer bør tilbyde flere niveauer for udvidelse.
- Fejl skal ikke være fatale og usete - brugerens kode skal have mulighed for at gribe ind og håndtere fejl.
- Fejl i brugerens kode må ikke påvirke funktionaliteten af den virtuelle maskine og må ikke føre til udefineret opførsel fra fortolkeren eller nedbrud af processer.
Kilde: opennet.ru
