×

Восстановление пароля по логину или SIP ID

Языку Python исполнилось 30 лет

20 февраля 1991 года Гвидо ван Россум опубликовал в группе alt.sources первый выпуск языка программирования Python, над которым работал с декабря 1989 года в рамках проекта по созданию скриптового языка для решения задач системного администрирования в операционной системе Amoeba, который был бы более высокого уровня, чем Си, но, в отличие от Bourne shell, предоставлял бы более удобный доступ к системным вызовам ОС.

Имя для проекта было выбрано в честь комедийной группы Монти Пайтон (Monty Python). В первой версии была реализована поддержка классов с наследованием, обработка исключений, система модулей и базовые типы list, dict и str. Реализация модулей и исключений была заимствована из языка Modula-3, а стиль кодирования на основе отступов из языка ABC, в разработке которого Гвидо ранее принимал участие.

В процессе создания Python Гвидо руководствовался следующими принципами:

  • Принципы, которые позволили сэкономить время при разработке:
  • Заимствование полезных идей из других проектов.
  • Стремление к простоте, но без чрезмерного упрощения (принцип Эйншейна "Всё должно быть изложено так просто, как только возможно, но не проще").
  • Следование философии UNIX, в соответствии с которой программы реализуют какую-то одну функциональность, но делают это хорошо.
  • Не слишком заботиться о производительности, оптимизации можно добавлять по мере необходимости, когда они понадобятся.
  • Не пытаться бороться с сложившимися вещами, а плыть по течению.
  • Избегать перфекционизма, обычно хватает и уровня "достаточно хорошо".
  • Иногда можно срезать углы, особенно, если что-то можно сделать позднее.

Остальные принципы:

  • Реализация не должна быть привязана к конкретной платформе. Некоторые возможности могут быть доступны не всегда, но базовая функциональность должна работать везде.
  • Не нагружать пользователей деталями, обработку которых может взять на себя машина.
  • Поддержка и продвижение платформонезависимого пользовательского кода, но без ограничения доступа к возможностям и особенностям платформ.
  • Большие сложные системы должны предоставлять несколько уровней для расширения.
  • Ошибки не должны быть фатальными и незамеченными - пользовательский код должен иметь возможность перехватить и обработать ошибки.
  • Ошибки в пользовательском коде не должны влиять на функциональность виртуальной машины и не должны приводить к неопределённому поведению интерпретатора и краху процессов.

Источник: OpenNET.ru