Op 20 februari 1991 publiceerde Guido van Rossum de eerste versie van de programmeertaal Python in de groep alt.sources, waaraan hij sinds december 1989 werkte als onderdeel van een project om een scripts taal te creëren voor systeembeheerstaken in het besturingssysteem Amoeba, die hoger niveau zou zijn dan C, maar, in tegenstelling tot de Bourne shell, een meer gebruiksvriendelijke toegang tot de systeemaanroepen van het besturingssysteem zou bieden.
De naam voor het project werd gekozen ter nagedachtenis aan de komische groep Monty Python. In de eerste versie werd ondersteuning voor klassen met overerving, foutafhandeling, een modulesysteem en de basisgegevens types list, dict en str geïmplementeerd. De implementatie van modules en foutafhandeling werd overgenomen van de taal Modula-3, en de indenteringsstijl komt van de taal ABC, waaraan Guido eerder had bijgedragen.
Bij het creëren van Python volgde Guido de volgende principes:
- Principes die tijd bespaarden tijdens de ontwikkeling:
- Het lenen van nuttige ideeën van andere projecten.
- Streven naar eenvoud, maar zonder overmatige vereenvoudiging (de Einstein-principe "Alles moet zo eenvoudig mogelijk worden uitgelegd, maar niet eenvoudiger").
- Volgen van de UNUX-filosofie, waarbij programma's één functie implementeren, maar dit goed doen.
- Zich niet al te veel zorgen maken over prestaties; optimalisatie kan indien nodig worden toegevoegd wanneer dat nodig is.
- Niet proberen om tegen de stroom in te zwemmen, maar met de stroom mee te gaan.
- Perfecionisme vermijden; meestal is 'goed genoeg' voldoende.
- Soms kunnen hoeken worden afgesneden, vooral als iets later kan worden gedaan.
- De overige principes:
- De implementatie moet niet aan een specifiek platform gebonden zijn. Sommige mogelijkheden zijn mogelijk niet altijd beschikbaar, maar de basisfunctionaliteit moet overal werken.
- De gebruikers niet belasten met details, die door de machine kunnen worden afgehandeld.
- Ondersteuning en promotie van platformonafhankelijke gebruikerscode, maar zonder de toegang tot de mogelijkheden en kenmerken van platforms te beperken.
- Grote complexe systemen moeten meerdere niveaus voor uitbreiding bieden.
- Fouten moeten niet fataal en onopgemerkt blijven — gebruikerscode moet in staat zijn om fouten op te vangen en te verwerken.
- Fouten in gebruikerscode mogen de functionaliteit van de virtuele machine niet beïnvloeden en mogen niet leiden tot onvoorspelbaar gedrag van de interpreter en crashes van processen.
Bron: opennet.ru
