Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python vs Ruby

Python vs Ruby

Григорий Петров (Фаматек)

В докладе автор сравнит сильные стороны синтаксиса языков на основании многолетнего опыта практического использования. Прагматичный взгляд на то, чем каждый из языков может «зацепить» опытного разработчика — и ничего лишнего.

Moscow Python Meetup

March 03, 2013
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Зачем сравниваем? Нельзя хорошо решать все задачи, поэтому языки программирования

    постепенно специализируются на определенном круге задач. Знание того, на чем специализирован язык, позволяет лучше выбрать какой код писать и какие библиотеки использовать в спорных ситуациях.
  2. Что сравниваем? • Сильные и слабые стороны - то, что

    заметно при каждодневном использовании. • Блоки и list comprehension сами по себе не сильные и не слабые стороны.
  3. Документация лучше С вступительной частью, литературными отступлениями и многочисленными примерами.

    Для Ruby многие модули, например DL или Win32API не документированы вообще, документация в целом значительно слабее.
  4. Потоки • В python есть давно, в Ruby 1.9+ •

    Python активно поднимает GIL, Ruby - нет.
  5. Именованные аргументы Появились в Ruby только в версии 2.0, вышедшей

    несколько дней назад. До этого - эмуляция через словари.
  6. Легкость взаимодействия с OS Благодаря встроенной библиотеке ctypes. Встроенная в

    Ruby библиотека dl намного хуже документирована и сложнее в использовании, авторы рекомендуют сторонние библиотеки ffi.
  7. Переход между версиями Мейнстрим для Python - версии 2.6 и

    2.7, которые практически не отличаются друг от друга. Переход на 3.0 - неторопливый и никого ни к чему не обязывающий процесс. Разница между Ruby 1.8 и 1.9 огромна, переход в самом разгаре, есть жертвы :)
  8. Встроенный установщик пакетов Команда gem позволяет скачать и установить нужную

    версию пакета и его зависимостей. Для Python существует как минимум три конкурирующие системы установки пакетов, которые нужно устанавливать отдельно. В понедельник на PyCon Russia анонсировали четвертую.
  9. Удобный вызов shell команд С помощью заключения их в апострофы.

    В Python для корректной работы с путями необходимо передавать аргументы списком в subprocess.check_output
  10. Синтаксические мелочи • Для классвое не нужно везде писать self

    • Индексирование за пределами контейнера • switch
  11. Другие батарейки • Встроенная поддержка OpenSSL • Встроенная поддержка OLE

    в Windows • Встроенный шаблонизатор erb • Временные папки с автоудалением • Время и дата с поддержкой UTC • Чтение файлов всегда в binary mode • Потоку можно сделать exit
  12. Вопросы? Можно задать сейчас или позже на e-mail: [email protected] skype:

    eyeofhell Рассказывал и показывал Петров Григорий, руководитель R&D отдела Фаматек