Alle kodere har brug for en lade

I følge den mundtlige overlevering, var man i gamle dage en certificeret UNIX wizard, hvis ens login var et legalt sæt nyttefulde options til ls(1).

Og det siger naturligvis noget om min alder, at jeg kan fyre den slags bavl af, uden at fortrække en mine.

Jeg tror ikke selv på den historie: 'e' som i Ken Thompson, har så vidt jeg ved aldrig været en legal option til ls(1).

Mange af os startede vores open source kode karriere med at tilføje en eller anden feature til et existerende program og alle ved at den bedste måde at lære programmering på, er at vedligeholde noget kode der virker.

Men software er ikke geologi, man kan ikke ustraffet blive ved med at sedimentere den ene feature efter den anden ovenpå, lag for lag, før eller siden vælter læsset.

I FreeBSD projektet har den foretrukne procedure været "shoot your own dog", med reference til at anstændig mand ikke kunne bede andre om at skyde sin gamle hund en kugle for panden: der er ting en mand må gøre selv[1].

Der kommer en tid hvor device drivere ikke har relevans mere eller hvor interessen for SCO filsystemer er til at overskue og så må den slags features nødvendigvis dø, hvis ikke et operativsystem skal sande til i ligegyldig kode.

Hvis man er heldig, er den pågældende kode så gammel og mølædt at man med lettelse taster "rm -rf", men oftest er der en "emotionel attachment" som USAnere siger: man kan sgu' li' sin kode.

Heldigvis er software projekter lidt som den gamle økse man har arvet fra oldefar: Det er stadig oldes gamle økse, selvom man skifter hoved på det nye skaft far satte i.

Men derfor kan man stadig godt have brug for en lade, bag hvilken man kan stå alene et lille stykke tid, før man gør hvad der skal gøres.

phk

[1] I vores oplyste tider må han selv køre ud til dyrlægen.

Kommentarer (13)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Simon Grønnegaard

... og alle ved at den bedste måde at lære programmering på, er at vedligeholde noget kode der virker.

Jeg synes det er interessant med den mening eftersom de kurser jeg har fulgt for at lære programmering er baseret på at vi selv skal kode det hele fra bunden. Der har ikke været andre muligheder. Men jeg er ikke uenig med dig.

Derimod mener jeg det er spild af ressourcer at alle studerende skal lave det samme nye projekt i stedet for at bidrage til et allerede eksisterende open source projekt. Men jeg er godt klar over at det nok kræver en del mere af underviserne.

-Simon

  • 0
  • 0
Torben Mogensen Blogger

Derimod mener jeg det er spild af ressourcer at alle studerende skal lave det samme nye projekt i stedet for at bidrage til et allerede eksisterende open source projekt. Men jeg er godt klar over at det nok kræver en del mere af underviserne.

Det vil nok være en bjørnetjeneste overfor et open source projekt at sætte studerende på deres første programmmeringskursus til at bidrage til projektet.

Selv senere kan det være tvivlsomt: Et kursus' fremmeste mål er at lære de studerende noget, så at de studerendes produkt ikke bruges til noget bagefter er af mindre betydning. Det kan dog være motiverende, hvis projektet munder ud i noget brugbart, men hvis det sovser projektet ind i en masse "real life" detaljer, som er kursets formål irrelevant, bør man tænke sig en gang om.

  • 0
  • 0
Carsten Frigaard

Det vil nok være en bjørnetjeneste

...alstå en "bjørnetjeneste" som i de (gode?) gamle dage, hvor ens login f.eks. "var et legalt sæt nyttefulde options til ls(1)".

Ikke den "nye og smarte" fortolning af bjørnens tjeneste; men alstå i den forstand, at en tjeneste, hvor man jager en flue væk fra sin herres hoved--med en kampesten--alligevel ikke er en så checket og fed tjeneste.

.carsten

  • 0
  • 0
Peter Makholm

Det er en gammel unix-konvention at bruge almindelige parenteser til at henvise til en manualside i en bestemt sektion af unix's manualsystem. Således henviser stat(1) til kommandolinjeprogrammet stat, mens stat(2) henviser til systemkaldet stat.

At bruge kantede parenteser til fodnoter er også udbredt. I hvert fald hvis man følger ovenstående konvention.

  • 0
  • 0
Peter Valdemar Mørch

Jeg synes selv jeg har lært allermest ved at have et (lille) projekt som jeg brænder for, og så implementere det fra scratch. Det er stadig det jeg gør når jeg skal lære et nyt sprog. F.eks. da jeg ville lære lidt om python lavede jeg i python en lille utility på et par hundrede linier der "kløede en kløe" jeg havde. Ja, det tager X gange så lang tid, er sikkert grimt sine steder og jeg kan bruge timer på noget som senere viser sig at være trivielt. Men jeg lærer en masse undervejs.

Så derefter begynder jeg at kigge på andres kode, for der er bestemt kodestil, tricks og gotchas til hvert sprog eller emne man lære en masse af.

Det at starte i den ene ende af et problem og være vedholdende til enden synes jeg selv ofte er mere lærerrigt end et kursus. Når det gælder strengt teknisk stof. Men jeg leder f.eks. stadig efter et efteruddannelseskursus i usability og brugerinterfacedesign, for her tror jeg personligt at et kursus ville give mig flere bløde indsigter, som kan være svære at finde selv.

Peter

  • 0
  • 0
Log ind eller Opret konto for at kommentere