This post originated from an RSS feed registered with Ruby Buzz
by David Heinemeier Hansson.
Original Post: Besættelser, forsvarsmekanismer og Ruby [DK]
Feed Title: Loud Thinking
Feed URL: http://feeds.feedburner.com/LoudThinking
Feed Description: All about the full-stack, web-framework Rails for Ruby and on putting it to good effect with Basecamp
Jeg kan godt lide, hvordan du I én sætning både formår at antyde, at Ruby er en passerende fase ("seneste besættelse") samt at sproget er ligegyldigt eller i bedste fald overflødigt ("endnu et fortolket scriptsprog"). På den måde så har man da sikret sig ikke at skulle besvære sit intellekt med den byrde rent faktisk at kigge nærmere på sproget.
David, jeg ved at din seneste besættelse er Ruby. Der er altså mange gode grunde til at bruge et rigtigt oversat sprog og ikke endnu et fortolket scriptsprog.
Jeg ved ikke helt om din besættelse stammer fra Rubys nydelige lambda-funktioner (noget man savner en pæn syntaks for i de fleste imperative sprog) eller om der er andre grunde. Jeg har selvsagt læst hvad du har skrevet i din blog, men jeg er endnu ikke helt klar over hvad der, i den grad, tænder dig på Ruby.
Selvfølgelig er Ruby ikke et sprog, der er anvendeligt til alle formål til alle tider. Jeg kender ingen sprog, der er. Det skal ikke løse problemet med den næste OS kerne eller en 3D-engine. Men til web-applikationer, som er det domæne jeg arbejder med, har jeg fundet Ruby uovertruffent.
NASA og Motorola har ligeledes fundet Ruby anvendeligt til simulationer, Siemens til robotstyring, Lucent til kodegenerering (6KLOC Ruby => 150KLOC C++). Flere brugseksempler på Rubygarden.
Men det er klart, at det kræver både overskud og interesse at bevæge sig uden for den mainstream, som Micrsoft så trygt kan forsikre om, at de tilhører. Hvis man arbejder i et miljø, hvor signalværdien af sit værktøjsvalg ligger på samme niveau som leveringsværdien, så kan jeg bestemt godt se det problematiske.
Så kan jeg ligeledes også godt forstå, at ens ego hellere vil lægge ud med at være afvisende, så muligheden for at blive fristet ikke opstår. For når først fristelsen er tilstede, så er der ikke langt til skuffelsen, når man indser at ens arbejdsmiljø ikke er modtagelig for afvigelser uden for mainstreamen. Klassisk forsvarsmekanisme.
Angående "besættelsen", er det tydeligt, at du har valgt det ord til brug i en negativ og nedsættende vendning. Men i en vis udstrækning vil jeg faktisk give dig ret. Det er ikke, at Ruby blokerer udsigten til virkeligheden, men at sproget tilfører programmeringen en unik fornøjelse, der giver dens udøvere liden lyst til at bevæge sig tilbage til den gamle verden. Således kan deres beundring og glæde ved et programmeringssprog forekomme mærkelig eller enda mistænkelig, hvis man selv forbinder megen frustration og irritation med sin brug af programmeringssprog.
Det var en længere udredning i et forsøg på at substituere den fysiske distance, der sætter mig ude af stand til at klappe dig på skuldren og sige, at verden ikke behøver være så kynisk og kold. At entusiasme er et sundshedstegn, ikke et faresignal. At livet er for kort til at leves lukket og bitter.
P.S.: Den implicitte distinktion mellem et "rigtigt oversat sprog" og "et fortolket scriptsprog" er måske lidt for tydelig en "knee-jerk reaction", der kan undergrave saglige argumenter om sprog og deres anvendelighed. Bare en pointer, hvis du skulle få brug for at væbne forsvarsmekanismerne til kamp mod et dynamisk sprog en anden gang.
Ovenstående er en kommentar til Morten fra Fafner-net fra en diskussion om properties i C#, hvor jeg henledte opmærksomheden på Ruby ved at påpege at hvad Morten bruger 12 linjer på i C# kan gøres med én linje i Ruby.