20. veljače 1991. godine Guido van Rossum objavio je u grupi alt.sources prvo izdanje programskog jezika Python, na kojem je radio od prosinca 1989. godine u okviru projekta za izradu skriptnog jezika koji bi mogao rješavati probleme sistemskog administriranja u operativnom sustavu Amoeba, a koji bi bio na višoj razini od C-a, ali bi, za razliku od Bourne shell-a, nudio lakši pristup sistemskim pozivima OS-a.
Ime za projekt odabrano je prema komičnoj grupi Monty Python. U prvoj verziji implementirana je podrška za klase s nasljeđivanjem, obrada iznimaka, sustav modula i osnovni tipovi list, dict i str. Implementacija modula i iznimaka posuđena je iz jezika Modula-3, a stil kodiranja temeljen na uvučenju iz jezika ABC, u čijem je razvoju Guido ranije sudjelovao.
Tijekom stvaranja Pythona, Guido se vodio sljedećim načelima:
- Načela koja su omogućila uštedu vremena tijekom razvoja:
- Preuzimanje korisnih ideja iz drugih projekata.
- Težnja ka jednostavnosti, ali bez pretjeranog pojednostavljivanja (Einsteinovo načelo: „Sve bi trebalo biti objašnjeno tako jednostavno kao što je moguće, ali ne i jednostavnije“).
- Slijediti filozofiju UNIX-a, prema kojoj programi implementiraju neku funkcionalnost, ali to rade dobro.
- Ne brinuti previše o performansama, optimizacije se mogu dodati po potrebi, kada su potrebne.
- Ne pokušavati se boriti protiv ustaljenih stvari, već se kretati s tokom.
- Izbjegavati perfekcionizam, obično je dovoljno na razini „dovoljno dobro“.
- Ponekad se mogu izbjeći kutovi, posebno ako se nešto može riješiti kasnije.
- Ostala načela:
- Implementacija ne smije biti vezana uz određenu platformu. Neke mogućnosti možda neće biti dostupne uvijek, ali osnovna funkcionalnost treba raditi posvuda.
- Ne opterećivati korisnike detaljima koje može obraditi stroj.
- Podrška i promicanje platformi neovisnog korisničkog koda, ali bez ograničavanja pristupa mogućnostima i karakteristikama platformi.
- Veliki složeni sustavi trebaju pružiti više razina za proširenje.
- Pogreške ne trebaju biti fatalne i neprimjećene — korisnički kod treba imati mogućnost uhvatiti i obraditi pogreške.
- Greške u korisničkom kodu ne bi trebale utjecati na funkcionalnost virtualne mašine i ne bi trebale dovesti do nepredvidivog ponašanja interpretera ili rušenja procesa.
Izvor: opennet.ru
