"Ruby" kalba

"Ruby" – objektinio programavimo kalba, kurią sukūrė Yukihiro Matsumoto ("Matz"). Kūrimas prasidėjo 1993 m. vasario mėn. ir pirmoji alfa versija pateikta 1994 m. gruodžio mėn. Pripažinimo susilaukė 2006 m. Dabar "Ruby" pateikiama kartu su Mac OS X. Daugelis "Linux" distribucijų arba pateikiamos kartu su "Ruby", arba lengvai instaliuojama. Yra variantas "Windows" terpei.

"Ruby" kurta kaip alternatyva "Perl" ir "Python" kalboms. Ji daug ką perėmė iš "Perl" ir klasių biblioteka, iš esmės, yra objektiškai pertvarkytas "Perl" funkcionalus. Taip pat, "Rumy" perėmė kai kuriuos elementus iš "Lisp" ir "Smalltalk". Yra elementų ir iš "Eiffel", "Ada" bei "Python".

Skirtingai nuo C ar C++, "Ruby" yra gryna objektinė kalba. Viskas joje yra objektas, tame tarpe skaičiai ir kiti elementarieji tipai. Pvz., kai su skaičiumi naudojamas metodas:

5.times { print "Myliu Ruby" }

Objekto savybės vadinamos kopijos (instance) kintamaisiais, o funkcijos – metodais. "Ruby" leidžia tik paprastą paveldimumą. Kalba labai lanksti. Egzistuojančias klases galima papildyti naujais metodais nenaudojant subklasių, operatoriai gali būti daugybiniai (overload) ir net standartinių bibliotekų veikimas gali būti pakeistas kodo vykdymo metu. Pvz., kaip klasė Numeric papildoma metodu plus:

class Numeric
   def plus(x) self.+(x) end
end

Dabar šį metodą galime panaudoti sudėties pakeitimui:

y = 5.plus 6 # y bus lygu 11

"Ruby" kalboje nereikalaujama aprašyti kintamuosius Kintamojo vardas automatiškai nusako jo veikimo sritį:
x – lokalus kintamasis;
$x – globalus kintamasis;
@x – kopijos (instance) kintamasis;
@@x – klasės kintamasis.

Viena galingiausių savybių "Ruby" kalboje yra blokai (vadinami gaubtais, closures). Jie panašūs į "Java" anonimines klases, tačiau jais patogiau naudotis. Gaubtas leidžia kodo bloką perduoti metodui. Dažniausiai pateikiamas pavyzdys ura rūšiavimo metodo iškvietimas ir jam perduodamas gaubtas, kuris palygina dvi reikšmes – jis nusako, kaip bus rūšiuojami elementai. Gaubtas gali lyginti reikšmes kaip tekstą arba kaip skaitines reikšmes, tačiau gali atlikti ir daug sudėtingesnius veiksmus – pvz., jei rūšiuojamos reikšmės yra produktų kodai, gaubtas gali iš DB paimti produktų pavadinimus ir juos lyginti (o ne kodus).

Sudėtingesnės savybės:

  • Išimtys klaidų valdymui;
  • sužymintis šiukšlių surinkimas vietoje nuorodų skaičiavimo;
  • nuo operacinės terpės nepriklausomos gijos, - tad daugiagijai sprendimai galimi net tokiose sistemose kaip DOS.

Pagrindinė svetainė: ruby-lang.org

Paprasčiausias pavyzdys: Labas, pasauli

Sukurkite hw.rb bylą, kurioje yra toks kodas:

# Pirma programa:
puts 'Labas, pasauli!'

Ją galima įvykdyti komandų eilutėje surinkus:

ruby hw.rb

Galima šį kodą įvykdyti ir nekuriant bylos, o tiesiog vykdant:

ruby –e "puts 'Labas, pasauli!'"

"Unix" klasės operacinėse terpėse (pvz., "Linux", "Solaris" ir kt.), naudinga "Ruby" bylas sužymėti kaip vykdomas. Tada jų vykdymui nereiks kaskart rašyti komandos "ruby". Tai galima padaryti tokia komanda:

chmod +x hw.rb

Taip pat bylą pradėkite pseudo-komentaru, nurodančiu, kuri programa ją turi vykdyti, pvz.,

#!/usr/bin/ruby
puts 'Labas, pasauli!'

 

Ruby on Rails

Kol kas pateikiamas tik bendrasis pristatymas…

Ruby on Rails (dažnai trumpinant Rails arba RoR) – atviro kodo web sprendimų kūrimo aplinka "Ruby" programavimo kalbai. Ji pritaikyta Agile metodologijos naudojimui, labai tinkančios trumpiems, dažnai užsakovo reguliuojamiems projektams.

RoR buvo išgryninta iš David H. Hansonn darbo su "Basecamp", projektų valdymo įrankiu. RoR pirmąkart kaip atviras kodas pristatyta 2004 m. liepos mėn. 2006 m. rugpjūtį "Apple" paskelbė, kad platins "Ruby on Rails" su Mac OS X v10.5 Leopard operacine terpe.

Kaip ir kitos panašios aplinkos, RoR naudoja MVC architektūrą sprendimo organizavimui. Jis apima ir paprastą ruby web serverį (WEBrick) ir "Rake" sumontavimo (build) sistemą. RoR išsiskiria intensyviu "JavaScript" bivliotekų "Prototype" ir "Script.aculo.us" (Ajax'ui) naudojimu. Pradžioje web servisams buvo naudojamas lengvasis SOAP protokolas, kuris vėliau buvo pakeistas RESTful.

RoR yra suskaidytas į kelis paketus: ActiveRecord, ActiveResource, ActionPack, ActiveSupport, ActionMailer. Tačiau programuotojai gali sukurti papildymus (plugins), išplečiančius paketų galimybes.

RoR pabrėžia Agile programavimo principą "Nesikartok!" (DRY) bei CoC (Convention over Configuration). CoC nurodo, kad programuotojas turi specifikuoti tik nestandartinius sprendimo aspektus. Pvz., jei kuriama klasė "Sale" (Pardavimas), tai atitinkama DB lentelė automatiškai pavadinama "sales" (Pardavimai). Tik tada, kai nukrypstama nuo tokio susitarimo, pvz., pavadinant lentelė "soldProducts" (Parduoti produktai), tada reikia keisti kodą, susijusį su tais pavadinimais.

Ankstesnės "Advanced HTML" skyrelio temos:
ASP patarimų liūnas
AWK kalba - sena ir nuolat aktuali
JavaScript atspindžiai"
Pelė uodega švystelėjo...
CGI.pm biblioteka: sausainiai
Ką delne mums neša HTML 4.0?
Kaip valdyti piešinių pakrovimo tvarką
Kaip lankytoją nukreipti į kitą WWW puslapį
Įlįskite į lankytojų kailį
Vaizdi rašysena - VB Script
Dygios JavaScript eilutės
Tiesa apie REST

JavaScript pradmenys
Programavimo kalbų klegesys
Viešojo rakto kriptografija
Nutylimųjų savybių ieškant
Vartiklis