Ruby ca prim limbaj de programare. Ce este „Ruby”? Limbajul de programare Ruby

  • Traducere

am întâlnit Rubin relativ recent, datorită unui cadru minunat Ruby pe șine. Nu mă consider un expert în Ruby, dar am citit PickAxe, am scris mai multe utilitare în Ruby pentru uz personal și am dezvoltat și în Rails în timpul liber.

Ruby este în prezent limba mea principală. am inceput cu TurboPascal la scoala, a studiat CȘi C++ la universitate, a scris o disertație despre Java, și am studiat și eu PHP de la zero, pentru că am vrut să învăț cum să fac site-uri rapid și ușor. Cred că scrierea codului pentru mine este o formă de divertisment, și apoi orice altceva. La început m-am gândit ce limbă să studiez, Piton sau Ruby. Am ales-o pe a doua pentru că nu am vrut ca indentarea incorectă să provoace probleme în codul meu.

Există o mulțime de introduceri, tutoriale, articole și eseuri scrise de guru despre cum să profitați la maximum de Ruby. Acest articol nu este deloc asemănător.

Aceasta este o listă mai modestă, incompletă de motive care vă pot motiva (sau nu) să utilizați Ruby, sau cel puțin să vă jucați cu el. Un cuvânt de precauție: dacă utilizați un alt limbaj de programare pentru muncă sau în alte scopuri, nu vă plângeți dacă nu doriți să-l mai folosiți. Este exact ceea ce mi s-a întâmplat, dar pentru mine nu este atât de important. Rubinul este un limbaj minunat și elegant și, ca multe lucruri de genul acesta, vă poate capta mintea și vă poate rupe sufletul.

Pe scurt, ai fost avertizat.

De ce să înveți Ruby?

1. Obțineți toate facilitățile (plăcerile) fără trucuri.

Rubin a împrumutat tot ce este mai bun de la alte limbaje de programare, de la Convorbire scurtă inainte de Java, din Perl inainte de Piton. Iată caracteristicile de bază pe care le-ați putea vedea, în principiu, în alte limbi:
  • Excepții. Credeți sau nu, excepțiile sunt unul dintre cele mai importante lucruri atunci când dezvoltați programe de orice fel. Programatori la PHP4, nu știu nimic despre ele și vă va spune că puteți pur și simplu să imprimați (erori) pe ecran sau să folosiți propria lor clasă „super-duper” pentru a gestiona erorile. Din fericire pentru noi toți, Rubin vine cu încearcă să prinzi(sau mai bine începe/salvare) și un set de excepții predefinite, extensibile, pentru gestionarea corectă a erorilor.
  • Spații de nume: module Rubin ușurează utilizarea spațiului de nume, acest lucru ar trebui să atragă pasionații C++Și Java.
  • Credințe obișnuite încorporate: Pentru toți experții Perl, poți include ceva în // si devine expresie uzuala, gata pentru comparație (pentru aceasta folosim operatorul =~ ).
  • Supraîncărcarea operatorului: Rubin vă permite să definiți operatori precum +, -, > , etc. pentru oricare dintre clasele tale.
  • Pachete: numite " pietre prețioase„(pietricele), chiar se ridică la înălțimea numelui lor, în plus – lucrează. Pachetele acceptă dependențe și pot fi, de asemenea, fie multi-platformă, fie dependente de platformă.
  • Consola interactivă: poate fi folosită pentru a testa codul interactiv, ca o consolă Piton

2.Vei adora lucrurile mici.

Rubin graţios. De ce? Pentru că nu încearcă să facă codul atât de concis încât să interfereze cu lizibilitatea și înțelegerea. Există câteva sfaturi care vă pot ajuta:
  • Puteți folosi ambii operatori, dacăȘi dacă nuîn expresii condiţionale. Bineînțeles că poți folosi dacă cu sensul opus expresiei, dar folosind dacă nu de obicei duce la mai puține erori. În plus, puteți folosi ambii operatori ca modificatori condiționali, plasându-i după expresie și nu înainte: order.new, cu excepția cazului în care order.exists
  • Puteți utiliza semne de întrebare și semne de exclamare la sfârșitul numelui metodei. Acest acord nu se impune, ci semnul " ? " este folosit când metoda revine Adevărat sau fals, în timp ce semnul " ! " este folosit pentru metode care fac ceva ireversibil, cum ar fi ștergerea unei înregistrări dintr-o bază de date, eliminarea ultimului caracter dintr-un șir etc.
  • Puteți folosi aliasuri ( alias) pentru metodele deja create. În acest fel puteți obține metodele existaȘi există, fără overhead și fără repetiții.
  • Puteți folosi directive attr_reader, attr_writer sau attr_accessor pentru crearea automată getter/setter pentru membrii clasei.
  • Și încă o convenție de denumire: constantele, clasele și modulele sunt scrise cu majusculă, metodele și membrii clasei trebuie să înceapă cu o literă mică, variabilele globale sunt numite începând cu " $ ", numele variabilelor obiect încep cu " @ „, iar numele variabilelor de clasă cu „ @@ ", bine, etc.
  • Când apelați metode, nu trebuie să scrieți paranteze. Puteți scrie să scrieți File.open("/home/h3rald/test.txt") sau pur și simplu File.open "/home/h3rald/test.txt" , ceea ce este deosebit de convenabil cu metodele fără argumente.

3.Nu mai este nevoie să folosiți punct și virgulă.

Vrei să scrii următoarea instrucțiune? Doar mergi la o linie nouă. Faceți clic pe " introduce" și ai terminat. ÎN Rubin Ca în Piton, noua linie separă instrucțiunile, astfel încât să nu fie nevoie să folosiți punct și virgulă tot timpul. Din păcate, asta înseamnă că ca fanii C++, nu vom putea scrie un program pe o singură linie. Dar asta nu e chiar atât de rău, nu?

4.Totul este un obiect, așa cum ar trebui să fie.

Când învăţam Java, mi s-a spus că totul este un obiect.
- „Ce, 14 și 374346.678 sunt obiecte?”
- „Nu, prostule, astea sunt numere!”

ÎN Rubin numerele, caracterele, booleanele și orice altceva este un obiect. Serios. Asta înseamnă că poți scrie lucruri ca acestea:
„NU TREBUIE UTILIZAȚI ÎNTOTDEAUNA MAJUSCULE”. minuscule # va returna „nu ar trebui să folosiți întotdeauna majuscule” în loc de ceva de genul acesta:
Cod #PHP
strtolower(„NU TREBUIE SĂ UTILIZAȚI ÎNTOTDEAUNA MAJUSCULE”)
Acest lucru economisește timp, salvează paranteze și este mai logic.

