Posterous theme by Cory Watilo

Ruby kalba - mokykloms?

Media_httpimg256image_cjidi
Leisdamas Kalėdines dienas su šildomaisiais kompresais pažandy, varčiau įvairius Ruby manualus ir nėtikėtai šovė mintis, kad ši kalba būtų puikus mokymo programuoti instrumentas. Ypač pradedantiems. Prieš rašydami piktą komentarą apie Pascalio "lengvumą", C greitį ar panašiai, leiskite išdėstyti savo argumentus. Visų pirma, apie tikrus pradedančiuosius. Pamenu, kaip tiek mokykloje, tiek universitete apie pasirinkimą mokyti Pascalio kalbėdavo daugmaž "dėl to, kad lengva mokytis, kad panaši sintaksė...". Sutinku, kad norint suprasti programavimo logiką yra itin svarbus kalbos natūralumo barjerų nebuvimas. Kiek natūralus ir įskaitomas yra Pascalis, o kiek Ruby, galite spręsti iš pavyzdžio.
{ Pascal }
for i := 1 to 10 do
begin
  Writeln('Labas');
  Writeln('Čia ciklas');
end;
# Ruby
10.times {
  print "Labas"
  print "Čia ciklas"
}
Trumpai tariant Ruby sintaksė yra bent kelis kartus natūralesnė šnekamajai anglų kalbai, nei apskritai bet kokia kita programavimo kalba. Taigi kodas yra lengvai skaitomas, neretai programos tekstas labiau panašus į istoriją ar tiesiog instrukcijas ką kam reikia daryti, negu į rimtą programą. Taigi besimokantis gali koncentruotis į logiką, į algoritmą, o ne į sintaksės ypatybes. Antra, Ruby kalboje viskas yra objektai. Ir tai tikrai yra pliusas aiškinant apie programavimą pradedantiesiems. Nereikia pasakoti kas jie realiai yra ar kas yra objektinio programavimo paradigma, bet štai suvokti, kad realiame gyvenime "žodis" turi ilgį, jį galima nukirpti, padidinti raides, taigi ir kompiuteryje "žodis" yra objektas, kuriam galima atlikti tuos pačius veiksmus:
# Ruby
"žodis".length
"žodis".chop!
"žodis".capitalize
Nebūtina jau mokykloje dėstyti kaip kurti objektus, bet programavimo kalbos tokia objektinė logika yra artima natūraliam pasaulio suvokimui, kas padeda neatmesti ir įsisavinti programavimo ypatybes. Trečia, kaip privalumą norėčiau išskirti dinaminį kintamųjų tipų nustatymą. (Trumpai tiems, kas nežino kas tai yra. Programavimo kalbose kintamųjų tipai (ar tai sveikas skaičius, ar simbolis, ar žodis ar dar kas) nustatomi keliais būdais: vienos kalbos reikalauja deklaruoti tipą konkrečiam kintamajam (pvz. pascal: var skaicius: integer), taigi jo tipas jau žinomas prieš vykdymą (jei dar tiksliau - iškart sukompiliavus). Tai vadinama statiniu kintamojo tipo priskyrimu. Dinamiškai tą darančios kalbos tipą kintamajam suteikia tik tada, kai jam priskiriama reikšmė, vykdymo metu, t.y. deklaruoti iš anksto tipų nereikia). Nereikia deklaracijų prieš programos vykdymą, nereikia gaišti laiko įsivedant naują kintamąjį ir vėl keliaujant į pradžią apsibrėžti jo tipo (kalbant apie Pascal) ar po kūrybos proceso trinti tą pusę taip ir nepanaudotų kintamųjų. Pascal stiliaus tipų išskyrimas ir ypač pavyzdžiai knygose "priveda" prie stiliaus var a, b, c, d, e, f, g: integer; o to atsikratyti rimčiau neprogramuojantiems labai sunku. Ketvirta, išmokę Pascalio ir baigę mokymo įstaigą mokiniai (studentai) gali sėkmingai kišti savo šios kalbos žinias į stalčių, nes jų daugiau niekada neprireiks. Panašios sintaksės šiandien pramonėje naudojamų kalbų neteko matyti. O Ruby turi labai plačias erdves tolesniam naudojimui ir self.tobulėjimui - galima sukti link taikomųjų programų arba interneto tinklapių kūrimo vandenų. Be to, Ruby daug savybių turi "paveldėjusi" iš Perl ir Python, kurios priklauso pramonėje naudojamų interpretuojamų kalbų vainikui. Penkta, Ruby - atviro kodo kalba, kuri vystoma GNU/Linux, o veikia daugelyje UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2 ir kitose operacinėse sistemose. Kadangi tai interpretuojama kalba, norint ją paleisti įvairiose aplinkose, nieko nereikia perkompiliuoti. Daugiausiai paminėjau Ruby vs. Pascal ypatumus, tad galite paklausti, o kodėl ne kokia kita kalba, jeigu Pascal jau tokia atgyvena? Daugelis kalbų tikrai nėra kartu tokios lanksčios, draugiškos pradedančiajam, tačiau galingos patyrusiems, pakankamai populiarios, taigi turinčios aktyvią bendruomenę. Iliustracijai pateikiu Java vs. Ruby kodą, kuris daro tą patį - nuskaito jūsų įrašytą vardą ir jus pasveikina.
/* Java */
import java.io.*;
/* ... */
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(isr);
String name = null;
try {
  if ((name = reader.readLine()) != null) {
    System.out.println("Hello, " + name + "\n");
  }
} catch (IOException e) {
  System.err.println("Caught: " + e);
}
# Ruby
name = gets
puts "Hello, " + name
Pats toli gražu nesu Ruby guru, o tik pradedantysis, bet dėl minėtų priežasčių esu įsitikinęs, kad mokymas programuoti šia kalba atneštų kur kas daugiau naudos ir sėkmės, negu dabar naudojamom priemonėm. Pasaulyje aplink mus pirmi žingsniai jau žengti - jau yra mokyklų ir universitetų, kurie priėmė teisingą sprendimą. Pavyzdžiui, Harvarde dėstomas "Introduction to Computer Science", kuriame žvelgiama į C ir Ruby. Manau Ruby 2.0 versija, kuri jau palaikys Unicode, išspręs problemas su greičiu (pasitelkdamas virtualią mašiną) ir gijų (thread) tipais, galėtų būti puikus pagrindas kam nors priimti teisingą sprendimą. Laikas keistis?

