Krav til godt programmel (2)

- med visse specifikt nordiske elementer.

Som bruger af et bredt udvalg af programmer er jeg med tiden stødt på en del problemer med dem. Nogle af problemerne tror jeg jeg har en løsning på, og det er det min 2. liste med krav til godt programmel afspejler.

Frihed

Et godt program skal være frit (eng. Open Source).

Jeg er træt af at ende med at blive bundet til en specifik software-leverandør. Den eneste måde jeg virkelig effektivt kan undgå det er ved at bruge Open Source-programmer, så jeg frit kan vælge hvor jeg går hen, hvis jeg får brug for at få føjet noget til et program.

Systemafhængighed

Leverandøren bør gøre opmærksom på, hvilke systemer (maskintype og styresystem) programmet vides at kunne køre på. Det skal være let at flytte data og opsætning mellem de opgivne systemer.

En brugsaftale (eng. license) må ikke begrænse brugen af programmet til et enkelt system (hvis programmet er frit er det ikke et problem).

De systemafhængige dele af programmet bør være frit tilgængelige for de autoriserede brugere (hvis programmet er frit er det ikke et problem).

Kulturafhængighed

Programmer skal principielt ikke være bundne til en bestemt kultur. I praksis er dette ønske dog næppe realistisk, så vi må nøjes med noget lidt mere beskedent.

Det skal være let let at oversætte et programs brugergrænseflade til andre sprog (specielt de nordiske) og at udveksle disse oversættelser. Dette indebærer indirekte et krav til programmet om at størrelserne af de forskellige grafiske elementer i brugergrænsefladen automatisk skal kunne justeres efter teksternes længde på de forskellige sprog.

Oversættelsen skal dække tekster, skrivemåder for tal og datoer, tastekombinationer, etc. Det betyder helt specifikt at programmer for eksempel skal tage hensyn de grammatiske regler for datoer på færøsk og islandsk, der betyder at de skal skrives i forskelligt fald afhængigt af hvilken sammenhæng de optræder i. Samtidig er det selvfølgelig også nødvendigt at de respekterer reglerne for hvornår ugedage og månedsnavne skal skrives med stort forbogstav og hvornår de ikke skal skrives med stort forbogstav.

I forbindelse med sprogundervisning er det et indlysende ønske at kunne skifte alle programmer over til at fremtræde på det sprog der undervises i. Og i forskellige samarbejdssammenhænge er det praktisk at man kan skifte sprog på programmerne, så man kan arbejde med en ensartet brugerflade på tværs af gruppen. Begge disse to arbejdsformer gør det i praksis nødvendigt at samme program skal kunne fremtræde på forskellige sprog afhængig af brugerens ønsker.

Flersproget

Tekster i et programs data skal kunne bestå af en kombination af flere sprog. Det skal for eksempel være muligt at bruge latinske artsnavne i en ellers dansk tekst. Det betyder i praksis at programmer bør kunne bruge hele ISO-10646-tegntabellen til kodning/lagring af tekstdata. Af hensyn til dataudveksling med så mange programmer som muligt bør et program som minimum kunne kode og afkode tekst i formaterne UTF-8, Latin-1 og Latin-15, der alle er delmængder af ISO-10646.

I det omfang de filformater, et program bruger, tillader det, bør det være muligt at identificere forskellige dele af en tekst som værende på forskellige sprog.

Det skal være muligt at vælge den rette sorteringsorden til et givet sprog.

Det skal styresystemets tegntabeller tillader det, være muligt at skrive fil- og katalognavne på et vilkårligt sprog. Som et absolut minimum bør et program kunne fungere med både UTF-8, Latin-1 og Latin-15 som systemtegntabel (disse tre tegnsæt er hvad der primært er relevant i de nordiske lande).

Filformater

De filformater jeg gemmer mine data i er nødt til at være åbne, for at jeg kan være sikker på at jeg også i fremtiden kan få lov til at læse dem.

For at sikre at brugerne ikke får problemer med at gemme og indlæse deres data, skal det være muligt at sætte programmerne til altid at bruge samme format som standardformat for alle dokumenter af samme slags. Grunden til at jeg ligefrem mener at det er nødvendigt at man kan sætte standardformaterne for de forskellige programmer er, at jeg vil være sikker på at alle brugerne ikke af ren dovenskab kommer til at gemme deres dokumenter i lukkede, eller på anden måde uhensigtsmæssige formater.

Ideen med dette er ikke at alle skal bruge de samme programmer, da det vil reducere programdiversiteten og dermed gøre os mere sårbare overfor fejl. Ideen er at vi skal bruge de samme filformater til de samme typer data, så vi letter kan kommunikere med hinanden.

Se webstedet www.aaben-standard.dk for en definition af åbne standarder. Et åbent filformat overholder punkterne 1 og 2 i definitionen.

Kommunikationsprotokoller

Den protokol mine programmer bruger til at kommunikere med hinanden, for eksempel til klippe-klistre eller indlejring, er nødt til at være åbne for at jeg kan være sikker på at jeg kan få lavet nye programmer, der kan kommunikere med dem jeg allerede har. Når jeg ikke på forhånd har valgt en specifik protokol hænger det sammen med at jeg ikke lige har nogle specifikke præferencer på det område. Men samtidig er jeg dog interesseret i at alle mine programmer, uanset om de kommer fra Gnome, KDE eller et helt tredie projekt, kan tale sammen, så derfor er det én protokol og ikke 42 forskellige.

Ergonomi

Det bør være muligt at arbejde med programmet i længere tid uden at få fysiske skader af det. Programmer bør for eksempel ikke have muse-tvang. Det bør være muligt for brugeren (eller systemadministratoren) at sætte alle programmer til at have samme genvejstaster for de samme funktioner.

Installation

Skal kunne installeres i overensstemmelse med FHS

FHS er såvidt jeg kan se det nærmeste man p.t. kan komme en standard for hvor på systemet de forskellige filer skal placeres. Hvis et program overholder den standard vil der altså være en rimelig chance for at man uden videre kan installere og bruge det på et bredt udvalg af systemer.

Fejlrapportering

(noget om fejlrapporteringsmuligheder?)

Praktisk brug af ovenstående krav

Hvis vi ikke alle hverisær vil gennemgå de programmer vi skal bruge, for at undersøge om de lever op til kravene ovenfor, er det nødvendigt at organiserer en eller anden form for samarbejde om at:

  1. Certificere programmer efter ovenstående specifikation.
  2. Lokalisere de certificerede programmer.
  3. Opdatere specifikationen periodisk. - Inklusive sørge for filtre der kan oversætte mellem gamle og nye standardformater.

Og som linux-bruger vil jeg selvfølgelig også gerne inkludere at lave en linux-distribution med et passende udvalg af de certificerede programmer på opgavelisten.

-- 

Skrevet af:
Jacob Sparre Andersen <jacob@jacob-sparre.dk>
Følger op på:
Godt programmel fra 1995
Skrevet:
19. august 2002
Senest opdateret:
27. juni 2008