Главная » Хабрахабр » [recovery mode] Что мне не нравится в Python

[recovery mode] Что мне не нравится в Python

Привет, Хабр!

Я подумал о том чего мне не хватает в Python, и что мне не нравится.

Дисклеймер: это мое субъективное мнение, оно может не совпадать с Вашим.

Я с удовольствием программирую на Python, но у любой технологии (языка программирования в частности) есть свои недостатки, хотя возможно Вы не согласитесь со мной.

1. Отсутствие const

Это наверное один из самых первых пунктов, который приходит в голову. Константы это реально удобно, они могут существенно уменьшить число ошибок в коде. В Питоне нет поддержки констант.

Конечно, Вы можете называть переменные большими буквами и считать их константами (не изменять их).

Т.е если Вы присвоите значение переменной CONSTANT, Ваша IDE никогда не скажет Вам, что Вы делаете что-то не так. Но проблема в том, что это не прописано в PEP8.

2. Медленная производительность

Здесь я имею в виду производительность именно кода на Питоне. Если питоновский скрипт использует для тяжелых вычислений библиотеку на Си, то все становится гораздо быстрее.
Вся стандартная библиотека по максимуму написана на Питоне, не на Си.

Например, стандартный модуль json имеет простое и понятное апи, но с другой стороны значительно медленнее сторонней реализации ujson (написан на Си). С одной стороны это увеличивает ее портируемость (на альтернативные реализации вроде PyPy).
С другой стороны это существенно снижает скорость.

3. Отсутствие switch

Когда я спрашивал знакомых питонистов, что им не хватает в языке многие сказали, что конструкции switch как в Си подобных языках.

как мог бы выглядеть switch в Python

switch a:
case 1:
i=2;
break
case 2:
i=3;
break
default:
i=4

Пример, понятное дело выдуманный, но согласитесь, что это приятнее чем
if/elif/else, особенно когда условий, которые нужно проверить множество.

4. Обратная совместимость не гарантируется

Основная боль это, конечно, отличия между 2 и 3 версией.

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

По-прежнему число проектов на 2 версии велико. Но согласитесь, неприятно, что для работы всех программ на Питоне нужно иметь 2 интерпретатора: 2 версии и 3.

Кстати, в 4 версии Python обратную совместимость вроде как опять сломают (PEP401)

кратко о PEP 401

Все очень просто.
Оператор != заменяют на
Вместо того чтобы писать 1!=1 мы будем писать 11

Опробовать новый оператор можно уже сейчас:

from __future__ import barry_as_FLUFL
print(barry_as_FLUFL) #_Feature((3, 1, 0, 'alpha', 2), (4, 0, 0, 'alpha', 0), 262144)
1!=1 #выбросит SyntaxError

UPD: Умные люди в комментариях сказали, что это первоапрельская шута от разработчиков. Но смотря на это, в Python все равно множество обновлений привели к нарушению обратной совместимости.
На этом все.

А что Вы хотели бы видеть в Питоне и чего Вам не хватает?

Пишите Ваше мнение в комментариях.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Анализ кода CUBA Platform с помощью PVS-Studio

Для Java программистов существуют полезные инструменты, помогающие писать качественный код, например, мощная среда разработки IntelliJ IDEA, бесплатные анализаторы SpotBugs, PMD и другие. Всё это уже используется в разработке проекта CUBA Platform, и в этом обзоре найденных дефектов кода я расскажу, ...

[Из песочницы] Подготовка к промышленному производству ДО-РА

1. Транспортировка образцов после ядерной катастрофы на АЭС Фукусима в Японии и задумывался в виде гаджета – персонального дозиметра-радиометра работающего с одноименным ПО – DO-RA. Проект DO-RA DO-RA.com был рождён в марте 2011 г. Soft на любом смартфоне под мобильные ...