Posted by

| Viewed
times | Favorited 0 times
Filed under:    

29 Comments

Dec 29, 2007
asterisk said...
Svajonės... :) Pas mus pačios mokytojos/ai nieko kito nežino kaip pascal pagrindai, tai ką jau kalbėti apie ruby. Niekas neperrašinės vadovėlių ir nemokys naujų kalbų. Nebent po 15-20m.
Dec 29, 2007
noTime said...
Aš asmeniškai esu už Java. Ant smūgio atsisijotų idiotai (mano buvusi mokytoja nežinojo kas yra kompas), o besimokantiems būtų naudinga.
Dec 30, 2007
ech0 said...
Straipsnis paskatino pradėt mokytis Ruby. Senokai galvojau pabandyt, bet vis neprisiruošdavau... Dėkui :)

Dėl mokyklų... Konservatyvus požiūris ir tiesiog nenoras stabdo progresą. Mokytojai retai seka programavimo kalbų naujienas ir taip neplečia savo kvalifikacijos, galvodami (ir kolkas būdami teisūs), kad su Pascal žiniom jie saugūs savo darbo vietoje...

Dec 30, 2007
Vidmantas said...
asterisk, nuo mokyklos niekas ir neprasidės. Reikėtų, kad kažkas pradėtų dėstyti šią kalba universitete, taip po truputį atsirastų "literatūros" lietuvių kalba, kuri būtų tinkama pradinukų mokymui. Nors apie bet kokią programavimo kalbą rimtos literatūros (ne vertalo) lietuviškai nė nekvepia.

noTime, ne, Javos geriau nereikia. A. Java palaiko TIK objektinį programavimą. B. Išaiškinti visiškai pradedantisiems paskutinį pavyzdį, kuris atlieka elementarų veiksmą, manau, prireiktų daugmaž metų. Aš po tokio "įvado" bėgčiau kuo toliau :-)

ech0, na manau mokytojai ir neprivalo sekti visas naujausias tendencijas IT pasaulyje, jų mokymo tikslas ne toks. Pasikeitus situacijai nuo pascalio pereiti prie paprastesnio Ruby sugebėtų, manau, 99%.

Dec 30, 2007
MekDrop said...
Sutinku, kad reiktų pakeisti Pascal'į, bet keisti į Ruby vis dėl to nesiūlyčiau... nors irgi neblogas variantas būtų... kaip ir kokia BASIC kalba... :)

