Guido van Rossum je 20. februara 1991. objavio u grupi alt.sources prvo izdanje programskog jezika Python, na kojem je radio od decembra 1989. u sklopu projekta stvaranja skriptnog jezika za rješavanje problema administracije sistema u operativni sistem Amoeba, koji bi bio višeg nivoa od C, ali bi, za razliku od Bourne školjke, omogućio praktičniji pristup sistemskim pozivima OS-a.
Naziv za projekat izabran je u čast komičarske grupe Monty Python. Prva verzija uvela je podršku za klase sa nasljeđivanjem, rukovanje izuzecima, sistem modula i listu osnovnih tipova, dict i str. Implementacija modula i izuzetaka je pozajmljena iz jezika Modula-3, a stil kodiranja zasnovanog na uvlačenju iz ABC jezika, čemu je Guido prethodno doprineo.
Prilikom kreiranja Pythona, Guido se vodio sljedećim principima:
- Principi koji su uštedeli vreme tokom razvoja:
- Pozajmljivanje korisnih ideja iz drugih projekata.
- Težnja za jednostavnošću, ali bez prevelikog pojednostavljivanja (Einsheinov princip „Sve treba izreći što jednostavnije, ali ne jednostavnije“).
- Slijedeći UNUX filozofiju, prema kojoj programi implementiraju jednu funkcionalnost, ali to dobro rade.
- Ne brinite previše o performansama, optimizacije se mogu dodati po potrebi kada je potrebno.
- Ne pokušavajte da se borite protiv preovlađujućih stvari, već idite uz tok.
- Izbjegavajte perfekcionizam; obično je dovoljan nivo „dovoljno dobar“.
- Ponekad se uglovi mogu rezati, posebno ako se nešto može uraditi kasnije.
- Ostali principi:
- Implementacija ne mora biti specifična za platformu. Neke funkcije možda nisu uvijek dostupne, ali osnovna funkcionalnost bi trebala raditi svuda.
- Ne opterećujte korisnike delovima kojima mašina može da rukuje.
- Podrška i promocija korisničkog koda nezavisnog od platforme, ali bez ograničavanja pristupa mogućnostima i karakteristikama platformi.
- Veliki složeni sistemi moraju da obezbede više nivoa ekspanzije.
- Greške ne bi trebale biti fatalne i neotkrivene – korisnički kod bi trebao biti u stanju uhvatiti i rukovati greškama.
- Greške u korisničkom kodu ne bi trebale uticati na funkcionalnost virtuelne mašine i ne bi trebale da dovedu do nedefinisanog ponašanja tumača i rušenja procesa.
izvor: opennet.ru