Le 20 février 1991, Guido van Rossum a publié dans le groupe alt.sources la première version du langage de programmation Python, sur lequel il a travaillé depuis décembre 1989 dans le cadre d'un projet visant à créer un langage de script pour résoudre des tâches d'administration système dans le système d'exploitation Amoeba, qui serait de niveau supérieur à C, mais, contrairement au Bourne shell, offrirait un accès plus facile aux appels système de l'OS.
Le nom du projet a été choisi en hommage à la troupe comique Monty Python. La première version a intégré la prise en charge des classes avec héritage, le traitement des exceptions, un système de modules et des types de base tels que list, dict et str. La mise en œuvre des modules et des exceptions a été inspirée du langage Modula-3, tandis que le style de codage basé sur les indentations provenait du langage ABC, auquel Guido avait précédemment participé.
Dans le processus de création de Python, Guido s'est guidé par les principes suivants :
- Principes qui ont permis de gagner du temps lors du développement :
- Emprunter des idées utiles à d'autres projets.
- Viser la simplicité, mais sans simplification excessive (principe d'Einstein : « Tout doit être exprimé aussi simplement que possible, mais pas plus simplement »).
- Suivre la philosophie UNIX, selon laquelle les programmes réalisent une seule fonctionnalité, mais le font bien.
- Ne pas trop se soucier de la performance, l'optimisation pouvant être ajoutée au besoin, lorsqu'elle est nécessaire.
- Ne pas tenter de lutter contre ce qui est établi, mais suivre le courant.
- Éviter le perfectionnisme, un niveau « suffisamment bon » suffit généralement.
- Il est parfois possible de prendre des raccourcis, surtout si quelque chose peut être fait plus tard.
- Les autres principes :
- La mise en œuvre ne doit pas être liée à une plateforme spécifique. Certaines fonctionnalités peuvent ne pas être toujours disponibles, mais la fonctionnalité de base doit fonctionner partout.
- Ne pas submerger les utilisateurs de détails qui peuvent être gérés par la machine.
- Soutenir et promouvoir le code indépendant de la plateforme, sans restreindre l'accès aux fonctionnalités et spécificités de la plateforme.
- Les grands systèmes complexes doivent offrir plusieurs niveaux d'extension.
- Les erreurs ne doivent pas être fatales et rester inaperçues — le code utilisateur doit pouvoir intercepter et traiter les erreurs.
- Les erreurs dans le code utilisateur ne doivent pas affecter la fonctionnalité de la machine virtuelle et ne doivent pas entraîner un comportement indéfini de l'interpréteur ni l'échec des processus.
Source : opennet.ru
