20. února 1991 Guido van Rossum publikoval v skupině alt.sources první verzi programovacího jazyka Python, na kterém pracoval od prosince 1989 v rámci projektu na vytvoření skriptovacího jazyka pro řešení úloh systémového administrátorství v operačním systému Amoeba, který by byl na vyšší úrovni než C, ale na rozdíl od Bourne shell by poskytoval pohodlnější přístup k systémovým voláním OS.
Jméno pro projekt bylo vybráno na počest komediální skupiny Monty Python. První verze obsahovala podporu tříd s dědičností, zpracování výjimek, systém modulů a základní typy list, dict a str. Implementace modulů a výjimek byla převzata z jazyka Modula-3, zatímco styl kódování založený na odsazeních byl inspirován jazykem ABC, na jehož vývoji se Guido předtím podílel.
Při vytváření Pythonu se Guido řídil následujícími principy:
- Principy, které umožnily ušetřit čas při vývoji:
- Převzetí užitečných nápadů z jiných projektů.
- Usilování o jednoduchost, ale bez nadměrného zjednodušování (Einsteinův princip: „Všechno by mělo být vysvětleno tak jednoduše, jak je to možné, ale ne jednodušeji“).
- Dodržování filozofie UNUX, podle které programy realizují určitou funkčnost, ale dělají to dobře.
- Není třeba se příliš starat o výkonnost, optimalizaci lze přidat podle potřeby, když bude potřeba.
- Nepokoušet se bojovat s ustálenými věcmi, ale plout s proudem.
- Vyhnout se perfekcionismu, obvykle stačí úroveň „dostatečně dobře“.
- Občas lze ubrat na kvalitě, zvlášť když něco lze udělat později.
- Další principy:
- Implementace by neměla být vázána na konkrétní platformu. Některé možnosti mohou být dostupné jen občas, ale základní funkčnost by měla fungovat všude.
- Nezatěžovat uživatele detaily, které může převzít stroj.
- Podpora a propagace kódu bez ohledu na platformu, ale bez omezení přístupu k možnostem a zvláštnostem platforem.
- Velké složité systémy by měly poskytovat několik úrovní pro rozšíření.
- Chyby by neměly být fatální a nezpozorované — uživatelský kód by měl mít možnost zachytit a zpracovat chyby.
- Chyby v uživatelském kódu by neměly ovlivnit funkčnost virtuálního stroje a neměly by vést k nejednoznačnému chování interpretátoru a selhání procesů.
Zdroj: opennet.ru
