RubyVsPython

Я уже где-то в твиттере писал свои впечатления от первого знакомства с python после ruby, сегодня пришла очередная волна впечатлений, запишу их здесь.

Стандартная поставка:

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

Использование модулей:

  • В Python при установке новых модулей они с высокой вероятностью по зависимостям ничего не вытянут. Ну пару других модулей максимум.
  • В Ruby почти всегда гем зависит от довольно большого количества других гемов. От этого и dependency hell вероятнее, и вообще это неудобно, если программирование на ruby — не твое основное занятие.

Названия модулей:

  • Мне показалось, что в Python модули чаще называются сообразно тому, что они делают, по названию модуля почти всегда можно понять для чего он.
  • В Ruby очень популярно давать гемам всякие странные названия, которые прикольно звучат, но по которым сразу и не догадаешься о чем они. Соответственно, их сложнее искать.

Интерфейсы:

  • Многие альтернативные модули (см., например, json) в Python делают ту же вещь, с тем же интерфейсом, но с другой реализацией. Т.е. часто можно менять одно на другое вообще с минимальными изменениями кода.
  • В Ruby очень любят плодить интерфейсы.

Выводы:

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

Продолжение, я думаю, последует.

Comments