5.Totul contează.

Sau „nu mai e nevoie să-l mai folosești întoarcere pentru a returna valori.” Pentru a spune rapid astfel: toate instrucțiunile din Ruby returnează o valoare, chiar și atribuiri de variabile, așa că nu trebuie să folosiți cu adevărat cuvântul cheie " întoarcere" la finalul metodelor. Valoarea ultimei sarcini va fi întotdeauna returnată.

6. Puteți schimba mediul în orice mod posibil.

Prima dată când am văzut asta am fost impresionat. Imaginați-vă o situație tipică: ați început să utilizați clasa de sistem sau o clasă scrisă de altcineva și a realizat că ai nevoie de ceva metoda suplimentaraîn el. Există mai multe moduri de a rezolva această problemă în limbaje de programare tipice:
  • Schimbați codul sursă al clasei dacă aveți acces la el. Dar de obicei este... Idee rea, nu face asta.
  • Îți moștenești clasa din asta și adaugi la ea metoda noua. De obicei, aceasta este o idee bună. Dar o metodă poate face un pic monro-like. În plus, va trebui să modificați ușor celălalt cod în consecință.
  • Puteți crea pur și simplu o metodă în afara clasei. Acest lucru va funcționa, dar nu va fi foarte elegant și, de asemenea, merge împotriva OOP.
ÎN Rubin puteți adăuga o metodă la clasa originală fără a edita codul sursă. Acest lucru se poate face chiar și pentru o clasă de sistem.
Dorim să adăugăm o metodă de a converti valorile din metri în picioare? Să extindem clasa Numeric, așa cum se arată:
clasa numerică
def picioare
sine*3.2808399
Sfârşit
Sfârşit

De acum înainte, toate numerele noastre vor avea o nouă metodă care poate fi folosită ca oricare alta:
5.feet # va reveni 16.4041995
Clasele în Rubin nu se închide niciodată și poate fi extins oricând, de oriunde. Desigur, această oportunitate trebuie folosită cu prudență!

7.Nu veți putea obține unicorni de la păsări, dar puteți obține măgari dacă doriți.

Îmi amintesc clar cum era profesorul meu C++, a folosit animale pentru a ilustra conceptele de bază ale programării orientate pe obiecte - clase și moștenire. A fost ceva misterios când ne-a explicat moștenirea multiplă, formând un „Pegas” din „păsări” și „cai”. Lucruri nebunesti Rubin nu permite moștenirea multiplă. Pare un trend și până la urmă este o chestiune de gust. Nu sunt un fan al moștenirii multiple, deoarece poate duce la lucruri imprevizibile. În ciuda acestui fapt, este posibil să creați ceva similar folosind module Rubin, astfel încât variabilele și metodele unui modul vor fi adăugate la o anumită clasă dacă modulul este inclus în aceasta.

8. XML este cu adevărat inutil.

XML- un limbaj de marcare frumos, folosit în mod obișnuit, care poate fi procesat de toate limbajele de programare și este folosit peste tot. Din păcate, este prea greoi de scris, greu de analizat și, să fim sinceri, greu de citit în majoritatea cazurilor. Dar aruncați o privire la următorul fragment:
expresie regizată: !ruby/regexp /a-zA-Z/
număr: 4.
sfoară: o sfoară

Cu siguranță este mai ușor și mai simplu XML, Adevărul? Bun venit la YAML, un limbaj de marcare preferat (dar nu singurul). Rubin, cu ajutorul căruia orice obiect poate fi prezentat într-o formă simplă, concisă, dar completă.
Ruby este capabil să lucreze XML, dar simplitate YAML a mituit mulți dezvoltatori care acum îl folosesc în schimb XML, de exemplu pentru fișierele de configurare (asta am făcut în Șine). Fragmentul prezentat mai sus a fost obținut prin executarea următorului fragment de cod:
("șir" => "un șir", "număr" => 4.7, "regexp" => /a-zA-Z/).to_yaml
Metodă to_yaml, definit pentru clasă Obiect, care este părintele tuturor celorlalte obiecte și, prin urmare, este accesibil tuturor obiectelor Rubin. Acest lucru vă permite să convertiți obiecte în YAMLși invers, absolut transparent pentru dezvoltator. Cool, da?

9.Lambda este mai mult decât o literă greacă.

Rubin a împrumutat ceva magie de la LispȘi Perlîn obiecte și blocuri Proc. Proc este „un bloc de cod asociat cu un set de variabile locale. Odată legate, acestea pot fi apelate în contexte diferite și pot accesa în continuare acele variabile.” Să ne uităm la următoarele:
def gen_times(factor)
returnează Proc.new (|n| n*factor )
Sfârşit

Times3 = gen_times(3)
times5 = gen_times(5)

Times3.call(12) # => 36
times5.call(5) # => 25
times3.call(times5.call(4)) #=> 60

Ar fi putut folosi un cuvânt cheie lambdaîn loc de Proc.nou, acest lucru nu afectează rezultatul. Acest lucru ar putea părea familiar celor care știu PerlȘi Piton(sau Lisp). Acest lucru se poate face chiar și pe PHP, dar nu mulți oameni profită de această oportunitate.
În plus, în Rubin blocurile de tip „necreat” sunt utilizate pe scară largă Proc", de exemplu, pentru a itera conținutul unui obiect și a executa un cod, ca o metodă fiecare disponibile pentru clasa Matrice:
.each (|c| pune c*2) #=> va returna fiecare element înmulțit cu 2
Dacă codul nu se încadrează pe o singură linie, se recomandă utilizarea construcției face... sfârşit, în loc să folosiți paranteze. Fani Rubin nu-mi plac parantezele.

10. Puteți folosi șine.

Nu în ultimul rând... Puteți folosi întotdeauna Șine pentru dezvoltarea de aplicații web. Dezvoltarea nu va fi la fel de simplă ca cu PHP, Dar Șine au fost scrise în Rubin, deoarece are caracteristici care nu se găsesc în alte limbi.

Concluzie

Timpul a expirat. Poate te gândești deja să te uiți Rubin, poate ai încercat deja, sau poate ai ignorat-o. Indiferent, data viitoare când te uiți la codul tău și arată înfricoșător și dimensiunea lui este intimidantă, nu mă învinovăți.

Dragi Cititori - nu uitați că Habrauser a tradus pur și simplu (păcat, da) textul. Nu este nevoie ca el să exprime pretenții ideologice.

