На 20 февруари 1991 г. Гвидо ван Росум публикува първата версия на езика за програмиране Python в групата alt.sources, върху която работи от декември 1989 г. в рамките на проект за създаване на скриптов език за решаване на задачи по системно администриране в операционната система Amoeba, който да бъде на по-високо ниво от C, но, за разлика от Bourne shell, да предоставя по-удобен достъп до системните повиквания на ОС.
Името на проекта е избрано в чест на комедийната група Монти Пайтон (Monty Python). В първата версия е реализирана поддръжка на класове с наследяване, обработка на изключения, система от модули и базови типове list, dict и str. Реализацията на модулите и изключенията е заимствана от езика Modula-3, а стилът на кодиране на базата на отстъпи е от езика ABC, в разработката на който Гвидо е участвал преди това.
По време на създаването на Python Гвидо се ръководи от следните принципи:
- Принципи, които спестяват време при разработката:
- Заимстване на полезни идеи от други проекти.
- Стремеж към простота, но без прекомерно опростяване (принципът на Ейнщайн "Всичко трябва да бъде изложено толкова просто, колкото е възможно, но не и по-просто").
- Следване на философията UNUX, при която програмите реализират едно конкретно функционалност, но го правят добре.
- Не е нужно да се притеснявате твърде много за производителността, оптимизациите могат да се добавят при необходимост, когато станат нужни.
- Не се опитвайте да се борите с установените неща, а плувайте по течението.
- Избягвайте перфекционизма, обикновено е достатъчно "достатъчно добре".
- Понякога е допустимо да пропуснете детайли, особено ако можете да го направите по-късно.
- Останалите принципи:
- Реализацията не трябва да е привързана към конкретна платформа. Някои възможности могат да не са налични винаги, но основната функционалност трябва да работи навсякъде.
- Не натоварвайте потребителите с детайли, които машината може да обработи.
- Подкрепа и насърчаване на платформенезависим потребителски код, но без ограничаване на достъпа до възможностите и особеностите на платформата.
- Голямите сложни системи трябва да предоставят няколко нива за разширение.
- Грешките не трябва да са фатални и незабележими — потребителският код трябва да има възможност да прихваща и обработва грешките.
- Грешките в потребителския код не трябва да влияят на функционалността на виртуалната машина и не трябва да водят до неопределено поведение на интерпретатора и до срив на процесите.
Източник: opennet.ru