Kadangi pasaulyje išesmės dabar dominuoja C sintakse arba jos modifikacija paremtos kalbos, nauja dėstoma programavimo kalba, manau, turėtų ją palaikyti. O paprasčiausias dalykas ateinantis man į galvą - tai JavaScript. Kiek žiūrėjau pagal praitų metų inf. olimpiados uždavinius - nėra tokio uždavinio, kurio su šia programavimo kalba nebūtų galima išspręsti + tai viena iš tų kalbų, kurią galima rasti vos ne kiekviename kompiuteryje :)

Nors kita vertus pačius programavimo pagrindus siūlyčiau pradėti mokintis nuo tokių kalbų Logo (dėl natūralios kalbos).

Dec 30, 2007
Vidmantas said...
MekDrop, javascriptas priklausomas nuo naršyklės, kas yra per daug riebus minusas. Taip, C stiliaus sintaksė plačiai paplitusi pramoninėse kalbose, bet praktiškai visos naujos patogios kalbos toli gražu nėra C stiliaus. Ne, nesutikčiau dėl javascript... Dėl daugelio priežasčių.

Na, ir lyginti Ruby su BASIC... :-)

Dec 30, 2007
Blogorama #295 : nežinau.lt said...
[...] vartotojams siūlo pagyvinti administravimo sąsają vienu iš kelių skirtingų apvalkalų. Vidmantas vietoje Pascal siūlo mokyklose mokyti Ruby. Fogenous IT piktinasi RIAA kabinėjimusi prie vartotojų dėl duomenų kopijavimo iš diskų savo [...]
Dec 30, 2007
MekDrop said...
Kadangi nemoku aš Ruby tai sprendžiau apie ją iš tavo pateiktų pavyzdžių... todėl suprantama, kad galiu klysti... :) Šiaip ar taip neskaitant sintaksės kai kurie šiuolaikiniai BASIC atitinka visus išvardintus tavo punktus. Deja, nevisi BASIC dialektai yra tarpusavyje suderinami... todėl čia gali būti didelių sunkumų... :(

O dėl C sintaksės: atsiranda tiek pat naujų kalbų, kurios nenaudoja C sintaksės, kiek ir tų kurios naudoja. Išesmės galima sakyti, kad lygiosios. Žinoma, C sintaksė populiaresnė tarp komercinių organizacijų, bet ir šios dažniausiai savo naujoms programavimo kalboms po kurio laiko patvirtina kokiais nors ISO standartais.

Visgi mokykla yra svarbus dalykas ir čia kalbos bet kokios neišeina pasirinkti. Prieš sakant, kad vieną kalba yra tinkamiausia reiktų atlikti kokią nors 20-ies kalbų tinkamumo analizę (man atrodo turime išties nemažai kandidatų; berašydamas prisiminiau apie LUA... kuri irgi gal visai nebloga būtų...). Šiaip ar taip manau, kad mokykloj turėtum neišmokti programuoti viena kalba, bet sugebėtum išmokti bet kurios iš jų :)

Dec 31, 2007
blogeriai.net » Blog Archive » Paskalis mokyklose said...
[...] mokyklose siūlo naudoti ruby. Sutinku, kad paskalis blogai, bet dėl manęs geriau būtų python'as, o ne ruby. Python'as tai [...]
Jan 02, 2008
Pawka said...
Šiaip mokyklose <strike>dėstyti</strike> mokyti Ruby būtų labai pravartu. Daug patogiau ir aiškiau. Tačiau Ruby naudoti kaip pagrindinę kalbą universitetuose - nesutikčiau. Manau daug lengviau būtų savarankiškai perprasti Ruby, mokant C sintaksės kalbą nei atvirkščiai. Manau, kad C (ar Java) suteikia tvirtesnius programavimo pagrindus.
Jan 02, 2008
Gintaras said...
Vidmantai, sutinku su tavo mintimis, tik nebūčiau toks kategoriškas dėl "pramoninio" Pascal naudojimo.. yra Delphi ir jo atmainos, kurios labai smarkiai naudojamos. Dabar mažėja aišku ir web tendencijų ten mažiau, bet visgi.. panaudoti žinias yra kur. umm. Gali pasakyti, kad tai ne visai Pascal, ir ... gal būsi teisus kažkiek :)
Jan 02, 2008
dz0 said...
o kodėl ne python?

jis man atrodo aiškesnis už ruby ir LT turi giliasnes tradicijas..

kaip tik kompiuterijai pridaviau straipsniuką
http://popmokslas.projektas.lt/failai/python/python--programavimas_visiems.odt
ir dar aptikau
http://blog.sandbox.lt/page/index/lt/Paskalis+mokyklose

Jan 06, 2008
kestaz said...
Jo, as taip pat sutinku su dz0 .. as taip pat uz Python

Python jau turi gilias saknis .. Ir naudojamas daug kur .. Kad ir tokiam produkte kaip Ubuntu.

Taip pat sintakse /mano manymu/ daug aiskense yra Python. Ir daug skaitomesne.

Is programvimo patirties galiu pasakyt .. kuo labiau sutrumpinama deklaracija tuo viskas darosi neaiskiau ..

o python'e tas ciklas atrodo labai kompatiskai

for i in range(10):
print 'hello word 10th times'

pliusas kad gali naudot iteratoriu i. su tuo ruby 10.times net neaisku kaip ciklo kintamaji naudot.. o ant python'o kompaktiskoje istraiskoje viskas aisku ..

Sakyciau optimaliausias variantas yra s/Pascal/Python/ Ir visos problemos bus issprestos ..

Taip pat Python'as turi Django framework'a .. kuris gali buti labai didelis konkurentas analogiskams web ruby framework'ams

Jan 07, 2008
Vidmantas said...
Pasaulyje Pythono populiarumas blėsta - knygų apie Ruby jau parduota daugiau negu Pythono. Net nebešneku apie Japoniją, iš kurios visos naujovės ankščiau ar vėliau persikelia į Europą ir JAV. Kęstai, dėl sutrumpinimo pažiūrėk kuo gali virsti Perl. Aš savo ruožtu tikiuosi, kad taip su Ruby neatsitiks.

Iš kelių pavyzdžių apie Ruby nespręskite, kaip apie iteratorius. Yra ne vienas būdas iteruoti, tai buvo tik paprasčiausias pavyzdys. Daugiau nesurašiau, nes ne pavyzdyje esmė, daugiau jų visada galima rasti internete. Sutinku, kad Python yra senesnė ir publika prie jos pripratus labiau, tačiau jokio skirtumo pradedantiesiems, jeigu bendruomenė aktyvi.

Ir pabaigai vienas pastebėjimas: išlįskite iš savo mėgstamų kalbų kiauto ir pažiūrėkite į viską iš šono. Suprantu, kad ta kalba, kurią mokate, atrodo jums pati aiškiausia ir pati patogiausia, bet toks įspūdis, kad tai trukdo pažvelgti į kitą sodą.

Jan 07, 2008
Gintaras said...
Amen!
Jan 13, 2008
Savaitgalio skaitiniai #47 » Pixel.lt said...
[...] Tutorial - Part 1 - pirmas pilnas ir tikrai aiškus straipsnis, kaip pradėti dirbti su RoR 2.0. Ruby kalba - mokykloms? - Vidmantas svarsto apie Ruby tinkamumą mokykloms. A Coder’s Guide to Coffee - programeriai be [...]
Jan 13, 2008
Rimantas said...
Ghm, ghm, gal autorius norėtų savo Ruby pavyzdį pataisyti? Riestinius skliaustus būtų gerai pakeisti do-end. Be to, jei jau reikia writeln atitikmens, tai geriau naudoti puts, o ne print.
Dėl mokymo programuoti – kalba čia visiškai antraeilis dalykas. Mane programuoti išmokino
be kompiuterio (reta mokykla jų tada turėjo) ir kažkokia pseudo kalba. Prisėdus prie KYBT-2 su
MSX Basic teliko tik sintaksę susižinoti :). Gal Java nelabai tinka, dėl to, kad labai daug pagalbinio
kodo, ir taip pasimeta esmė, o Pascal, Ruby, Python ar ECMA Script — nėra didelio skirtumo.
Python vs. Ruby daugiau skonio dalykas, nors kai kurie dalykai Pythone yra užtempti vėliau, o Rubyje į kalbos dizainą jau iš pat pradžių kreipta daug dėmesio. Gal kiek daugiau skirtumai kliūva
įlindus į metaprogramavimą, ten Pythonui ima kišti koją jo kodo formatavimo taisyklės.
O JavaScript (ECMA Script) vertas dėmesio. Tai gerokai rimtesnė kalba, nei atrodo (ir neapsiriboja naršyklėmis, pažiūrėkit pvz. Rhino projektą).
Jan 13, 2008
Vidmantas said...
Rimantai, taip tu teisus. Dėl pavyzdžio - sintaksė tai leidžia, nors taip, tipiškiau būtų puts ir do-end konstrukcija. Manau tai taip pat parodo Ruby "cukriuką", kuris nepririša prie reikalaujamos-ir-vienintelės konstrukcijos.
Jan 13, 2008
Sepa said...
Na, aš čia pavėluotai, bet... yra toks posakis: "Jeigu sukursi daiktą, kuriuo galės naudotis ir kvailys, tai tik kvailys juo ir naudosis".

