Limunada o izgubljenom programskom jeziku

programiranje

Ruby je c00l zadnjih godina, najviše zahvaljujući Rails okruženju. Neki programeri su oduševljeni njegovom osobinom da kad čitate Ruby kod zapravo govorite što on radi. Hm...to je zgodno. Ako čitate kod. Meni to nije zgodno jer ne čitam kod. Je, je, znam i ja sam znao sto puta ponoviti onu da se kod jednom piše, a puno puta čita. Ja skeniram kod, prolazim ga pogledom, pronalazim obrasce. Zato mi je važna čista struktura koda, bez znakova koji paraju oko. Vjerujem da većina iskusnijih programera radi na taj način.

Jedna od stvari koje obično pokazuju veseli rubijaši je i nešto poput 50.Times do. To je zgodno, ali recite mi kolika je vjerojatnost da imate opravdanu potrebu da broj zapečete u kod? Najvjerojatnije je to ipak samo u prezentacijske svrhe jer je to valjda efektnije nego pisati n.Times.

Jedan od blogera koji voli Ruby way i želio bi isto tako raditi i u drugim programskim jezicima je Tim Rayburn. On je u svojem postu pokazao kako navedenu strukturu izvesti u C#-u.

Ruby (kraća inačica):


50.Times do
Puts "We Built This City ..."
end

Tim je napisao svoju klasu koja mu je omogućila da C# kod izgleda ovako:


50.Times(i => {
Console.WriteLine("We Built This City...");
}

Moram priznati da mi je ta struktura pomalo nespretna, ali nije to ono što mi je palo na pamet kad sam vidio navedeni primjer. Postoji jedan čudan programski jezik/alat koji se zvao Clarion. Zvao? Postoji on uvijek i ima vjernu korisničku bazu, ali ekipa koja radi taj alat posjeduje nenadmašnu sposobnost da vrlo dobre ideje izvede na vrlo loš način. Dobre ideje i dobar tim (početkom devedesetih tu je bio i Niels Jensen i dio njegove ekipe iz Borlanda) bile su tek tračak svjetla koji se odavno ugasio. Eh da, gore navedeni kod bi se u Clarionu napisao ovako...


Loop 50 Times
Type('We built this city...')
End

Hm...pa to je čitljivije i od Rubya. Prirodnije. Clarion nije imao for, while, repeat..until petlje. Imao je samo jednu petlju. Loop. I onda se mogla pojaviti u svim pojavnim oblicima kao navedene. Jednostavno. Ono što je još bilo zgodno u Clarionu (govorim o DOS inačici i vremenu dok je vladao MSDOS) je da nije trebalo programirati izglede ekrana i izvješća (kao što to neki još i danas rade...new gumb(); gumb.mjesto = new tocka(10,20)) već su postojale strukture screen, report koje su po svemu bile vrlo bliske nekim današnjim markup jezicima za sučelja. Sam alat je imao grafičko sučelje za crtanje ekrana i izvješća (u DOS-u, sjećate li se?). Osim vrlo jasnog i čitljivog jezika Clarion je imao još dvije važne stvari - unificirane database drivere (promjena baze se svodila na promjenu drivera, kod nije trebalo uopće mijenjati....uglavnom) te embedded template engine. Zvuči poznato? Kako sam kasnije počeo razvijati web aplikacije shvatio sam da samo trebam primjenjivati principe koje sam odavno naučio u Clarionu. Kad mi je kolega nedavno pokazao CodeSmith nisam imao što za reći. Već viđeno.

I što je sad s tim sjajnim alatom? Postoji li web inačica? Na žalost postoji, ali rad s njom ne bih poželio ni najžešćem neprijatelju. Da su stvari krenule krivo moglo se već vidjeti u 3.xxxx DOS inačici. Ona je imala extender koji je aplikacijama omogućio rad u protected modu i iskorištavanje čitave memorije (sjećate li se granice od 640kb?). Ali samo halo_svijete.exe zauzimao je 500kb. Čini mi se da je nakon odlaska Jensena i ekipe posao preuzela ekipa šampiona koja je uprskala sve što se uprskati dalo. Windows inačice bile su teška katastrofa, Clarion je postao objektni jezik i to je jedna od najhorror implementacija objektnog modela koja postoji.

Oni koji su frustrirani činjenicom da moraju raditi u Clarionu mrze taj jezik pa ne vide što bi se iz njega moglo dobro izvući. Oni koji ga vole previše su uvučeni u taj svijet i teško ih je izvući. Da li je Clarion smeće? Je! Ali u smeću ponekad možete pronaći i pravo blago. Ili barem inspiraciju.