Programmeringsspråk, del to

Sist gong var eg ikkje heilt ærleg, eller: eg skreiv på ein måte som fekk lesaren til å oppfatta ting på feil måte. Eg byrja ikkje å skriva C, eg byrja å skriva GW-BASIC.

BASIC var ikkje det beste språket å byrja med, trur eg. Syntaksen er enkel, men så enkel at du ganske fort forstår at det er mykje du ikkje kan gjera eller tenkja (funksjonar, til dømes). Det var tregt, og kunne berre bruka 64Kb minne. Hovudproblemet var at det ikkje gav meg idear til morosame ting å gjera. Alt eg tenkte eg ville gjera, måtte eg læra assembler eller C for å få til.

Det er to måtar å tenkja på programmering på.

Den eine er å gje ei datamaskin instruksjonar om kva ho skal gjera. Den andre er å formulera ein modell av eit problem med i eit formelt språk. Ved fyrste augnekast verkar den fyrste mest fornuftig, det andre som «tåkefyrsteri».

Men: dersom du skal gje ei datamaskin instruksjonar, må du ha ei førestelling om korleis ho fungerer og ein idé om kva du vil. Skal du styra ein bil, må du ha ei førestelling om korleis bilen fungerer og kvar du vil (sjå Donald Norman om dette). Så det du må gjera, er å formulera det du vil med det språket som førestellinga di om korleis maskina fungerer gjev deg.

For dei fleste er førestellinga om kva datamaskina kan (og kva dei vil gjera med henne), prega av programma dei køyrer. Den lettaste måten å instruera maskina til å gjera morosame ting, er å køyra program som andre har laga. Det vi treng, iallfall når vi byrjar å programmera, er eit språk som gjer det lett å formulera morosame problem (sjå gjerne Paul Graham, td. innleiinga til boka ANSI Common Lisp, 1995).

Neste gong skal eg skriva litt om datatypar, objektorientering og grafiske brukargrensesnitt.

Lagt inn i Datamaskiner | Legg att eit innspel

Skriveøvingar

Den observante lesaren vil sjå at eg har døypt om bloggen min (frå «Lektor Vågstøl»).

Eg tenkte litt over kva eg kunne bruka denne bloggen til og kom fram til at sjølv om eg er lærar, er ikkje denne bloggen ein lærarblogg. Han har korkje eit didaktisk eller meta-didaktisk føremål. Du skal med andre ord ikkje læra noko, heller ikkje om læring, her. Eg skriv heller ikkje for å formidla det fagstoffet eg kan best.

På denne bloggen skrive-tenkjer eg høgt om ting som interesserer meg: skriveøvingar. Det er ikkje andre krav til føremål eller relevans enn at eg sjølv skal skjøna meir. Til eit slikt føremål passar det ikkje-sosiale formatet «blogg» bra, samtidig som det skjerpar tanken å skriva offentleg.

Lagt inn i Lektoren | Legg att eit innspel

Programmeringsspråk

Då eg byrja å utforska programmering (kring 1990), var det C som galdt. C og assembler. Greitt, du hadde Turbo Pascal og QuickBasic. Men det var C ein brukte til ordentlege ting. Så byrja eg å studera informatikk, og Java var tingen. Bortsett frå for førelesaren i logikk, han meinte alt var syntaktisk sukker.

Eg trur eigentleg ikkje C og Java var/er ein dårleg kombinasjon. Dei ser forbausande like ut, men er dramatisk ulike. Saman gjev dei gode føresetnader for å skjøna mykje programkode og mange ulike språk. Seinare oppdaga eg Lisp, og irriterte meg over at eg ikkje hadde lært det frå starten. Men, sidan eg knapt skriv programkode, og iallfall ikkje som jobb, er jo det eit mindre problem.

Java og C har eigentleg hatt hegemoni (på sine felt) sidan eg lærte språka. Eg tykkjer det er artig at dette er i ferd med å endra seg, til dømes at C er utfordra av språka Rust og Go til systemprogrammering (døme: ntpsec-prosjektet). Eg driv ikkje med slikt, men det er to-tre andre, ganske nye språk eg gjerne skulle kunna. Med kunna meiner eg ikkje berre lesa/forstå, men også å kjenna programmeringsmiljøet og idiomatikken godt nok til å løysa problem med dei:

  • Racket er både eit språk (Scheme, altså ein variant av Lisp) og eit enormt standardbibliotek. Det er utvikla fyrst og fremst til opplæringsføremål, og det verkar interessant å kunna driva opplæring i ein Lisp, men med verktøya som er naudsynte for å «få ting til å skje».
  • (Edit 2017-02-09) Python har eg aldri hatt bruk for å læra meg, fordi eg har vore så sikker på at «det kan eg læra om eg treng det». Eg innser at Python truleg er det språket eg ville hatt mest praktisk nytte av.
  • Haskell: eit funksjonelt språk med sterk typing og pussig syntaks.
Lagt inn i Datamaskiner | Legg att eit innspel

Vits om katten

Far: Kvifor held du katten i halen, Aud?

Aud: Fordi den andre enden er så sint.

Lagt inn i Vitsar | Legg att eit innspel

E-post og sikkerheit

Om du ikkje visste det: E-post er om lag den minst sikre måten du kan kommunisera på, sidan det tek utgangspunkt i å senda ukryptert informasjon gjennom ei heil rekkje ledd du har minimal kontroll på. Ironisk nok er det truleg sikrare no enn det var før, sidan folk flest bruker webmail av eit eller anna slag (og e-posten iallfall ikkje kan lesast av uvedkomande på klientmaskinene). Men for NSA med vener er det fritt fram.

Eg har brukt mange år av livet mitt på å tru på PGP og S/MIME, og av og til gått så langt at eg har drive forkynning for slik teknologi. Så har eg gjeve opp: Det er nesten vonlaust å få folk flest (= dei eg stort sett vil kommunisera med) til å kryptera e-post, og ein legg att nesten same meta-data same kor flink ein er til å kryptera.

Eller, som Bruce Schneier seier det:

I have recently come to the conclusion that e-mail is fundamentally unsecurable. The things we want out of e-mail, and an e-mail system, are not readily compatible with encryption

Så då skal eg ikkje skriva meir om kryptering. Bruk HTTPS på nettet, køyr ein passeleg sikker nettlesar, krypter disken på den bærbare maskina di, søk med DuckDuckGo i staden for Google. Har ein fin dag.

Lagt inn i Datamaskiner | Legg att eit innspel

Barnebokblogg

Det er på tida å gje over stafettpinnen til nye kostar.

Dagny har starta barnebokblogg.

Lagt inn i Uncategorized | Legg att eit innspel

Notesats

jsvVolda  mållag har gjeve ut heftet Julesongar. Det har vorte populært i bygda, og opplaget på 1000 var openbert i minste laget. Då kan det vera naturleg å retta opp i noko som kan skapa misforståingar.

I kolofonen står underteikna som ansvarleg for «notesats». Dette tyder ikkje at han er spesielt flink med notar, eller har vorte særleg musikalsk. Slik er det ikkje. Eg nytta programmet LilyPond, som eit eit LaTeX-liknande program for å skriva notar. Det er dessutan veldig godt dokumentert, så med litt research gjekk det overraskande greitt å få notane til å sjå ut som dei skulle. Denne illustrasjonen var nyttig for å finna ut kva toneart songane gjekk i.

Lagt inn i Uncategorized | Legg att eit innspel