Kapitel 1. Repræsentation og modeller

1.1. Et professionelt værksted

Hvis du har en maskine med Linux i en af de større distributioner (fx. Red Hat eller Debian) har du samtidig en samling af de mest avancerede værktøjer til fremstilling af software.

Det er ikke blot en "sandkasse", du sidder med, men et professionelt udviklingsmiljø. Der er optimerende oversætter, standardiserede biblioteker, supplerende biblioteker med et væld af funktionalitet, debugger, source management med alt, hvad dertil hører, og oven i det er Linux jo et professionelt afviklingsmiljø med automatisk jobstart, kommandofortolkere og andre fortolkede sprog i mange varianter, serverfaciliteter, samt ikke mindst dørvogterfaciliteter (Firewall værktøjer eller TCP-IP filtrering).

Det avancerede i denne her sammenhæng ligger ikke i et smart peg - og - klik interface til en programgenerator. Just for the record: En programgenerator er et udmærket værktøj i visse sammenhæng. Med sådan et værktøj kan du kan vælge mellem et begrænset antal på forhånd programmerede moduler ved hjælp af en mus, klik og vupti, så har du et resultat bestående af objekter, der er sat sammen (nogen kalder peg og klik - programmering for objektorienteret programmering, men det er en fordrejning af begreber).

Et sidespring: På Linux findes mindst én klik-og-peg generator, nemlig "glade", en GTK+ User Interface Builder, skrevet af Damon Chaplin, http://glade.pn.org. Kan anbefales.

Figur 1-1. glade, en GTK+ GUI generator.

Figur 1-2. glade, projekt vindue.

Nej, det avancerede består i, at du kan styre genereringen af programkode fuldstændig professionelt. Hvis du for eksempel ønsker at skrive en ny og bedre database server, så værsgo', gå i gang. Den nødvendige dokumentation er til rådighed, og der findes desuden lærebøger som forklarer om low-level ting og high-performance problematikker på Linux.

Oven i alt dette får du den fordel, at dine Linux programmer i de fleste tilfælde kan anvendes uden ændringer på andre Linux-systemer, inclusive 64-bit systemer, og med få ændringer på mange andre Unix systemer som for eksempel Solaris, AIX, HP-UX.

Mere overraskende er det måske, at man også kan køre Linux-udviklede programmer på Microsoft NT ved hjælp af Cygwin systemet fra Cygnus.

Det er en væsentlig del af filosofien i GNU og C - sproget, at man skal kunne genbruge sin kode, hvis hardwaren skal udskiftes; og det skal den før eller senere! Hardware forgår, brainware består. Sådan da.

Udover C-oversætteren har du med Linux adgang til C++ og mange andre sprog.

1.1.1. Hvad er en debugger?

Debuggeren er et værktøj, som kan vise, linje for linje, hvad der sker i et program. Selv om det hedder en debugger, så er det er ikke så godt at bruge den til at fjerne fejl [1].

Hvis et program er så fejlbehæftet, at man overvejer at anvende en debugger, så bør man begynde forfra og reimplementere sine programmer med de nyvundne erfaringer. Ok, der er undtagelser, hvor man kan lokalisere en vanskelig, periodisk fejl ved at anvende en debugger med omtanke, men det er ikke noget, som man skal gøre til en fast vane!

1.1.2. Biblioteker - et eksempel

Det vigtigste er imidlertid, at der med de almindelige Linux-distributioner er et stort arsenal af frie biblioteker til database, netværk, grafik etc.

Som et eksempel kan det fremhæves, at der findes frie biblioteker til netværksprogrammering. For eksempel Remote Procedure Call, både til klient- og tjenersiden. Det er en teknik, som kan benyttes til at udføre en routine på en anden computer (som selvfølgelig skal være forberedt til dette!) Dette er værd at understrege, idet den meget udbredte PC-software har indført nogle økonomisk betingede useriøse skel mellem server og klient programmer.

Desuden har du adgang til mange gode eksempler på, hvordan i hvert fald nogle af bibliotekerne anvendes. Kort sagt, hvis du går i gang, kan du satse på at nå et professionelt niveau på de områder, som du udvælger.

1.1.3. Hvordan kommer man igang?

Hvad gør man så for at komme igang?

Hvis der skulle være et mirakel-ord, som er nøgle til forståelse af computerens magi, så er det ordet DATA-REPRÆSENTATION.

Godt nok følger computerens elektriske signaler de fysiske love, men computeren er et instrument til at manipulere store mængder af impulser ud fra nogle få regler valgt af programmøren. Med andre ord, vi kan tillægge elektriske signaler en betydning. Et enkelt elektrisk signal kaldes oftest en bit, binary digit. Otte af dem kaldes en byte eller, mere officielt, en octet.

En enkelt bit kan være en besked om at åbne sluserne for at undgå en oversvømmelse. Eller en prik på en billedskærm. Eller forskellen mellem et punktum og et komma (i en dårlig skrifttype! Anstrengende for øjnene!)

Som regel bruger man flere bits til vigtige beskeder for at sikre, at man nu også har forstået hinanden rigtigt. Det kaldes redundans.

Bogstaver repræsenteres som regel ved en byte, men ved anvendelse af Unicode bruges 16 bit eller 2 bytes. Der er også systemer, som repræsenterer bogstaver ved hjælp af variabelt antal bytes. Kig for eksempel på en HTML-side.

Slutbemærkning:

[1]

Det kaldes aflusning eller debugging, bug == insekt, - der skulle engang være opstået en fejl i en af de første computere p.g.a. nogle insekter, som syntes, at der var varmt og rart at være oven på sådan nogen elektronik-komponenter.