Ответ На Вопрос Python Против Ruby

Пользователь адское око Недавно я написал статью Питон против Руби .

Получился отличный холивар.

Не могу не поддержать.

Сначала думал написать в комментарии, но ответ получился слишком длинным.

Обо мне: Я пишу Python более десяти лет, а с Ruby знаком довольно поверхностно.

Недавно я стал разработчиком ядра Python с правами на коммит. На последнем американском PyCon в Санта-Кларе Гвидо ван Россум выступил с замечательной речью — всем рекомендую посмотреть.

В частности, он отметил, что Python и Ruby — почти братья-близнецы.

Различия между ними гораздо меньше, чем контраст между этими языками и всеми остальными.

Давайте дружить, а не выяснять, кто круче.

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

— В Python есть встроенный модуль SSL. Из-за давних лицензионных склок с Microsoft (поправьте меня, если ошибаюсь) этот модуль не включен в дистрибутив Windows. Во всех остальных ОС он есть.

— подпроцесс позволяет указать параметры командной строки в одной строке и должен вызываться с параметром оболочки=True. Это не так лаконично, как скобки, но выход есть.

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

Также есть код возврата, stderr, интерактивность.

— Python может импортировать модули, используя относительный путь.

Это относительный путь для модулей, а не файлов.

Модули должны находиться в пакетах (папках, содержащих __init__.py).

Читатели уже отметили этот момент. - codecs.open позволяет указать кодировку открываемого файла.

open поддерживает параметр кодирования для тех же целей.

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

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

Разное: Как уже заметили читатели, некоторые части не включены в дистрибутив Python, но доступны в виде сторонних библиотек.

— пыц.

Список часовых поясов обновляется чаще, чем раз в полтора года при выпуске нового Python. В документации нет ссылки на pytz — исправим.

- шаблонизатор.

Более чем строка.

Шаблон не входил в стандартную поставку.

Потому что непонятно, какой шаблонизатор подойдет всем.

jinja2, которым я пользуюсь, великолепен.

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

Есть много полезных вещей.

Но если библиотека включена в стандартный Python, она должна оставаться обратно совместимой.

Зачастую это слишком дорого и не позволяет быстро развиваться, выпуская релизы каждые три месяца, а не раз в полтора года, как это делает Python. И наконец, главное.

python2 уже мертв.

Да, мы часто исправляем ошибки.

Python2.7.3 скоро появится.

Но Deuce закончился два года назад. Все больше библиотек подтверждают свою поддержку «Тройки».

— SQLAlchemy сделала это очень давно.

- Джинга2 - тоже.

- Пирамида - неделю назад. — WebOb, от которого зависела Pyramid, — в конце прошлого года.

— Джанго тоже перейдет на три, — пообещали они.

Ребята, Python3 — это ваше будущее, которое преследует вас по пятам.

Будь готов! UPD: Django 1.5, который выйдет осенью, будет иметь экспериментальную поддержку Python 3.3. Теги: #python #python3 #python

Вместе с данным постом часто просматривают: