El 20 de febrero de 1991, Guido van Rossum publicó en el grupo alt.sources el primer lanzamiento del lenguaje de programación Python, en el que había estado trabajando desde diciembre de 1989, como parte de un proyecto para crear un lenguaje de scripting para resolver problemas de administración de sistemas en el sistema operativo Amoeba, que fuera de un nivel más alto que C, pero a diferencia del Bourne shell, ofreciera un acceso más conveniente a las llamadas al sistema del SO.
El nombre del proyecto fue elegido en honor al grupo de comedia Monty Python. En la primera versión, se implementó el soporte para clases con herencia, manejo de excepciones, un sistema de módulos y tipos básicos como list, dict y str. La implementación de módulos y excepciones fue tomada del lenguaje Modula-3, y el estilo de codificación basado en la indentación se inspiró en el lenguaje ABC, en el que Guido había participado anteriormente.
En el proceso de creación de Python, Guido se guió por los siguientes principios:
- Principios que permitieron ahorrar tiempo en el desarrollo:
- Tomar ideas útiles de otros proyectos.
- Aspirar a la simplicidad, pero sin la excesiva simplificación (el principio de Einstein: "Todo debe ser presentado de la manera más simple posible, pero no más simple").
- Seguir la filosofía UNUX, según la cual los programas implementan una sola funcionalidad, pero lo hacen bien.
- No preocuparse demasiado por el rendimiento; la optimización se puede añadir según sea necesario, cuando sea necesaria.
- No intentar luchar contra lo establecido, sino fluir con la corriente.
- Evitar el perfeccionismo; generalmente, el nivel de "suficientemente bueno" es suficiente.
- A veces, se pueden tomar atajos, especialmente si algo se puede hacer más adelante.
- Los otros principios:
- La implementación no debe estar atada a una plataforma específica. Algunas capacidades pueden no estar siempre disponibles, pero la funcionalidad básica debe funcionar en todas partes.
- No abrumar a los usuarios con detalles que la máquina puede manejar.
- Apoyar y promover código portable entre plataformas, pero sin restringir el acceso a las capacidades y peculiaridades de las plataformas.
- Los grandes sistemas complejos deben ofrecer varios niveles de extensibilidad.
- Los errores no deben ser fatales ni pasar desapercibidos; el código del usuario debe tener la capacidad de capturar y manejar errores.
- Los errores en el código del usuario no deben afectar la funcionalidad de la máquina virtual ni conducir a un comportamiento indeterminado del intérprete ni al fallo de procesos.
Fuente: opennet.ru