În orice caz, merită să motivezi cuvintele tale. Voi încerca să ne arăt frumusețea limbajului, de ce îl tocăm și îl prețuim atât de mult.


Rubin limbaj de nivel înalt limbaj de programare). Ruby vă permite să mutați accentul atunci când scrieți cod mai mult către „ce să faceți” și să vă îndepărtați de a explica unui computer prost „cum să faceți asta”. După cum spune el Matz omul trebuie să controleze și mașina trebuie să se supună.
Un traducător - un interpret al limbii Ruby - vă va explica cum să vă îndepliniți dorința. Japonezii sunt un popor foarte mândru, un popor de descendenți ai samurailor, în care obiceiurile feudale încă mocnesc.

Ruby este un limbaj de programare interpretat. Am spus deja că dacă spui această bucată stupidă de hardware de 5 ori (pune „bună ziua!”), atunci nu va înțelege asta fără un interpret. Limbajele de programare care necesită un interpret care citește scripturile scrise în ele se numesc limbaje interpretate. Exemple de astfel de limbi sunt (php, python, perl, bash și propriul nostru mare!)
Limbile al căror cod este convertit într-un program se numesc compilate. Exemple de astfel de limbaje sunt (C/C++, C#, GO)

Diferența este că programele compilate sunt compilate o dată pentru mai multe utilizări, în timp ce programele scrise în limbaje interpretate sunt interpretate de fiecare dată când sunt rulate, motiv pentru care sunt mai lente, dar sunt întotdeauna open source :D

Viteza este importantă, dar nu este cel mai important lucru. Ruby este mult mai lent decât C și chiar mai lent decât Asembler, dar acest lucru nu îl împiedică pe Ruby să câștige din ce în ce mai mulți fani noi care ard imaginile vechilor lor zei, își sparg diamantele și se îndreaptă către noua religie strălucitoare a programării Ruby.
Ruby vă permite să scrieți aplicații atât de repede încât veți da faliment angajând o echipă specială de programatori C care va scrie un program care efectuează aceleași acțiuni. În plus, dacă trebuie să calculați un calcul financiar înainte de mâine, are vreo diferență dacă va fi calculat în 10 secunde sau în 0,1 secunde?
Chiar dacă performanța este cu adevărat importantă pentru tine, Ruby are un număr foarte mare de drivere pentru biblioteci scrise în C, pentru diferite baze de date și alte software, astfel încât să obții viteza C în timp ce scrii cod în Ruby.
Ruby vă permite, de asemenea, să scrieți extensii în C pentru secțiunile critice ale codului, adică cele în care performanța este extrem de importantă (toate acestea pentru că Ruby în sine este scris în C, nu în întregime, ci o parte destul de mare din el). Ar trebui să vă obișnuiți cu faptul că nu există un limbaj de programare universal, știind care, nu va trebui să știți nimic altceva.

Ruby are multe fețe dar pe fiecare chip este frumos. Există o implementare standard Ruby numită Matz Ruby Interpreter (MRI). Pornind de la ramura 1.9 și continuând până la cea actuală, se folosește un interpret YARV diferit.
Există și Ruby pentru mașina virtuală Java (JRuby), care vă permite să utilizați toate bibliotecile scrise în Java și alte limbi care rulează pe JVM, cum ar fi Scala sau Clojure.
Există MacRuby - o versiune pentru Mac OS X.
Ruby Enterprise Edition (Ruby EE sau REE) este un RMN ușor reproiectat care permite programelor Ruby să consume mai puțină memorie RAM.
Există, de asemenea, diverse dezvoltări proprietare care vă permit să înlocuiți componentele originale Ruby cu altele mai bogate funcțional și mai rapide, totuși, datorită faptului că astfel de dezvoltări sunt de obicei prost testate în condiții de luptă și nu sunt utilizate pe scară largă, nu v-aș recomanda pentru a le folosi. Utilizare versiuni oficiale Rubin.
Pe lângă implementările Ruby descrise, există multe altele, de exemplu Rubinius și Ruby MagLev și așa mai departe. Nu știu care este particularitatea lor, dar cu siguranță o voi înțelege și o voi publica într-una dintre următoarele versiuni ale manualului.

Ruby este un limbaj de programare dinamic. Aceasta înseamnă că programele Ruby sunt dinamice, se pot schimba direct în momentul execuției. Nu este nevoie să setați o constrângere la creare. Și nu veți depăși niciodată un tip de date numerice.
Ruby are capacități de metaprogramare foarte largi, astfel încât orice limbaj i-ar invidia. Principalul lucru este că aceasta este o abstractizare și aceasta este o abordare cu adevărat eficientă a programarii, care vă permite să scrieți aplicații cu adevărat puternice, bogate și funcționale.

Ruby este concis. Programele scrise în Ruby sunt foarte concise și ușor de înțeles. Acest lucru se datorează naturii sale de nivel înalt și dinamic și tastării slabe.
Nu cunosc nicio limbă care ar depăși Ruby în ceea ce privește cele mai puține linii de cod pentru a implementa o anumită funcționalitate. Bănuind că nu există astfel de oameni acum) la momentul anului 2015, sau sunt atât de confuzi și înfricoșători încât le este frică să se arate.

Ruby este un limbaj de programare slab tastat. În alte limbaje de programare, ar trebui să declarați tipul de date stocate într-o variabilă, dar variabila nu poate stoca date de alt tip. Adepții de programare conduși de Yakihiro Matsumoto au muncit din greu pentru a se asigura că puteți folosi variabile pentru a stoca absolut orice valoare fără a le declara mai întâi.

Ruby este un limbaj de programare orientat pe obiecte. Abordarea orientată pe obiecte a programării nu este deloc nouă și și-a dovedit nu numai dreptul la viață, ci și eficacitatea! Programarea orientată pe obiecte (OOP) a fost mult timp considerată sinonimă cu calitatea și scalabilitatea codului.
OOP este o abordare destul de populară a dezvoltării software, care simplifică și accelerează dezvoltarea, face codul mai ușor de înțeles, mai structurat și mai extensibil. Totul este creat folosind abstracții, ca și cum obiectele din modelele noastre ar fi reale. În Ruby, OOP este implementat deosebit de elegant, există ceva magie la nivelul clasei de bază, dar acest lucru nu este atât de important având în vedere implementarea limbajului în general.

