Dette indlæg er alene udtryk for skribentens egen holdning.

Alle kodere har brug for en lade

13 kommentarer.  Hop til debatten
Blogindlæg9. juni 2009 kl. 12:11
errorÆldre end 30 dage

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.

Artiklen fortsætter efter annoncen

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.

Artiklen fortsætter efter annoncen

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.

13 kommentarer.  Hop til debatten
Debatten
Log ind for at deltage i debatten.
settingsDebatindstillinger
1
9. juni 2009 kl. 14:07

... 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

3
9. juni 2009 kl. 14:42

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.

4
9. juni 2009 kl. 15:14

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

7
9. juni 2009 kl. 15:48

Et kursus' fremmeste mål er at lære de studerende noget

Helt enig. Men vil det være forkert af et kursus at lære de studerende hvordan man samarbejder i et open source projekt? Udførelsen af dette element er helt sikkert noget der ikke bare lige kan klares.

10
9. juni 2009 kl. 17:40

vil det være forkert af et kursus at lære de studerende hvordan man samarbejder i et open source projekt?

Nej, men så skal projektarbejde i sig selv være emnet for kurset. At bruge et kursus i f.eks. operativsystemer til at lave open source projekter vil være at flytte fokus fra det egentlige formål.

6
9. juni 2009 kl. 15:31

Udtrykkets mening er vel kontekstafhængig.. Lige som så meget andet i "real life" sprog.

Det bliver først rigtigt svært, når du bruger "bjørnetjeneste" sarkastisk..

(blev i øvrigt slemt forvirret over PHKs fodnote, indtil jeg lagde mærke til at han (selvsagt) skelner mellem kantede og alm parenteser)

8
9. juni 2009 kl. 16:09

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.

11
9. juni 2009 kl. 17:59

@Peter:

Jeg fik også meningen, da jeg nåede til den rigtige fodnote, men jeg nåede lige at spekulere over, hvorfor PHK fik sine login navne fra dyrlægen... o.O

12
11. juni 2009 kl. 22:25

Som får Herr PHK til at skrive denne post!

13
20. juni 2009 kl. 11:38

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

9
9. juni 2009 kl. 17:33

Se evt. også på sproget.dk - iflg Den Danske Ordbog har ordet "bjørnetjeneste" nu begge betydninger...

2
9. juni 2009 kl. 14:40

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.

Det hænger da fint sammen -- alle ved jo at "kurser" er den RINGESTE måde at lære programmering på.