Ruby Tutorial for Python Programmers: как сделать переход

Ruby Tutorial for Python Programmers Программирование и разработка

Ruby — это универсальный динамический язык программирования с открытым исходным кодом, ориентированный на простоту и производительность. Язык программирования Ruby часто сравнивают с Python из-за их сходства. Многие разработчики говорят, что изучать Ruby легче, если вы знаете Python из-за их сходства. Однако эти два языка существенно различаются.

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

Ruby против Python

Ruby и Python — популярные языки программирования, известные своей скоростью, простотой и удобным синтаксисом. Оба языка являются гибкими, объектно-ориентированными, динамическими и имеют множество полезных фреймворков и библиотек для использования, особенно для веб-приложений и веб-разработки ( Ruby on Rails для Ruby или Django для Python).

Ruby — это интерпретируемый язык программирования высокого уровня, созданный в 1995 году Юкихиро Мацумото. Его целью было создать объектно-ориентированный язык сценариев, который улучшил бы другие языки сценариев того времени.

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

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

Ruby Python
Никаких примитивных типов данных. Все есть объект. Имеет примитивные типы и объекты
Менее доступные функции. В основном полагается на методы. Множество доступных функций
Невозможно изменить встроенные классы Может изменять встроенные классы
Поддерживает кортежи с помощью Ринды. Другие коллекции включают Arrays, Hash, Set и Struct. Поддерживает кортежи, наборы, словарь (хэш) и списки
Итераторы встречаются реже Итераторы очень распространены

Карьера

Оба языка используют крупные компании. Компании, использующие Python, включают YouTube, Instagram, Spotify, Reddit, Dropbox, а Ruby используется в Hulu, Basecamp, GitHub и Airbnb. Разработчики Ruby также, как правило, получают более высокую зарплату, чем разработчики Python. В опросе StackOverflow за 2020 год указана средняя мировая зарплата Ruby в 71 тысячу долларов, а у Python — 59 тысяч долларов.

И Ruby, и Python предлагают более высокую годовую зарплату, чем другие языки разработки программного обеспечения, включая PHP, JavaScript и Java.

Машинное обучение

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

Веб-фреймворки

Основные веб-фреймворки для Ruby и Python, Django и Ruby on Rails довольно похожи. Оба основаны на классическом шаблоне модель-представление-контроллер (MVC), и оба предоставляют аналогичные репозитории (PyPi для Python и RubyGems для Ruby). Оба фреймворка работают хорошо, и их легко изучить.

Тестовая среда

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

Читайте также:  Как преобразовать строку в int в C++?

Сообщество

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

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

Сводка различий в основном коде

Теперь, когда мы понимаем разницу между Ruby и Python на высоком уровне, давайте погрузимся в основные различия кода между ними. Ниже мы собрали основные отличия от Python.

На языке программирования Ruby:

  • Строки изменчивы
  • Вы можете сделать константы
  • Скобки для большинства вызовов методов необязательны
  • Есть только один изменяемый контейнер списка (массив)
  • Нет классов «нового стиля» или «старого стиля».
  • Только falseи nilоценить как ложь, а все остальное -true
  • Вы никогда не получаете прямого доступа к атрибутам. Вместо этого мы используем вызовы методов.
  • Мы используем elsifвместоelif
  • Мы используем requireвместоimport
  • yield выполняет другую функцию, которая передается в качестве последнего аргумента, затем возобновляет
  • Мы используем public, privateи protectedдля доступа

Hello World with Ruby

Теперь, когда мы понимаем, чем Ruby и Python различаются на уровне кода, давайте посмотрим на некоторый реальный код Ruby, начиная с классической программы Hello World. Взгляните ниже и обратите внимание, насколько просто здесь синтаксис Ruby.

puts «Hello World!»

Здесь putsключевое слово используется для печати. Помните: код Ruby очень удобен для чтения и предназначен для имитации разговорного английского языка.

Есть даже более простой способ сделать это. Ruby поставляется со встроенной программой, которая будет показывать результаты любых операторов, которые вы ему скармливаете, и называется Interactive Ruby (IRB). Это лучший способ изучить Ruby. Сначала откройте IRB:

  • macOS: откройте терминал и введите irb. Нажмите Enter.
  • Linux: откройте полку, введите irbи нажмите Enter.
  • Windows: откройте Interactive Ruby из меню «Пуск» (см. Раздел «Ruby»).

Если вы наберете:

"Hello World"

Вы получите следующее:

irb(main):001:0"Hello World"
=> "Hello World"