Ruby este un limbaj de programare simplu. Ruby este un limbaj de programare ușor de înțeles, ușor de dezvoltat, dar nu ușor de învățat :). Desigur, puteți scrie o aplicație care afișează expresia clasică „hello world” în prima secundă a cunoștinței tale, apropo, iată-l: pune „helo word!”, Cu toate acestea, pentru a obține adevărata măiestrie, ar trebui să cheltuiți ani!
Nu poți compara Ruby cu PHP, este ca și cum ai compara o quinoa elegantă cu un fel de gâscă, dar voi face acel sacrificiu și o voi face. Limbajul Ruby în sine nu este mult mai greu de învățat decât PHP, dar este mult mai convenabil și logic. Ecosistemul Ruby în sine este mai complex, deoarece programatorii Ruby sunt obișnuiți să automatizeze totul și, probabil, voi spune nu doar adevărul, ci și adevărul când vă spun că Rubyștii au avansat mult mai departe în acest sens decât orice altă comunitate de programatori. Această automatizare obligă dezvoltatorul să studieze multe tehnologii terțe, dar simplifică și reduce timpul petrecut în procesele de dezvoltare secundare (testare, implementare a aplicației pe server și așa mai departe). PHP nu are toate acestea, sau totul este complet primitiv! Cel mai interesant lucru este că aproximativ 25% dintre programatorii PHP nu folosesc framework-uri și produc cod de rahat, încearcă să găsești un programator Ruby care nu este familiarizat cu framework-ul Rails!
Principalul lucru de reținut este că majoritatea programatorilor Ruby sunt experți, profesioniști în dezvoltare. Și ar trebui să te străduiești întotdeauna pentru asta. Doar într-un mod și nicio altă cale, doar o abordare radicală a acestei chestiuni. Nu poți fi un programator Ruby rău, fie că ești un profesionist, fie nu ești un dezvoltator Ruby!

Ruby and Rails este cam un aluat! Rails, sau Ruby on Rails, este un cadru pentru crearea de aplicații web scrise în Ruby. Rails este cu adevărat o revoluție în lumea dezvoltării web. Rails este un cadru foarte puternic care profită la maximum de toate caracteristicile Ruby, care are o comunitate imensă de programatori profesioniști care produc extensii de înaltă calitate pentru funcționalitatea deja bogată.

La urma urmei, Ruby este o tehnologie mainstream! Mulți oameni spun că Ruby nu este suficient limbaj popular programare, dar este unul dintre cele mai populare 10 limbi, are o comunitate imensă și un număr mare de biblioteci - rubygems.
Apropo, prezența pietrelor Ruby este un alt avantaj față de PHP! În PHP există un Pear plictisitor, care este scris de maimuțe care se prefac astronauți, acest lucru poate fi judecat după faptul că în codurile Pear s-a găsit o mulțime de gunoi asemănătoare cu cele umane, dar știm că oamenii nu sunt capabili din aceasta.
Și, în general, am păcătuit doar comparând RubyGems și Pear. Un număr mare de mari proiecte de succes, ceea ce demonstrează alegerea de succes a lui Ruby ca parte integrantă a construirii unei afaceri bazate pe un proiect web. Ruby, ca și Python, care este, de asemenea, unul dintre cele mai populare 10 limbaje de programare, nu are un defect foarte mare al tehnologiilor mainstream - Ruby nu este suprasaturat cu programatori, programatorii Ruby sunt încă puțini, ceea ce înseamnă viitorul tău salariu ca programator Ruby. va fi mult mai mare în comparație cu cei care programează în PHP sau Java. Chiar dacă cererea de programatori Ruby este complet satisfăcută, un programator Ruby va câștiga mai mult deoarece există două factori importanți: Calitate superioară a codului și productivitate mai mare.

Rubyștii sunt cei mai iubitori de aluat. Nu știu dacă acest lucru este adevărat, dar este un fapt că programatorii Ruby au ajuns în mod clar foarte departe în testarea propriului cod! Fiecare programator Ruby mai mult sau mai puțin experimentat scrie specificații și/sau teste pentru codul său. Acest lucru face codul Ruby mai fiabil și de calitate superioară.

Comunitatea Ruby este mai calificată decât multe alte comunități. În primul rând despre care vorbim despre PHP - o comunitate care este destul de prolifică în creșterea ciudaților.
Fiecare școlar care și-a dat seama de elementele de bază ale PHP într-o săptămână și și-a scris propriul site web strâmb strigă deja în toate colțurile că este un programator PHP. Nu, nu urăsc copiii, ceea ce studiezi și creezi este minunat. Dar există o nuanță: pentru fiecare cuvânt care ți se adresează, trebuie să răspunzi într-un fel. În general, nu fi arogant, ci perfecționează-te, fă ce îți place. Și acesta este principalul lucru în viața noastră!

Nu toți cei care programează în Ruby sunt demni de titlul de programator, de exemplu eu nu sunt demn, pentru că am extrem de puțină experiență și un set de cunoștințe complet insuficient, totuși, dacă luăm temperatura medie într-un spital, comunitatea Ruby. este semnificativ superior comunității PHP. Nu voi vorbi despre alte limbaje de programare, deoarece Python, Java și Perl sunt principalii exportatori de noi membri în comunitatea Ruby, adică mulți programatori Ruby și-au atins stăpânirea lucrând cu alte limbaje de programare și, după ce au câștigat suficiente cunoștințe și experiență, convertite la religia Ruby. În plus, mulți oameni care programează în Ruby programează și în Python și Perl și Java, C, Objective-C, javascript și, credeți sau nu, PHP.

Ruby este primul limbaj de programare care a venit la noi din Țara Soarelui Răsare. De ceva timp, a fost cunoscut pe scară largă numai în Japonia, deoarece toată documentația despre ea nu a fost tradusă în engleză. Cu toate acestea, de îndată ce a început să fie tradus și publicat, Ruby a devenit interesat în întreaga lume, iar în 1998 forumul „. ruby-talk” și-a început activitatea”

Creatorul limbii, Yukihiro Matsumoto (sau „Matz”) a fost nemulțumit de limbajele de scripting care existau în acel moment. Potrivit lui, „Perl 4 nu era suficient de puternic, iar Python nu era suficient de orientat pe obiecte”. Avea nevoie de limbajul perfect pentru sarcinile sale. Prin urmare, a luat ce este mai bun din alte limbi, creând una nouă, în care a adăugat tot ce a considerat necesar și corect și a eliminat ceea ce nu era necesar. Când a ales nume pentru creația sa, Matsumoto și-a dorit să fie oarecum asemănătoare cu Perl, multe dintre ideile din care au fost preluate în Ruby. Avea de ales între Coral și Ruby, iar unele surse susțin că numele final a fost ales datorită horoscopului.