Manau, kad mokykloje prie javos arba C geriau pereit. O dar geriau niekur nepereit, nes paskalis tikrai nėra tokia kompleksinė kalba kaip Ruby ar kitos (t.y. gerai, easy-to-write-stuff-in-ruby, bet ten tiek daug visko, ko nereikia mokyklos kursui...)

Nežinau, gal aš čia prastas programuotojas, kuriam buvo nesudėtinga perprast C/Java/Python/Perl/PHP, bet vistik Ruby aš neperkandau, pasižaidžiau porą dienų - nieko neišėjo ir mečiau. Kažkur skaičiau, kad sintaksė atseit į pitono šiek tiek panaši. Šiek tiek ir buvo panaši, nepatiko.

Beje, man rodos su Ruby gali tą "10.times" irgi pakeist į paprastą old-school-php-java-like for'us? Čia aš įžvelgiu minusą šiai kalbai (žvelgiant per asmeninę prizmę), kad kalbos operatoriai turi krūvas sinonimų. Dabar įsivaizduok yra du programuotojai, vienas naudojasi vienais sinonimais ir programuoja, ateina kitas jo kodą taisyt ir nieko nesupranta, nes jis įpratęs visiškai kitais operatoriais tą patį atlikinėt.

Galų gale, padirbėjus abiems tokiems prie vieno projekto gaunasi fignia: kode - bardakas, programa - vabalynas.

IMHO Ruby nesilaiko KISS principo. Bet čia tik IMHO.

Jan 13, 2008
Vidmantas said...
Sepa, manau šįkart tu stipriai pro šalį.

Dėl kvailio posakio kas liečia Ruby - taip, paprasta įgauti pagreitį mokytis, tačiau patyrusiems suteikiamos visos galimybės. Lambda funkcijos, visada atviros klasės, pilnas OOP modelis ir t.t. Pilna atsiliepimų ir nuomonių internete, kur žmonės po dešimtmečių su C#, Java į Python ar Ruby. Turbūt ne nuo senatvinės negalios?

Dėl mokyklos: C ir Java ten tikrai ne vieta, pamąstyk pats ar norėtų programavimo pradinukas išklausyti kursą apie pointerius, pilną kursą apie objektinio programavimo paradigmą, paaiškinti krūvą pagalbinio kodo ir pan. Ko nereikia ką su teikia Ruby - liuks, nenaudokite, bet jeigu yra tai yra pliusas.

Dėl kelių būdų parašyti tą patį, tai, Juliau, nesakyk, kad jeigu parašyta "{" ir "}", nesuprasi, kad bloką taip pat gali žymėt "do" ir "end". Arba jeigu parašyta "10.times", nesurpasi "for i in 1..10". Tai išraiškos laisvė, bet net nežinodamas gali lengvai suprasti ką reiškia paprastos konstrukcijos. Negi manai, kad programuotojai tikrai tokie bukagalviai, kad tik vieną išraišką tesugeba suprasti? Neapgaudinėk savęs...

Dėl KISS: taip, advanced topikuose Ruby nesilaiko KISS. Bet paprastuose - kaip kitaip ir pavadinti? Taigi iš tavo pirmo ir paskutinio sakinio nesupratau, kas yra geriau - kad būtų KISS ar priešingai?

Jan 13, 2008
Sepa said...
Aš myliu KISS, todėl geriau (mano nuomone) yra KISS variantas. :)

Cituoju: "Negi manai, kad programuotojai tikrai tokie bukagalviai, kad tik vieną išraišką tesugeba suprasti?" - pas kiekvieną programuotoją, turėtum žinot, yra programavimo įpročiai ir kai tenka keisti svetimą kodą ir aiškintis kas ten daroma (gerai, jei komentarų yra) ir dar reikia keisti...

