Gi folk riktig verktøy!

...så skal du se de lager sinnsykt kule ting.

Ruby on rails gjør det både lett og moro å lage web-tjenester. Rails baserer seg på prinsippet om konvensjon heller enn konfigurasjon. Dette høres ganske fluffy ut, men er egentlig et skikkelig liketil prinsipp.

De fleste programmeringsspråk, rammeverk og systemer jeg har sett er rett og slett ikke så hjelpsomme, kanskje i likhet med slik de fleste oppfatter programmerere. Programmereren vet at alt er mulig, det er bare å si hva man vil ha. Omtrentligheter passer dårlig inn i programmererens verden; stiller du et uklart formulert spørsmål kan du få de underligste svar tilbake. Det er noe forlokkende logisk og ordnet i dataverden, i motsetning til den verden de fleste andre lever i. Sånn sett er det vel slående likheter mellom Aspergers syndrom og programmerere.

Vel, grunnen til dette er vel at programmereren ikke liker å forenkle ting. Det kan være fatalt for et program om man ikke skiller mellom heltall og flyttall, for eksempel – en distinksjon man i dagliglivet ser helt bort fra og heller opererer med det mer abstrakte begrepet tall.

Denne skepsisen for å forenkle gjenspeiles ofte i rammeverkene programmerere bruker. For at brukerne av rammeverket skal forstå hvor avansert og fleksibelt det er får man ingenting gratis. RTFM or die. Og fleksibilitetens beste venn er konfigurasjonsfila. De fleste rammeverk inneholder derfor mengder med konfigurasjonsfiler – det vanligste nå for tida er XML, som ifølge de som liker det skal være like lett å lese for mennesker som maskiner. [1]

Med disse konfigurasjonsfilene blir programmereren altså sittende og konfigurere applikasjonen sin (i stedet for å programmere). Skikkelig fleksibelt, javisst. Rails gjør det på en helt annen måte. Rails er antakelig like fleksibel som andre webrammeverk, men lar deg begynne med noe mer enn to tomme hender. Du kan faktisk ha en “rough and ready” webapplikasjon oppe på noen ganske få minutter med rails. Og prinsippet er at man følger konvensjoner, og så kan man heller avvike fra disse hvis man vil.

For eksempel bygger Rails på MVC prinsippet, og bygger dermed Model-, View- og Controller-klasser for deg, gir dem standardnavn og legger dem på standard steder. Så kan du gjerne gi dem nye navn og flytte på dem etterpå, når du vet hva du gjør og hva du vil. Denne måten å fungere på speiler veldig godt en fornuftig måte å jobbe på, der man begynner med et utgangspunkt for diskusjon, og så prøver, feiler og lærer sammen underveis. Antakelser om hva man skal lage før prosjektet begynner ligner sjelden på det man ender opp med til slutt, verdiene blir til i løpet av prosessen. En naturlig konsekvens av dette er at det første utkastet man lager ikke kommer til å overleve gjennom prosjektet, ingen vits i å legge for mye jobb i førsteutkastet.

De fleste bruker nok idag rails til databasedrevne nettsider. Rails har innebygget funksjonalitet for AJAX som brukes til å lage nettsider som virker mer som skikkelige programmer enn fancy blader. Og med disse verktøyene er det en kar som har laget en nettside med innebygget stavekontroll med rails. Det er ikke mange linjene med kode, men eksempelet viser en fullt fungerende nettside der stavingen kontrolleres og man får forslag til andre ord underveis, omtrent som i Word.

Jeg ser ikke bortsett fra at sånne ting kan skape begeistring for rails (eller rettere sagt det man kan lage med rails) også hos ikke-programmerere. Og det er gode nyheter for oss som allerede er solgt.

1 Det finnes andre konfigurasjonsspråk som også kan leses av både mennesker og maskiner, men som ikke er like omstendelige som XML. YAML er min favoritt, den deler syntaks med den typiske handlelista. Mer om YAML her

Code art by Frisk Bris. And, oh, we work too.