Ruby există de aproape 20 de ani și se dezvoltă activ, cu sprijinul comunității de programare și al fanilor săi, precum și al lui Matz însuși.

Filozofia Ruby

Matsumoto a studiat programarea când era încă student, dar ideea de a-și crea propriul limbaj nu i-a venit decât câțiva ani mai târziu. El a vrut să creeze un limbaj OOP „adevărat” care să aibă o sintaxă simplă și ușor de înțeles și putem spune cu siguranță că a reușit. Spre deosebire de limbajele care se concentrează pe cât de repede poate executa o mașină un program, Matz a proiectat Ruby pentru a ușura munca oamenilor. Chiar dacă înseamnă a sacrifica puțin resursele computerului.

Ruby folosește ceea ce se numește principiul „cel mai puțin surpriză”. Aceasta înseamnă că programul se va comporta conform așteptărilor codificatorului. Matz a folosit acest concept doar pentru confortul său, însă, pe măsură ce limbajul a crescut în popularitate, a învățat că alți programatori au gândit la fel ca și el. Aceasta a fost, fără îndoială, o surpriză plăcută pentru el.

Ruby aderă la conceptul de limbaj Smalltalk, în care orice tip de date este considerat obiect, ceea ce înseamnă că metodele și variabilele obiect pot fi setate pentru ele. Aceasta este diferența sa avantajoasă față de limbaje precum, de exemplu, C++.

De asemenea, merită remarcată flexibilitatea limbii. De exemplu, puteți redefini operația de adăugare și puteți utiliza notația care vă este mai convenabilă. De exemplu, specificați că adăugarea de numere va funcționa atunci când introduceți cuvântul plus (1 plus 2) și nu simbolul (1+2). Adică nu te adaptezi la limbă, ci, dimpotrivă, se adaptează la tine. Acest lucru oferă o libertate enormă în ceea ce privește auto-exprimarea, deoarece puteți trece peste operatori, metode etc. Totuși, amintiți-vă că o mare libertate vine și o mare responsabilitate (cu alte cuvinte, nu vă confundați cu ce, unde și cum ați redenumit).

Unde se folosește Ruby?

Sistemul de urmărire a erorilor Redmine, un editor pentru grafica vectoriala Inkscape. De asemenea, a treia versiune a Metasploit (un proiect de cercetare securitatea informatiei) a fost complet rescrisă în Ruby. Ruby este folosit în multe organizații mari, cum ar fi NASA, Motorola etc.

Ruby și-a câștigat cea mai mare popularitate datorită Ruby on Rails, lansat în 2004. Rails a fost folosit pentru a crea giganți precum Twitter, GitHub, Kickstarter, Diaspora etc. Este foarte plăcut și convenabil să scrieți site-uri web pe el. De exemplu, pentru baze de date puteți utiliza interfața de interogare Active Record, care vă permite să preluați date fără folosind SQL solicitări (care le plac mult dezvoltatorilor).

Acum Ruby, sau mai degrabă Ruby on Ralis, și-a câștigat reputația de limbaj pentru startup-uri. Folosind Rails, este destul de ușor să implementezi proiecte într-un timp scurt care sunt originale și eficiente și care depășesc paginile de destinație șablon și magazinele online. Desigur, pe măsură ce încărcarea pe site crește și cerințele se modifică, unele proiecte sunt rescrise în alte limbi care țin cont de anumite specificități și sunt mai potrivite pentru unele cazuri (de exemplu, Java sau Scala). Cu toate acestea, Ruby și Rails continuă să evolueze, așa că nu poate fi necesară nicio schimbare în curând.

Dificultatea de a învăța Ruby

Ruby este destul de ușor de învățat, dar există mult mai multă documentație despre el la Limba engleză decât în ​​rusă, așa că pentru un studiu mai profund va trebui să citiți textele în original.

În plus, merită remarcat faptul că rareori sunt locuri libere pentru programare în Ruby pur. 90% dintre ele vor fi probabil pentru Ruby on Rails. Programatorii RoR sunt astăzi unul dintre cei mai căutați din industria IT. Merită adăugat la salariul mare statut înalt aparținând elitei și invidia altor programatori, de exemplu, specialiștii PHP care scriu site-uri web de cărți de vizită pentru 100 de ruble.

Avantaje/dezavantaje ale lui Ruby

Ruby este iubit pentru:

  • OOP în stil Smalltalk;
  • suport comunitar (comunitatea de programatori);
  • sintaxă simplă și convenabilă;
  • salariu mare;
  • sprijin pentru cele mai recente abordări promițătoare în programare;
  • un număr mare de soluții gata făcute.

Dezavantajele lui Ruby includ:

  • suport slab pentru Windows. Deoarece Ruby a fost dezvoltat în principal pentru Linux, va fi mai dificil să lucrați cu IDE-ul, să instalați biblioteci suplimentare etc. pe un sistem care nu este Unix
  • lipsa posturilor vacante daca nu este Ruby on Rails;
  • puțină documentare în limba rusă;
  • consumul de memorie.

Tehnologii înrudite

Ruby pe șine- un cadru pentru lucrul pe web. A fost creat de o echipă de programatori condusă de David H. Hansson în 2004, iar ulterior a fost îmbunătățit semnificativ prin eforturile comunității de dezvoltatori.

RubyGems - manager de pachete pentru Ruby, simplificând instalarea biblioteci suplimentare(heme).

MacRuby- o implementare lingvistică care este concepută pentru a funcționa sistem Mac OS X. Vă va fi mai ușor să scrieți o aplicație pentru Mac.
mruby este o implementare îmbunătățită la care lucrează în prezent Yukihiro Matsumoto.

Acesta este primul dintr-o serie de articole în care voi vorbi despre caracteristicile Ruby și Ruby on Rails și voi împărtăși sfaturi despre unde să începeți să învățați Ruby, unde să găsiți răspunsuri la întrebări, cum să obțineți experiența de care aveți nevoie și cum te poți deosebi de alți candidați. M-aș bucura dacă sfaturile mele ar ajuta pe cineva să decidă specializarea și să aleagă Ruby cu care să studieze și să lucreze.

Caracteristici cheie și diferențe ale lui Ruby

