Перейти к содержимому
Текст2 мин чтения

📣 Рубрика: когда синтаксический сахар становится горьким 🍯➡️💀 (просто дайте побомбить)

Сегодня меня просто уже добило от одной вещи в Python 😤

➡️ Прежде чем начнем: "Что такое синтаксический сахар?"

Это когда сложные операции делают визуально простыми для программиста. Представьте: у вас есть два объекта "Машина", и их нужно объединить. По факту там куча логики — моторы сложить, подвески учесть, привод проверить... Огромная функция получается.

А с синтаксическим сахаром можно просто написать: `машина1 + машина2` — и всё магически работает ✨

🎁 В чём проблема?

В принципе, я не против такого подхода. Сам использую, где нужно.

НО! Есть некоторые решения, которые меня просто бесят. Например, в модуле Path есть оператор / для объединения путей. Все его используют, а меня лично раздражает 🤷‍♂️ (ПОТОМУ ЧТО ЭТО ВООБЩЕ НЕ ИНТУИТИВНО)

А сегодня я столкнулся с настоящим адом: нельзя нормально использовать type annotations с Pandas и NumPy!

Хочешь написать numpy.ndarray | None — а не работает! Потому что эти ребята переопределили оператор | для своего синтаксического сахара.

Приходится либо возвращаться к старому синтаксису (до Python 3.10), либо городить None | numpy.ndarray в самом конце.

😡 Мой единственный вопрос: НАХУЯ?

Ну серьёзно, можно же было сделать отдельные объекты для типизации! Зачем ломать стандартное поведение языка? (конечно вы мне скажете что это было до 3.10, но кто мешал для 3.10 убрать этот оператор или добавить хинты отдельные, А?)

В итоге вместо красивого кода приходится ебаться с TypeHints просто чтобы жить 🫠

Мораль: иногда синтаксический сахар превращается в синтаксическую соль. И сыплют её прямо в глаза разработчикам.

P.s. пжлст откажитесь вы уже от pandas+numpy, в пользу polars и подобных решений, ну это в разы лучше написанные библиотеки.

Конец записи