Python отметил 30 лет на выходных
20 февраля языку программирования Python исполнилось 30 лет, пишет OpenNet.
В этот день в 1991 году Гвидо ван Россум опубликовал в группе alt.sources первый выпуск Python. Над ним голландский программист работал с декабря 1989 года в рамках проекта по созданию скриптового языка для решения задач системного администрирования в операционной системе Amoeba, который был бы более высокого уровня, чем С, но, в отличие от Bourne shell, предоставлял бы более удобный доступ к системным вызовам ОС.
Имя для проекта было выбрано в честь комедийной группы Монти Пайтон (Monty Python). В первой версии была реализована поддержка классов с наследованием, обработка исключений, система модулей и базовые типы list, dict и str. Реализация модулей и исключений была заимствована из языка Modula-3, а стиль кодирования на основе отступов из языка ABC, в разработке которого Гвидо ранее принимал участие.
В процессе создания Python Гвидо руководствовался следующими принципами.
Принципы, которые позволили сэкономить время при разработке:
- Заимствование полезных идей из других проектов.
- Стремление к простоте, но без чрезмерного упрощения (принцип Эйнштейна «Всё должно быть изложено так просто, как только возможно, но не проще»).
- Следование философии UNIX, в соответствии с которой программы реализуют какую-то одну функциональность, но делают это хорошо.
- Не слишком заботиться о производительности, оптимизации можно добавлять по мере необходимости, когда они понадобятся.
- Не пытаться бороться со сложившимися вещами, а плыть по течению.
- Избегать перфекционизма, обычно хватает и уровня «достаточно хорошо».
- Иногда можно срезать углы, особенно, если что-то можно сделать позднее.
Остальные принципы:
- Реализация не должна быть привязана к конкретной платформе. Некоторые возможности могут быть доступны не всегда, но базовая функциональность должна работать везде.
- Не нагружать пользователей деталями, обработку которых может взять на себя машина.
- Поддержка и продвижение платформонезависимого пользовательского кода, но без ограничения доступа к возможностям и особенностям платформ.
- Большие сложные системы должны предоставлять несколько уровней для расширения.
- Ошибки не должны быть фатальными и незамеченными — пользовательский код должен иметь возможность перехватить и обработать ошибки.
- Ошибки в пользовательском коде не должны влиять на функциональность виртуальной машины и не должны приводить к неопределённому поведению интерпретатора и краху процессов.
Читать на dev.by