Istoria creării și dezvoltării legii
Filozofia din Legea
Matsumoto. fan al programării orientate-obiect, visat de un limbaj mai puternic decât Perl, și mai mult orientat-obiect decât Python. 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 mai puțin surpriza.“ 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 la programarea pentru ea. dar el a fost surprins să afle după răspândirea limbii pe care gândire și programatori similare 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ă cel mai bun mod de a merge, dacă este posibil“. [3]
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 cea mai apropiată de oameni. 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.
semantica Editare
Ruby - un limbaj complet orientat pe obiect. În ea, toate datele sunt obiecte. Spre deosebire de multe alte limbi, în cazul în care există tipuri primitive. Fiecare funcție - metoda.
adică atunci când valoarea unei variabile modificate implicit și valoarea b. deoarece acestea conțin o referire la un singur obiect. Pe de altă parte, este mai rezonabil decât situația atunci când diferite tipuri de variabile pentru atribuirea funcționează în mod diferit (de exemplu, în Object Pascal).
Ruby nu suportă moștenire multiplă. dar în schimb are un puternic mecanism de impurități. Toate clasele (fie direct, fie prin alte clase) sunt derivate din clasa Object. prin urmare, orice obiect poate folosi anumite metode în acestea (de exemplu. [[[: Template: MakeRef]] class] [[[: Template: MakeRef]] to_s] [[[: Template: MakeRef]] nil].) . Stilul de procedură este, de asemenea, susținută, dar procedura globală este implicit metodele închise ale clasei Object.
Ruby este limba multiparadigm. susține un stil de procedură (definirea funcțiilor și variabile în afara claselor), orientate-obiect (totul - obiect), funcția (valori de retur anonim de circuit funcție toate instrucțiunile, a reveni ultima în funcție de valoarea calculată ..). Aceasta susține reflecție. metaprogramarea. informații despre tipurile de variabile în timpul rulării.
Oportunități Ruby Editare
exemple Editare
În Ruby există mai 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 puteți utiliza Ruby în Singleton. In acest exemplu, un str obiect singleton.
Orice proiectare în Ruby se întoarce. De exemplu:
Editare bibliotecă
Standard de bibliotecă Edit
Î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 client. instrumente pentru lucrul cu diferite formate de date (XML. XSLT. YAML). În plus față de instrumentele de depanare de limbaj încorporate sunt livrate cu biblioteca Ruby unitate de testare. profilare. Lucrul cu arhive. data codificări. matrici. OLE - o listă incompletă, care oferă o bibliotecă standard de.
Principalele clase de Ruby încorporat
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 indicatorul C. Este folosit în principal pentru scrierea extensiilor.
împuternicirea
Implementarea limbajului Ruby a unui mecanism simplu și convenabil pentru extinderea limbii cu ajutorul bibliotecilor scrise în C. permițându-vă să dezvolte cu ușurință biblioteci suplimentare [5] [6].
Pentru a avea acces la bazele de date unificat dezvoltat o bibliotecă de Ruby DBI (suporta SQLite. Oracle. ODBC. MySQL. DB2. MS SQL. InterBase. ADO etc). Există, de asemenea, biblioteci pentru baze de date specifice, care susțin specifice operațiunilor lor.
Din bibliotecile grafice trebuie remarcat FxRuby - o interfață la bibliotecă grafică FOX. grafic kit de dezvoltare wxRuby (interfață pentru kroscplatformennomu wxWidgets pachet la C ++), QtRuby / Korundum - legarea la Qt și KDE, respectiv, biblioteci grafice pentru a lucra cu Tk și Gtk. bibliotecă pentru OpenGL este, de asemenea, pusă în aplicare. permite programarea grafică tridimensională.
Win32utils - vă permite să accesați un anumit capabilități Win32 API. Rmagick - Biblioteca pentru lucrul cu imagini, sprijinind mai mult de 90 de formate (pe baza ImageMagick și GraphicsMagick).
Pentru a gestiona biblioteci și programe Ruby sub formă de pachete de sine stătătoare sistem proiectat RubyGems de gestionare a pachetelor [11] (pietre în engleză, bijuterie -. Gem).
Cele mai multe dintre extensiile sunt distribuite sub o licență gratuită (LGPL. Ruby Licență) și poate fi utilizat în orice proiect cu practic nici o restricție.
articolul Documentație
Sistemul RDoc este proiectat pentru a extrage automat documentația din codul sursă și programele Ruby și prelucrarea ulterioară a acestuia. Este standardul de facto pentru pregătirea documentației pentru software-ul scris în Ruby.
Utilizarea regulilor
Dezavantaje Limba interpret și Editare
Dezavantajele interpretului Ruby astăzi includ următoarele:
- Viteza mica (retribution natural pentru programe rapide complexe de scriere).
- Lipsa de sprijin pentru firele sistemului de operare (nu suporta procese OS pentru sisteme de operare de tip Unix).
- Lipsa de suport construit pentru Unicode (se poate lucra cu biblioteci suplimentare. Planificate pentru a fi adăugate în versiunea 1.9).
- Lipsa de compilare a bytecode. (În acest caz, este posibil să se compila Ruby Java și .NET bytecode. Folosind JRuby și Ruby.NET compilator [7]). Versiunea 2.0 este planificată includerea YARV mașină virtuală. compilarea Ruby a bytecode și accelerează în mare măsură de execuție.