Oт Python към Ruby

Python е друг език за обща употреба, вдъхновил разработката на Ruby.

Прилики

Както в Python, така и в Ruby …

  • Съществува интерактивен шел (наречен irb).
  • Можете да четете документация от команден ред (използва се ri, вместо pydoc).
  • Няма специални знаци за терминирането на реда.
  • Литералите от знаци могат да бъдат разположени на няколко реда, подобно на низовете в ”””
  • Квадратните скоби са за масиви, къдравите са за речници (които в Ruby са наречени “хешове” ).
  • Масивите работя по същия начин
  • Обектите са strongly и dynamically писани.
  • Всичко е обект, а променливите са просто референции към обекти.
  • Въпреки, че ключовите думи са различни, изключенията работят еднакво.
  • Разполагате с вградено средство за документация (В Ruby се казва rdoc).

Разлики

За разлика от Python, в Ruby …

  • Низовете могат да се променят.
  • Можете да създавате константи.
  • Съществуват няколко конвенции в именоването ( имената на класовете започват с главна буква, а тези на методите с малка ).
  • Съществува точно един вид контейнер ( масив ), който може да бъде променян.
  • Низовете, оградени с двойни кавички, позволяват употребата на escape sequences (като \t) и специален синтаксис за заместване и интерполация на изрази ( не се налага слепването на низове – "add " + "strings " + "together").
  • Няма “new style” или “old style” класове.
  • Нямате директен достъп до атрибутите. В Ruby, това са извиквания на метод
  • Употребата на скоби при извикването на методи не е задължителна.
  • Съществуват public, private, и protected за контрол на достъпа, за разлика от _voluntary_ underscore __convention__ в Python.
  • “mixins” се използват вместо множествено наследяване.
  • Можете да добавяте или модифицирате вградените класове.
  • Налични са true и false вместо True и Falsenil вместо None).
  • Когато тестваме за истинност, само false и nil представляват лъжа. Всичко друго е истина (включително 0, 0.0, "" и []).
  • Вместо elsif имаме elif.
  • Ползваме require вместо import.
  • Използват се коментари за генерирането на документация над дефиницията на класове/методи/израз
  • Съществуват известен брой shortcut-и, които улесняват и увеличават продуктивността в Ruby.