Jakten på den røde rubin
“This is your last chance. After this, there is no turning back. You take the blue pill - the story ends, you wake up in your bed and believe that C# is the only way to code. You take the red pill - you stay in Wonderland and I show you how different, simple and interesting code can really be.”

Jeg har tatt den røde pillen, og takker Morten Brudvik for tipset. Etter å ha programmert i endel år nå så merker jeg at interessen for selve kodingen har stagnert. Jeg er opptatt av god arkitektur, og det er mange spennende disipliner i .NET verdenen, men jeg merker at jeg har blitt litt sløvet i måten å tenke kode på - the C# way blir litt ensformig i lengden faktisk - og jeg bestemte meg derfor for å utfordre meg selv litt.
Jeg har derfor begynt Ã¥ lære meg Ruby; ett litt anderledes sprÃ¥k som pÃ¥ nostalgisk vis fører meg tilbake til Universitets-dagene og Unix-livet. PÃ¥ samme mÃ¥te som C# er det basert pÃ¥ populære sprÃ¥k og erfaringer (i Ruby’s tilfelle Ada, Perl, Smalltalk, Python, Lisp m.m.), men forsøker Ã¥ gÃ¥ et steg videre og adressere svakhetene i disse sprÃ¥kene. Etterhvert som jeg leser meg opp pÃ¥ Ruby sÃ¥ slÃ¥r det meg at mange av de unike elementene i Ruby har paralelle elementer i C# som er løsninger pÃ¥ svakheter i C++ og Java.
Filosofien bak Ruby er Ã¥ gjøre programmereren lykkelig ved Ã¥ fjerne mengden av “manuelt arbeid” under kodingen, og være minst mulig “overraskende” i sin virkemÃ¥te. Det er et objektorientert sprÃ¥k - ALT er objekter - og bruker “dynamic typing”, en feature jeg faktisk aldri har sett nytten av før nÃ¥. Det som er helt nytt for meg er bruken av kodeblokker som parametre til funksjoner. Se for deg kode hvor du i nesten hvert eneste metodekall sender med et delegat til en funksjon som metodekallet kjører. Det er veldig fjernt fra sÃ¥nn som vi er vant til Ã¥ tenke i C-verden, men det er faktisk veldig elegant.
Selv om Ruby er et såkalt skriptspråk, så påstås det at det kan brukes til det meste. NASA bruker det til å kjøre simuleringer, så da må det jo være kult. Ellers brukes det mye til behandling av data, netverks- og systemadministrasjon, web applikasjoner osv. For meg blir det nok aldri noen erstatning for C# og .NET rammeverket, og ikke for mine arbeidsgivere heller. C# er bedre på å strukturere større prosjekter, men som er sekundærspråk for å utføre mindre oppgaver som f.eks. automatisering av repetetive oppgaver eller parsing/transformering av data, så er Ruby ypperlig for meg. 10 linjer i TextPad som det tar 5 minutter å skrive gjør samme jobben som et prosjekt i .NET som det tar en halvtime å opprette, kode og kompilere. For ikke å snakke om hvor lett det er å gjøre endringer.
Men først og fremst får Ruby meg til å tenke.., til å tenke nytt. Kanskje vil dette også inspirere meg til å ta opp igjen arbeidet med neurale nettverk og kunstig intelligens, hvem vet..?! Og så er det jo veldig kult da (på en veldig nerdete måte, jeg vet)!
Wikipedia: http://en.wikipedia.org/wiki/Ruby_programming_language
Lærebok: http://www.rubycentral.com/book/
Ruby Quiz: http://www.rubyquiz.com/