Aud adesea întrebarea: merită să înveți Ruby? De regulă, întrebarea se bazează pe îndoieli: cât de ușor este să găsești un loc de muncă cu o anumită specializare, va exista proiecte interesanteȘi așa mai departe și așa mai departe. Ruby este un limbaj de programare modern, în continuă evoluție, există multe domenii de aplicare. Cu siguranță ați auzit despre Chef, Vagrant, Homebrew, dar de cele mai multe ori auzim cu toții despre Rails. Iată o postare cu un comentariu de la autorul cadrului despre motivul pentru care merită să înveți Rails.

Desigur, fiecare decide singur ce instrument să folosească. Și nu are rost să ne certăm la nesfârșit despre motivul pentru care o tehnologie este mai bună decât alta. Am ales Ruby pentru că este un limbaj incredibil de expresiv și flexibil, care vă permite să rezolvați aceeași problemă în multe feluri.

Ruby este un limbaj de programare interpretat, complet orientat pe obiecte, cu tastare dinamică puternică. Combină sintaxa asemănătoare Perl cu o abordare orientată pe obiecte. De asemenea, unele caracteristici sunt împrumutate din limbi Programare Python, Lisp, Dylan și CLU. Implementarea multiplatformă a interpretului de limbaj Ruby este distribuită sub software open source. Codul scris în Ruby poate fi înțeles chiar și de o persoană care nu înțelege programarea. Pe RoR au fost create proiecte precum Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb și altele.

Odată cu creșterea Node.js, popularitatea lui Ruby on Rails a scăzut oarecum, dar startup-urile tehnologice folosesc adesea RoR datorită ușurinței sale de prototipare. Ruby este a 11-a cea mai populară limbă în indexul TIOBE.

Beneficiile Ruby

  • Comunitate mare și prietenoasă.
  • Bariera de intrare este destul de mare, ceea ce înseamnă că un dezvoltator Ruby este probabil să aibă experiență cu cel puțin un alt limbaj de programare.
  • Folosiți doar acele biblioteci și module care sunt necesare.
  • Există un număr mare de biblioteci utile care sunt gata de utilizare (Ruby Gems).
  • Există o mulțime de informații despre Ruby pe Internet, într-o formă structurată și cernută.
  • În contextul discuției despre Ruby, nu se poate să nu menționăm cel mai popular framework Ruby on Rails.

Acum să vorbim mai detaliat despre unele dintre beneficiile Ruby.

Viteza de dezvoltare

Unul dintre avantajele Ruby și cadrul RoR este viteza de dezvoltare. Experienta personala iar experiența colegilor arată că rezolvarea problemelor în Rails este de o ori și jumătate mai rapidă în comparație cu alte cadre similare. Ruby este un instrument foarte simplu și există un număr mare de soluții gata făcute pentru diferite feluri sarcini.

Instrumente standard de stocare în cache a datelor

Când se dezvoltă un proiect la scară largă, unul dintre cele mai importante aspecte este stocarea în cache. Ruby on Rails vine standard cu mijloace regulate stocarea în cache a datelor. Adică veți avea imediat instrumente pentru stocarea în cache a datelor din proiect și puteți stoca cu ușurință blocuri individuale de cod sau chiar pagini întregi.

Testele mai întâi, codul mai târziu

Adesea în dezvoltare proiecte majore Se pune problema testării și nu este neobișnuit atunci când nu există fonduri suplimentare pentru o echipă separată de testeri. Rails are o soluție și la această problemă. Dacă comparați RoR cu alte cadre în contextul testării aplicațiilor, veți găsi o mulțime de soluții gata făcute pentru orice tip de teste, fie că este vorba de integrare sau unitate. Toate aceste biblioteci funcționează de la cutie. În mod ideal, într-un proiect Ruby on Rails, niciun cod nu este scris până când nu au fost scrise teste pentru el. Ideologia RoR implică utilizarea inițială a metodelor BDD (Behavior Driven Development) sau TDD (Test Driven Development).

Standardele de proces de dezvoltare acceptate în mod obișnuit pentru dezvoltatorii Ruby

Când vorbesc despre beneficiile Ruby, nu pot să nu menționez din nou comunitatea Ruby. Este în continuă creștere, dezvoltare și este întotdeauna gata să ajute. Întotdeauna există cineva care vă va spune cum să rezolvați cel mai bine o problemă și să-și împărtășească experiența în orice problemă.

De asemenea, un punct foarte important - în comunitatea Ruby de mulți ani există standarde pentru procesul de dezvoltare, anumite reguli/acorduri comunitare conform cărora se realizează dezvoltarea, ceea ce simplifică foarte mult munca. Datorită acestor standarde, fiecare proiect este foarte structurat, corespunzător nou dezvoltatorîntr-o echipă se va pune rapid la curent și va putea fi util încă din primele zile de muncă. Și chiar mai mult: dacă proiectul a fost început de o echipă și terminat de alta, nici asta nu este deloc o problemă. Deoarece dezvoltarea se realizează conform regulilor și acordurilor comunitare deja menționate, echipa noua va înțelege rapid și ușor proiectul și îl va finaliza cu succes fără a pierde mult timp.

Ruby on rails are, de asemenea, un număr mare de soluții diferite gata făcute acces deschis. Cele mai multe soluții au fost deja implementate de cineva înaintea ta și testate și de comunitate, ceea ce reduce nevoia de a dezvolta de la zero. Acestea ar putea fi autentificare, autorizare, sisteme de comentarii, sisteme de plată, liste de corespondență și așa mai departe.

Soluții gata făcute pentru multilingvismul proiectelor

Rails vine cu instrumente foarte puternice pentru localizarea proiectelor din cutie. Este posibil atât să oferiți suport pentru mai multe limbi inițial, cât și să îl implementați ulterior. Proiectul conține fișiere speciale pentru traducerea termenilor, instrumente pentru afișarea șabloanelor limbi diferiteși mult mai mult.

Nivel ridicat de protecție a datelor

În zilele noastre, articolele despre piratarea diverselor resurse sunt adesea publicate online. Dezvoltatorii cadrului Ruby on Rails au luat foarte în serios problema protecției datelor. RoR include inițial criptarea parolelor și a datelor Carduri de creditși alte date personale ale utilizatorului sunt, de asemenea, excluse injecție SQLși atacuri XSS. Toți parametrii de intrare sunt excluși în mod implicit.

Învățând Ruby

Acum haideți să vorbim despre cum îl puteți stăpâni pe Ruby.

Teorie

