1. История и основные идеи в основе языка Python.
История
Появился в 1991 году. Создатель - Guido van Rossum (Гвидо ван Россум). Benevolent dictator for life (Великодушный пожизненный диктатор).
Python (Пайсон) - Высокоуровневый динамический строго типизированный интерпретируемый язык программирования общего назначения.
- Высокоуровневый. Высокий уровень абстракции от деталей исполняющей системы.
- Динамический. Типы выводятся и проверяются во время выполнения (run-time). С версии 3.5 можно также использовать compile-time проверки.
- Строго типизированный. Сильно ограничены неявные приведения типов (строка + число и т.п.).
- Общего назначения. Нет ограниченной области применения (в противоположность domain-specific языкам).
Характерные особенности
- Кроссплатформенный
- Мультипарадигменный (процедурное, ООП, функциональное, метапрограммирование и др.)
- Автоматическое управление памятью (refcounting + cycle-detecting garbage collector)
Плюсы
- Легко разрабатывать – краткость и выразительность
- Легко читать – читабельность как одна из целей в основе дизайна языка
- Легко отлаживать – интерактивная проверка, можно всё динамически посмотреть
Минусы
- Относительно медленно работает – частично компенсируется интеграцией с другими языками или использованием альтернативных интерпретаторов.
- Нет статических проверок компилятора – компенсируется качественным автоматизированным тестированием.
Интеграция с другими языками
- Многие модули написаны на Си и C++
- Проработанные механизмы для создания обёрток к модулям на других языках
- Механизмы использования Python из других языков
Расширяемость и библиотеки
Язык был изначально задуман легко расширямемым: небольшое ядро + библиотеки.
- Стандартная библиотека
- Внешние модули
Стандартная библиотека
- регулярные выражения
- юнит-тесты
- логгирование
- поддержка различных стандартных форматов и протоколов
- работа с базами данных
- многопоточность и многопроцессность
- etc.
Огромное количество внешних модулей
- web-фрэймворки
- web-сервера
- поддержка различных сетевых протоколов
- фрэймворки тестирования, автоматизации,
- документирования, системного администрирования
- web-crawler-ы
- научные вычисления, обработка текста и изображений
Идеология языка и соглашения
Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Питона», или «Дзен Пайтона»). Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию). Автором этой философии считается Тим Петерс (Tim Peters).
PEP – Python Enchancement Proposal - документы стандартизированного формата в которых содержатся предложения по развитию языка и описание уже имеющихся элементов.
Хорошо выполняемые задачи
Python особенно популярен в задачах, где функциональность гораздо важнее эффективности: исследовательское программирование и написание прототипов. Даже если нужно быстро, язык будет полезен просто как инструмент для написания небольших и средних серверных и вспомогательных прикладных программ для обработки данных. Позволяет просто реализовать весь набор элементов веб-приложения любой сложности. Используется в значительном количестве крупных компаний разрабатывающих ПО или обрабатывающих данные так или иначе используется Python.