Istoric și dezvoltare
Matsumoto, un fan al programarii orientate pe obiect, visa un limbaj mai puternic decât Perl, și mai mult decât Python orientat pe obiect. Scopul principal al Ruby - un simplu și la programele de înțeles același timp în cazul de important, nu viteza programului, și timpul scurt de dezvoltare, claritate și simplitate a sintaxei.
Limba urmează principiul „cel surpriză“: Programul ar trebui să se comporte ca programator se așteaptă. Cu toate acestea, în contextul Ruby, acest lucru înseamnă că cel puțin nu surpriza familiarizat cu limba, și în studiul său aprofundat. Matsumoto se afirmă că scopul dezvoltării a fost de a minimiza surprize atunci când se programează pentru el, dar el a fost surprins să afle după răspândirea limbii pe care gândire programatori și similar cu multe dintre principiul „cel surpriză“, a coincis cu principiul său.
Ruby a moștenit, de asemenea, Pearl ideologie limbaj de programare în parte programator pentru a obține același rezultat în mai multe moduri diferite. Oamenii sunt diferiți, și au nevoie de libertatea de a alege. „Prefer să ofere o mulțime de moduri, dacă este posibil, dar să încurajeze și să ghideze utilizatorii să aleagă cea mai bună cale, dacă este posibil.“
Unul dintre principalele obiective ale dezvoltării a fost de a programatori gratuite de la locul de muncă de rutină, care computerul poate efectua mai repede și mai bine. O atenție deosebită, în special, a fost dat o exerciții de rutină de zi cu zi (procesare de text, de administrare), iar pentru această limbă este setată deosebit de bine.
Spre deosebire de limbaj orientat pe computer care ruleaza mai rapid, scopul acestei evoluții a fost limba care este cel mai apropiat de om. Orice lucrare de calculator făcută de către oameni și pentru oameni, și trebuie să aibă grijă în primul rând despre oameni eforturile cheltuite. Limbă vă permite să rapid și simplu pentru o persoană pentru a îndeplini o sarcină, dar probabil va fi nevoie de timp suplimentar al computerului.
Principii de proiectare limbaj de programare și, uneori, să stea în termenul „Ruby Way“ (eng. Ruby Way). Hal Fulton scoate în evidență principii, cum ar fi, „principiul de puțin uimire“, „simplu, dar nu prea simplu“ program de viteză secundar, reguli stricte dinamice, simple, a căror punere în aplicare nu ajunge la pedanteria, necesitatea de a crea programe de sănătos și frumos ca un motiv de programare. În general, acestea nu au formularea exactă și, uneori, termenul este folosit pentru a critica.
caracteristici Ruby
Ruby are multe soluții inovatoare, foarte rar sau niciodată găsite în limbaje de programare comune. Puteți adăuga metode nu numai în toate clasele, dar, de asemenea, orice obiecte. De exemplu, puteți adăuga o linie de metode arbitrare. Acest exemplu demonstrează, de asemenea modul în care se poate utiliza în Ruby Singleton. In acest exemplu, un str obiect singleton.
Orice proiectare în Ruby se întoarce. De exemplu:
containere
Lucrul cu matrici - unul dintre punctele forte Ruby a lui. Ei regla automat dimensiunea, poate conține elemente de limbaj și oferă instrumente puternice pentru procesare.
obiecte de procedură și iteratori
Limbajul este 2 metodă echivalentă de blocuri de înregistrare a codului: să aibă corutine utilizate cu cele mai multe metode inline: Exemplul următor arată coroutine utilizarea și iteratori pentru tablouri care prezintă concizie de înregistrare Ruby multe acțiuni destul de complexe (selectați aleatoriu o secvență de pătrate de numere „0“ la „10“ și de imprimare, împreună cu indici):
Clase de impurități Metode de supraîncărcarea operatorului
Următorul exemplu definește o persoană de clasă numit, proiectat pentru a stoca informații despre numele și vârsta unei persoane.
punerea în aplicare
Pentru Ruby, există mai multe implementări: interpretul oficial, scris în C, JRuby - Implementare pentru interpretul Java, .NET IronRuby pentru platforma (în curs de dezvoltare), Rubinius - scrisă în cea mai mare parte Ruby și bazate pe Smalltalk-80 VM.
interpret oficial portat la cele mai multe platforme, inclusiv Unix, Microsoft Windows (inclusiv Windows CE), DOS, Mac OS X, OS / 2, Amiga, BeOS, silabelor, Acorn RISC OS și altele.
interactiv Ruby
Suport IDE
Biblioteca standard
În plus față de caracteristicile puternice construite în limba, Ruby vine cu o bibliotecă standard de mare. Acest lucru este în primul rând o bibliotecă pentru a lucra cu diferite protocoale de rețea de pe partea de server și instrumente de client pentru a lucra cu diferite formate de date (XML, XSLT, YAML, PDF, RSS, CSV, WSDL). În plus față de instrumentele de depanare de limbaj încorporate sunt livrate cu biblioteca Ruby unitate de testare, profilare. Există, de asemenea, o bibliotecă pentru a lucra cu arhive, date, codificări, tablouri, pentru administrarea sistemică, de calcul distribuit, suport multithreading, și așa mai departe. D.
Partea de sus a ierarhiei claselor Ruby.
array dinamic pentru a stoca obiecte arbitrare, indexate de la 0.
Obiectele stocate context de execuție a unei porțiuni de cod (valoarea variabilelor, metodele și altele asemenea. D.). Acesta poate fi folosit mai târziu pentru a efectua calculele în acest context.
Wrapper ukazatelyaSi, utilizate în principal pentru extensiile de scriere.
Metoda nu este afiliat cu un anumit obiect. Acesta poate fi atașat la un obiect și numit ca metodă.
expansiune
documentație
utilizarea
KOffice este dezvoltat pentru Kross, un mecanism pentru a sprijini script-uri care include Ruby.
WATIR (în engleză Web testarea aplicației în Ruby.) - un instrument gratuit pentru testarea automată a aplicațiilor web în browser.
Limba Dezavantaje și interpret
Dezavantajele interpretului Ruby astăzi includ următoarele:
Viteza mica (retribution natural pentru programe rapide complexe de scriere). Ruby este unul dintre cel mai lent de dezvoltare web limbaje de programare practică utilizate.
Lipsa de sprijin pentru firele sistemului de operare (nu suporta procese OS pentru sistemele de operare Unix), există într-o versiune experimentală 1.9.
Lipsa de suport construit pentru Unicode (pot fi operate folosind biblioteci suplimentare sunt într-o versiune experimentală 1.9).
Lipsa de compilare a bytecode. (În acest caz, este posibil să se compila Ruby la Java și .NET bytecode, folosind JRuby și compilator Ruby.NET). Versiunea experimentală 2.0 include YARV mașină virtuală, Compilarea Ruby la bytecode și accelerează în mare măsură de execuție. În plus, alte proiecte fiind dezvoltate în mașini virtuale paralele, inclusiv Rubinus și Maglev.
Știați că designerii - această operațiune, care este folosit ca argument de tipul lor corespunzătoare de obiecte și de a crea alte obiecte de același tip. De exemplu, o operație plus matrice creează o nouă matrice.
Știri
Cavalerii Teoria eter