Чому я раніше не любив Python, а тепер використовую його? – Роздуми Арьяна
Контекст та досвід автора
Автор каналу ArjanCodes розповідає, що раніше не подобався Python, але зараз керує великим YouTube-каналом, присвяченим цій мові. Він починав програмування з Basic на Commodore 64, потім вивчав Turbo Pascal, C++, Java, Modula-2, PHP, JavaScript, C, а під час докторантури використовував Python як скриптовий шар. Має досвід роботи з різними типами мов: строгими, функціональними, системними та скриптовими.
Недоліки Python з точки зору автора
-
Відступи визначають область видимості
Автор вважав це крихким підходом, оскільки помилка в пробілі або табуляції може змінити логіку коду. Він досі вважає, що пробіли не повинні мати семантичного значення. -
Відсутність строгості
У порівнянні з C++ або Java, де компілятор перешкоджає помилкам, у Python багато проблем виникає лише під час виконання. Анотації типів допомагають, але вони необов'язкові та не контрольуються інтерпретатором. -
Незручність у окремих місцях
Наприклад, анотації типів для callable або generics (до Python 3.12) виглядають громіздко та незрозуміло. -
Дизайн класів
Використання__init__як конструктора здавалося "костилем". Необхідність явно вказуватиself, плутанина між змінними класу та екземпляра, а також неконсистентність у data classes викликали роздратування. -
Імпорти та пакування
Відносні та абсолютні імпорти, визначення папок як пакетів — це довго було джерелом плутанини. -
Керування залежностями
Історично інструменти (virtual environments, pip, poetry) були безладними, хоча зараз ситуація покращилася (наприклад, завдяки uv). -
Продуктивність
Python повільніший за C++, Rust або Go, що часто стає предметом критики.
Чому автор все одно використовує Python?
- Простота налаштування та швидкість розробки – ідеальний для скриптів та автоматизації.
- Величезна екосистема – інтегрується з усім, особливо в сфері AI та машинного навчання, де Python є стандартом.
- Агенти зі штучним інтелектом – чудово розуміють Python через велику кількість навчальних даних.
- "Клейовий код" – 90% завдань автора полягають у інтеграції API, баз даних, платіжних систем, email-сервісів тощо. У таких випадках продуктивність Python рідко є вузьким місцем (найчастіше – мережа, база даних або зовнішні API).
Ширший урок: мислення розробника
Автор застерігає від відождествлення себе з мовою програмування. Якщо ви вважаєте себе "Python-розробником", критика мови може сприйматися як особиста образа. Це заважає об'єктивно оцінювати компроміси та вибирати інструменти за потребами проекту.
Ключові ідеї:
- Немає "найкращої" мови – є інструменти, найбільш придатні для конкретного контексту.
- Вибір залежить від команди, екосистеми, інфраструктури та домену (наприклад, веб-додатки, embedded systems, AI).
- Дозволяється використовувати різні мови в різних проектах – не потрібно "одружуватися" з одним інструментом.
- Не варто осуджувати вибір інших розробників, оскільки їхні обмеження та контекст можуть бути невідомими.
- Архітектура та якість дизайну важливіші за вибір мови.
Висновок
Python має недоліки, але його практичні переваги – простота, екосистема та придатність для інтеграцій – роблять його чудовим вибором для багатьох завдань. Автор наголошує на важливості об'єктивного підходу до вибору інструментів та уникання мовних "таборів". Для професійного зростання розробникам варто оптимізувати результати, а не дотримуватися ідеології.