Язык программирования Python

Python — это высокоуровневый язык программирования общего назначения, который используется в том числе и для разработки веб‑приложений. Язык ориентирован на повышение производительности разработчика и читаемости кода.

Правильное русское произношение названия языка программирования — Пайтон, но чаще используется искажённое — Питон.

Python поддерживает несколько парадигм программирования: структурное, объектно‑ориентированное, функциональное, императивное и аспектно‑ориентированное. В языке присутствет динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Программный код на Python организовывается в функции и классы, которые могут объединяться в модули, а они в свою очередь могут быть объединены в пакеты. Python обычно используется как интерпретируемый, но может быть скомпилирован в байт‑код Java и в MSIL (в рамках платфоры .NET).

Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python» («Дзен Питона» или «Дзен Пайтона»):

  • Красивое лучше, чем уродливое.
  • Явное лучше, чем неявное.
  • Простое лучше, чем сложное.
  • Сложное лучше, чем запутанное.
  • Плоское лучше, чем вложенное.
  • Разреженное лучше, чем плотное.
  • Читаемость имеет значение.
  • Особые случаи не настолько особые, чтобы нарушать правила.
  • При этом практичность важнее безупречности.
  • Ошибки никогда не должны замалчиваться.
  • Если не замалчиваются явно.
  • Встретив двусмысленность, отбрось искушение угадать.
  • Должен существовать один — и, желательно, только один — очевидный способ сделать это.
  • Хотя он поначалу может быть и не очевиден, если вы не голландец.
  • Сейчас лучше, чем никогда.
  • Хотя никогда зачастую лучше, чем прямо сейчас.
  • Если реализацию сложно объяснить — идея плоха.
  • Если реализацию легко объяснить — идея, возможно, хороша.
  • Пространства имён — отличная штука! Будем делать их побольше!

По производительности интерпретируемый Python похож на все остальные подобные языки, но возможность компиляции в байт‑код позволяет добиться большей производительности.

По сравнению с Ruby и некоторыми другими языками, в Python отсутствует возможность модифицировать встроенные классы, такие, как int, str, float, list и другие.

В Python присутствует глобальная блокировка интерпретатора (GIL) — при своей работе основной интерпретатор постоянно использует большое количество потоко‑небезопасных данных. В основном это словари, в которых хранятся атрибуты объектов, и обращения к внешнему коду, поэтому, во избежание разрушения этих данных при совместной модификации из разных потоков, перед началом исполнения нескольких инструкций (обычно ста) поток интерпретатора захватывает GIL, а по окончании освобождает.

Существует несколько реализаций языка — CPython (основная), Jython, PyS60, IronPython, Stackless, Python for .NET, PyPy, python-safethread, Unladen Swallow, tinypy.

Разработка на Python

Python — очень универсальный язык.

Он подходит и для веб‑разработки, но с прикладной точки зрения обычно это не лучший выбор.

  • Ruby в веб‑разработке обычно эффективнее и экономически выгоднее (с идентичным качеством результата).
  • Компилируемые языки (Go / Elixir / Java) — значительно эффективнее по производительности.
  • Разработка проекта на PHP будет заметно дешевле.

Но в сферах анализа данных и машинного обучения Python сейчас несомненно вне конкуренции.

Тематические статьи

Язык программирования PHP

PHP — язык программирования, который наиболее распространён в сфере веб‑разработки.

В сфере создания динамических веб‑сайтов и веб‑приложений PHP занимает значительную долю рынка. Практически все популярные CMS для веб‑разработки написаны на PHP. Наиболее важные преимущества PHP — простота освоения, адекватная скорость работы, мультипарадигмальность. Критикуют PHP обычно за низкий средний уровень разработчиков и, как следствие, за низкую культуру разработки, проблемы с сопровождаемостью и надёжности проектов.

веб-разработка
языки программирования
PHP
бэкенд
Статья опубликована в 2019 году

Язык программирования Java

Java — это достаточно универсальный язык программирования, который часто используется и для веб‑разработки.

языки программирования
Java
мобильные приложения
веб-разработка
мобильные устройства
Статья опубликована в 2014 и обновлена в 2018 году

Серверные языки программирования

Серверные языки программирования нужны для реализации бизнес‑логики, то есть разработчик при помощи языка программирования описывает возможные сценарии использования сайта или приложения.

бэкенд
веб-разработка
языки программирования
Статья опубликована в 2014 году

Django — фреймворк на Python

Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб‑приложений, написанный на языке программирования Python.

платформы
фреймворки
Python
бэкенд
веб-разработка
Статья опубликована в 2014 году

Язык программирования Ruby

Ruby (ruby — рубин, руби) — интерпретируемый мультипарадигмальный язык программирования: динамический, объектно‑ориентированный, рефлективный, императивный, функциональный. Активно используется в веб‑разработке, в системном администрировании и в работе операционных систем (Mac OS X, Linux, BSD).

Ruby
Ruby on Rails
языки программирования
бэкенд
веб-разработка
Статья опубликована в 2014 и обновлена в 2022 году

Big Data — хранение, обработка и анализ огромных массивов информации

​Big Data — это данные огромных объёмов, обработка и анализ которых требует подходов, инструментов и методов, которые существенно отличаются от классических.

большие данные
машинное обучение
Статья опубликована в 2014 году

Адаптивный и отзывчивый дизайн

Для обеспечения хорошего отображения сайтов на мобильных устройствах (планшетах и смартфонах) обычно создаётся отзывчивый или адаптивный дизайн.

Суть подхода заключается в изменении размера и расположения блоков, коррекции размера шрифтов, а также в отключении не самых важных блоков в случае, если пользователь заходит на сайт с устройства с небольшим экраном.

фронтенд
веб-разработка
мобильные устройства
HTML
CSS
адаптивный веб-дизайн
дизайн
Статья опубликована в 2019 году

Поддержка устаревших браузеров

Поддержка устаревших браузеров, как правило, накладывает ограничения на функционал и гарантированно увеличивает стоимость разработки и сопровождения.

фронтенд
веб-разработка
Статья опубликована в 2014 году

Кроссбраузерность — корректная работа сайта в разных браузерах

Браузеров много и они несколько по‑разному отображают страницы. Способность сайта корректно отображаться в разных браузерах называется кроссбраузерность.

фронтенд
веб-разработка
Статья опубликована в 2014 году