Mokykla - jo, tavo argumentai įtikino, pointeriai bet ką atmuš nuo informatikos pamokų :) Tačiau vistiek, tai ne priežastis siūlyti Ruby.

Va, dabar man įdomu pasidarė ar Ruby GRYNAI OOP kalba ar ten galima ir kažką su "grynom" funkcijom padaryt? :) Kvailas klausimas, bet jeigu grynai OOP (aš kai tyrinėjau, tai mačiau tik klases) - tai Ruby atmetimui nuo mokyklos tinka tas pats tavo argumentas, kaip ir dėl Javos. Jei ne, tai atsiprašau, nusišnekėjau :)

Beje, kas neliečia mokyklų, tu programuoji su Ruby savo įdomumui ar kur nors dirbdamas? Kokia firma naudoja Ruby? :)

Ir dar, kažkada ir RoR'sus bandžiau pasileisti ant savo apachiaus, tada pavyko. Bet paskui tryniau, vėl įrašiau ruby ir nebeina - kažko visiškai nesivykdo ruby kodas, o kartais pats apachis nulūžta davus užklausą ir puslapį. Maž gal buvai susidūręs su tuo?

Pabaigai, tai apsigirsiu, kad pas mane C:\Ruby direktorija vis dar užpildyta :) laukiu įkvėpimo tą aukščiau aprašytą bėdą išspręsti, žiūrėsim, galbūt rimčiau įsigilinęs irgi pakeisiu nuomonę, bet pakolkas man PHP gerai.

Jan 13, 2008
Vidmantas said...
Dėl Ruby "like Java": taip, galima tik su paprastom funkcijom. Pvz pilna "Hello, Dolly" programa (gali copy-paste :) :

def salute(name)
puts "Hello, #{name}"
end

salute "Dolly"

Dėl naudojimo - turiu darbo su Ruby on Rails. O grynai vien Ruby krapštau savo malonumui.

Dėl ROR ir apache - jeigu tik sau, kam leisti per Apache? Developinimui yra skirtas Webrick. Susikurk naują RoR projektą, ir toje direktorijoje įvykdyk ruby script\server ir naršyklėje nuėjęs http://localhost:3000 rasi veikiančią RoR aplikaciją.

Ir pabaigai pridursiu, kad kai tenka padirbti su Ruby, RoR ir reikia vėl persiorientuoti ir grįžti prie PHP, tai jaučiuosi kiek diskomfortiškai, lyg grįžęs 10 metų atgal (nors, įdomi detalė, Ruby pora metų vyresnis negu PHP). Galbūt kada nors irgi panašiai pasakysi? ;-)

Jan 13, 2008
Edgaras said...
Visiškai nesutinku su striaspnio autoriumi. Labai gražius pavyzdžius čia pateikei, o kur kompiliavimo/paleidimo pavizdys? Tu išaiškink humanitarui dešimtokui, kaip paleisti ruby scriptą. Vidurinė mokykla nėra skirta ruošti programuotojams ar dar kam, o vidurinį išsilavinimą turinčius asmenis, programavimas jame vaidina labai nedidelį vaidmenį. Kas norės - tas išmoks. Straipsnis ta tema: http://www.arvydas.net/bevertes-programavimo-kalbos
Jan 14, 2008
Vidmantas said...
Kaip paleisti Ruby skriptą Windows (analogiškai galima sutvarkyti ir kitose OS):
1) Išsaugoti failą .rb plėtiniu
2) Dukart paspausti ant jo su pelyte.

Nemanau, kad humanitarams tai sukeltų problemų.

Jan 14, 2008
Artūras Šlajus said...
http://hacketyhack.net/ ;-)
Jan 15, 2008
Dalius said...
Dėl python populiarumo blėsimo tu stipriai perlenkei :) Ir labai stipriai.

http://www.tiobe.com/tpci.htm

January Headline: TIOBE declares Python as programming language of 2007!

Jan 15, 2008
Vidmantas said...
Liuks, džiaugiuosi, kad klydau :-)
Dec 29, 2009
ELLA30yq said...
This demand hard efforts and time to finish the outline thesis just about this post, thus, we prefer to detect the thesis service to receive the PhD degree.
Aug 16, 2010
LiliaCooper34 said...
This is cool that we are able to take the business loans and it opens completely new opportunities.

Leave a comment...