Вторая строка сообщает нам результат последнего выражения. Мы можем распечатать это, используя putsкоманду, которую мы узнали ранее.

irb(main):002:0> puts "Hello World"
Hello World
=> nil

Вот => nilрезультат выражения, так как putsвсегда возвращает nil.

Краткое руководство по синтаксису Ruby

Давайте теперь быстро рассмотрим основы синтаксиса Ruby, который может отличаться от того, к которому вы привыкли в Python. Обратите внимание на то, чем отличается Ruby и насколько он похож на то, что вы читаете.

Присвоение переменной

В Ruby вы назначаете имя переменной с помощью оператора присваивания =, например:

puts number = 1

Вот список различных типов переменных в Ruby:

  • Локальные переменные ( something)
  • Переменные экземпляра ( @something)
  • Константы ( Somethingили SOMETHING)
  • Глобальные переменные ( $something)

Идентификаторы и ключевые слова

Ключевые слова и идентификаторы похожи на Python. Идентификаторы чувствительны к регистру и могут состоять из буквенно-цифровых символов и подчеркивания _.

Читайте также:  Что такое регулярное выражение? Регулярные выражения JavaScript

Зарезервированные ключевые слова Ruby включают следующее:

 

Strings

В Ruby строка — это последовательность символов внутри кавычек » «. Мы также можем использовать одинарные кавычки.

Вы можете объединять строки знаком плюса +.

puts «snow» + «ball»

В Ruby умножение String на число будет повторять String много раз.

puts «Ruby» * 3

Некоторые важные методы для строк Ruby включают в себя:

  • size
  • empty?
  • include?
  • gsub
  • split

Совет от профессионала:% ярлык со знаком процента в Ruby можно использовать со строками и массивами

  • %wсоздаст массив строк
  • %iс созданием массива символов
  • %qсоздаст строку без кавычек

Hashes

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

{ "one" => "eins", "two" => "zwei", "three" => "drei" }

Это определяет Hash с тремя парами ключ / значение, поэтому мы можем рассмотреть три значения (строки «eins», «zwei«и «drei») с использованием трех разных ключей (строки «one», «two«и «three»).

Некоторые важные методы для хэшей Ruby включают в себя:

  • key?
  • fetch
  • merge
  • new (для значений по умолчанию)

Array

В Ruby мы создаем массив, разделяя значения запятыми и заключая этот список в квадратные скобки, например:

[1, 2, 3]

Примечание: массивы Ruby всегда сохраняют свой порядок

Как и в Python, с массивами можно делать множество вещей. Наиболее важные методы:

  • size
  • empty?
  • push / pop
  • join
  • flatten

Вот пример оператора пересечения &, который находит пересекающиеся части наших массивов:

puts ([1, 2, 3] & [2, 3, 4])

Parenthesis

В Ruby скобки и точки с запятой не требуются, но мы можем их использовать. Однако мы следуем этим основным правилам:

  • Используйте круглые скобки с аргументами метода: def foo(a, b, c)
  • Используйте круглые скобки для изменения приоритета операции: (a.size + b.size) * 2
  • Не используйте круглые скобки при определении метода без аргументов: def foo

Commenting

Есть три основных способа добавления комментариев к программе Ruby.

# Single line comment
# Multiple
# Lines
=begin
Block fashion
Commenting
=end

Methods

В Ruby мы определяем методы с помощью defключевого слова, за которым следует method_name. ОНО заканчивается endключевым словом.

def method_name
# Statement 
# Statement 
.
.
end

Мы передаем параметры нашим методам в круглых скобках.

def method_name(var1, var2, var3)
# Statement 
# Statement 
.
.
end

Classes

В Ruby мы создаем классы, используя classключевое слово, за которым следует имя класса.

class Class_name

end

Примечание: первая буква названия вашего класса должна быть заглавной.

В Ruby объекты создаются с помощью newметода.

object_name = Class_name.new

Conditionals

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

number = 5
if number.between?(1, 10)
  puts «The number is between 1 and 10»
elsif number.between?(11, 20)
  puts «The number is between 11 and 20»
else
  puts «The number is bigger than 20»
end

Примечание:elsif и elseзаявления не являются обязательными. У вас может быть ifоператор без ветвей elsifили else, ifоператор только с else, или у вас может быть ifоператор с одним или несколькими elsifоператорами.

В Ruby также есть сокращение для работы с условными операторами. Итак, мы могли бы написать этот фрагмент кода:

number = 5

if number.odd?
  puts "The number is odd."
end

Вместо этого:

number = 5
puts "The number is odd." if number.odd?

Оцените статью
bestprogrammer.ru
Добавить комментарий