Ar trebui să începem, desigur, cu literatură. Recomand aceste surse:

  • Ruby în 20 de minute - resursă bună pentru incepatori completi. Vă permite să vă familiarizați cu structurile de bază ale limbii în mai puțin de jumătate de oră și să începeți să vă scrieți propriile programe mici.
  • Codecademy este o platformă cu cursuri online într-o varietate de domenii, inclusiv Ruby pur și Rails. Procesul educațional este structurat destul de interesant aici, este dat material teoreticși imediat o sarcină practică de consolidare. Sarcinile finale sunt plătite, dar chiar și fără ele poți dobândi abilitățile necesare.
  • Materiale despre Ruby și șine - o colecție de link-uri către diverse site-uri și cărți dedicate studiului Ruby și șine.
  • Pot recomanda în special cartea Flanagan D., Matsumoto Y. „The Ruby Programming Language”. Este considerat unul dintre cele mai bune, autorul său este însuși creatorul limbajului Ruby.
  • Google :)

Iată câteva resurse pentru a începe:

  • w3schools.com/sql - aici puteți citi, încerca și testa cunoștințele dvs. de SQL.
  • quizful.net/test - aici puteți găsi întrebări care sunt adesea adresate în timpul interviurilor.

Engleză

Cred că nu are rost să ne oprim asupra acestui punct în detaliu, deoarece acesta este subiectul unui articol separat. Engleza este foarte importantă și acesta este un fapt bine cunoscut. Aș dori doar să menționez pe scurt cele două puncte cele mai importante.

În primul rând, engleza este limba principală a comunității internaționale, în consecință, majoritatea literatură utilă va fi, de asemenea, în limba engleză, multe știri, reportaje și articole importante vor apărea mai întâi în engleză. Dacă vrei să știi răspunsul la orice întrebare, există o probabilitate foarte mare ca în primul rând să-l poți găsi în engleză.

În al doilea rând, cu cât cunoștințele tale de engleză sunt mai bune, cu atât șansele tale de a găsi un loc de muncă sunt mai mari. Majoritatea clienților sunt străini, prin urmare, cunoașterea limbii engleze este importantă pentru o comunicare productivă, o înțelegere clară a specificațiilor tehnice și contact bun cu clientul.

Practică

După ce am studiat mai multe resurse, merită să trecem la partea mai importantă, și anume practica. Există o mulțime de exemple de sarcini cu un magazin online sau un simplu blog pe Internet (iată unul dintre ele), mai ales când vine vorba de Rails. În cursul îndeplinirii sarcinilor care sunt deja puțin mai aproape de cele reale, cu siguranță vei întâmpina unele probleme și apoi vei trece la antrenamentul uneia dintre cele mai importante calități - capacitatea de a Google. Din păcate, nu am găsit tutoriale sau cursuri dedicate acestei abilități, dar cu siguranță joacă un rol foarte important în munca de zi cu zi.

Cursuri

După ce ați citit teoria și ați scris mai multe „proiecte pentru animale de companie”, puteți, desigur, să încercați să mergeți la interviuri, dar de multe ori se întâmplă ca aceste cunoștințe să nu fie suficiente. Acest lucru se datorează afluxului mare de candidați și, având în vedere competiția, toată lumea încearcă să iasă în evidență și să se pregătească cât mai bine.

Un alt punct important în formare care poate fi un avantaj în favoarea ta atunci când îți cauți un loc de muncă este programarea cursurilor. Cu excepția cazului în care, desigur, aveți un mentor care este dispus să petreacă o anumită perioadă de timp venind cu sarcini și revizuindu-le.

Îți spun imediat că nu recomand în niciun caz să urmezi cursuri fără a avea deja cunoștințe. Văd cursurile ca o modalitate excelentă de a consolida cunoștințele dobândite prin auto-studiu. Și acum nu încerc să fac publicitate unei anumite școli, dar voi explica exact ce beneficii pot fi obținute din asta:

Cu un grad mare de probabilitate acolo vei învăța ceva ce nu știai înainte. Cursurile au un volum destul de mare de material, care este prezentat într-o formă structurată, ceea ce vă permite să asimilați mai bine materialul.

Pe parcursul cursului vei avea mentor, care va analiza soluția la problemele dvs. și va sublinia punctele slabe și erorile.

Motivația. Acest lucru este în primul rând pentru cei care au nevoie de ajutor pentru autodisciplină. Uneori este destul de dificil să te forțezi să faci ceva, indiferent de perspectivele care se profilează la orizont. Când participați la cursuri, veți avea un program clar de urmat și sarcini de finalizat sau veți fi exclus. Motivația financiară joacă și aici un rol în cazul cursurilor plătite. La urma urmei, atunci când dai banii câștigați cu greu, ai o atitudine complet diferită față de această problemă, iar gândurile de a te plimba pur și simplu apar mult mai rar.

Alt avantaj - certificat. Este clar că în final vei fi evaluat pe cunoștințele tale, și nu pe prezența unor bucăți de hârtie în CV-ul tău. Dar, cu toate acestea, acesta va fi un plus, mai ales dacă există un candidat cu un nivel similar de cunoștințe, dar fără dovezi documentare.

Plus unu proiect pe GitHub la pușculița ta. Dacă ești un dezvoltator începător, atunci cel mai probabil proiectul scris în cadrul cursurilor va fi mai interesant din punct de vedere tehnologic decât cele care au fost scrise anterior.

Și cel mai important lucru - angajare. Când vorbesc despre cursuri, nu mă refer doar la acelea pentru care trebuie să plătești bani. Adesea, companiile însele recrutează pentru formare, astfel încât să îi poată angaja pe cei mai buni mai târziu. Acesta poate fi un curs intern sau un stagiu/stagiu. Această opțiune este cea mai bună, deoarece nu trebuie să plătiți pentru nimic, obțineți experiență și toate avantajele de mai sus și, în plus, o perspectivă reală de angajare. Este mai greu să intri în ele, dar perspectivele sunt mai semnificative.

Total

Ruby este un limbaj care vă permite să lucrați fără cantitate mare neplăcerile și ceremonia care vin cu limbajele puternic tipizate. Este ușor să începeți cu Ruby, mai ales dacă aveți deja experiență în dezvoltarea în alte limbaje de programare și veți putea face rapid prototipuri cu Ruby on Rails. În Japonia, de unde își are originea, Ruby a fost folosit pentru a crea jocuri. Ruby este concis și se citește ca în engleză, ceea ce face codul ușor de înțeles pentru începători.

Când vine vorba de a învăța Ruby, vreau să reiterez: trebuie să începi cu puțin. Citește câteva cărți, fă câteva sarcini pe cont propriu și apoi, dacă simți nevoia de a dobândi mai multe cunoștințe și experiență sau o motivație suplimentară, poți urma cursuri având deja o anumită cantitate de cunoștințe dobândite pe cont propriu.

În mod ideal, acestea sunt cursuri de la o companie care îți va face o ofertă la finalizare dacă ai performanțe bune. Opțiune alternativă- cursuri plătite care vă vor ajuta să vă consolidați cunoștințele, să adăugați un alt proiect în CV și să câștigați experiență, ceea ce este cel mai important la început. Dar nu ar trebui să vă așteptați ca, după finalizarea cursurilor plătite, să treceți cu ușurință la un interviu, arătându-vă certificatul. În orice caz, cunoștințele vor fi evaluate.

În același timp, dacă aveți suficientă motivație, răbdare, abilități și experiență cu alte limbaje de programare, puteți stăpâni cu ușurință Ruby pe cont propriu, deoarece există o mulțime de informații utile și bine structurate pe Internet. De asemenea, datorită comunității deschise și extinse Ruby, puteți găsi cu ușurință răspunsuri online la multe întrebări posibile pe care, cu un grad ridicat de probabilitate, cineva le-a pus deja înaintea dvs.

Distreaza-te invatand! Și în articolul următor vom vorbi despre cod.

Aboneaza-te la canalul nostru Telegram pentru juniori pentru a nu rata posturi interesante, stagii, cursuri, articole.

Ruby este unul dintre cele mai tinere limbaje de programare. Își datorează numele piatră preţioasă ruby (prin analogie cu un alt limbaj de programare utilizat pe scară largă Perl - perle). Iată cum este descrisă Ruby de creatorul său, programatorul japonez Yukihiro Matsumoto: „Este un limbaj puternic și dinamic, open-source, orientat pe obiecte, pe care l-am început să îl dezvolt în 1993. Ruby rulează pe multe platforme, inclusiv Linux și multe implementări ale Unix, MS. -DOS, Windows 9x/2000/NT, BeOS și MacOS Scopul principal al Ruby este eficiența în dezvoltarea programelor, iar utilizatorii vor găsi programarea în ea eficientă și chiar distractivă.

În Japonia, Ruby a înlocuit foarte mult limbi atât de cunoscute precum Python și Perl (și cartea „Ruby the Object-Oriented Scripting Language” a devenit un bestseller) și a început să se răspândească în întreaga lume. In spate Anul trecut Au apărut trei cărți în limba engleză dedicate lui Ruby (din păcate, nu au încă traducere în limba rusă). Această limbă are șanse foarte mari să devină cu adevărat populară - la urma urmei, a absorbit avantajele altor limbi, ținând cont de deficiențele acestora.

Ruby este inclus în distribuția standard a sistemului de operare Linux (începând cu versiunea 7.2), iar utilizatorii MS Windows ar trebui să-l recomande pentru prima lor cunoștință. versiune învechită, care include, pe lângă interpretul de limbă și biblioteci, un manual de utilizare, Întrebări frecvente (răspunsuri la întrebări frecvente) și multe exemple. Ruby este disponibil gratuit, așa că nu trebuie să vă faceți griji cu privire la costul sau restricțiile de utilizare.

Acest limbaj este, fără îndoială, unul dintre cele mai bune ca prim limbaj de programare studiat de elevi și școlari. Ciclul de dezvoltare rapidă (editare - rulare - editare), utilizarea unui interpret, natura inițială orientată pe obiecte a limbajului, variabile netipizate care nu necesită declarație - toate acestea permit elevilor să își concentreze atenția asupra principiilor generale ale programării . În prezentarea ulterioară ne vom concentra pe lucrul în sistemul de operare Linux. Folosind Ruby în altele sisteme de operare ah nu este practic diferit, iar rezultatele execuției nu depind de sistemul de operare utilizat.

Mai întâi, să verificăm dacă interpretul Ruby este instalat pe sistem sau nu. Într-o fereastră shell, introduceți comanda ruby ​​​​-v (acest comutator necesită afișarea versiunii de limbă). Dacă apare următorul mesaj, Ruby este instalat (versiunea, data și platforma pot varia):

rubin 1.6.4 (2001-06-04)

pune „Bună, lume!”

Pentru a rula acest program pe linia de comandă, introduceți

Ca urmare a executării programului, fraza necesară va fi tipărită în fereastra de comandă.

A doua metodă de executare a programelor nu este disponibilă pentru utilizatorii tuturor sistemelor de operare pe care operează Ruby. Utilizatorii sistemului de operare Linux ar trebui să plaseze programul la începutul fișierului cu textul programului rândul următor:

#!/usr/bin/env ruby

Ea Neapărat trebuie sa inceapa din prima pozitie. Apoi trebuie să modificați drepturile de acces ale fișierului de program, făcându-l executabil: chmod +x hello.rb Acum, pentru a rula programul, trebuie doar să introduceți comanda

Pentru a face programul mai ușor de înțeles pentru persoana care îl citește, se introduc comentarii. Comentariile pe o singură linie încep cu caracterul # și continuă până la sfârșitul rândului. Comentariile pe mai multe linii sunt incluse în „paranteze” speciale - tot ceea ce este situat între liniile =begin și =end este considerat un comentariu. De exemplu,

#!/usr/bin/env ruby ​​​​=begin Acesta este un comentariu =end pune „Hello, World!” # Acesta este, de asemenea, un comentariu

Un program Ruby, numit adesea script, este o secvență de instrucțiuni (instrucțiuni, propoziții). Fiecare instrucțiune se termină implicit la sfârșitul liniei. Dacă dintr-un motiv oarecare este necesar să plasați mai multe instrucțiuni pe o linie, atunci acestea trebuie separate printr-un simbol; (punct şi virgulă). Pe de altă parte, uneori instrucțiunea nu se potrivește pe o singură linie. În acest caz, simbolul \ semnalează că continuarea sa este situată pe linia următoare.

Exemplu

#!/usr/bin/env ruby ​​​​# Instrucțiunea se termină la sfârșitul rândului pune „Hello, World!” # Mai multe instrucțiuni pe o singură linie pun „Acesta este un test,”; pune „demonstrarea cum funcționează Ruby”. # O declarație neterminată, # continuată pe rândul următor pune „Programarea în Ruby este o experiență plăcută”. # Declarația împărțită în mai multe rânduri pune \ „Și cu siguranță vom învăța asta!”

O instrucțiune (instrucțiune) este cel mai adesea o secvență de instrucțiuni aplicate diferitelor expresii și (eventual) apeluri de funcții.