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

Efter ni kommer ti...

17. oktober 2011 kl. 19:0029
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Er alle med indtil videre ?

Godt, så kommer trickspørgsmålet:

Hvor mange ciffre er der i ni, henholdsvis ti ?

Glimrende.

Artiklen fortsætter efter annoncen

Er der så nogen der kan sige hvorfor flg. er en dum ide:

v=`uname -r`
m=`expr "$v" : '\([0-9]\).*'`
if [ $m -lt 5 ] ; then
    echo  "Too old FreeBSD version" 1>&2
    exit 1
fi

Lige nu er ports totalt bombet fordi autocrap værktøjerne og en del anden software slet ikke kan forestille sig operativsystemer med to cifferede major-versioner.

Apollo's Domain/OS havde samme problem, der kom et utal af obskure 9.mumle varianter inden de endelig tog sig sammen til at kaste version 10 på gaden.

Og burde vi egentlig ikke have lært den lektie for 11 år siden ?

Artiklen fortsætter efter annoncen

phk

29 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
16
18. oktober 2011 kl. 10:05

På Android fastlægges versionen af både platformen, applikationer og databaser med et monotont voksende heltal så her er det ingen sag at afgøre, om én version er nyere end en anden - såfremt man altså kan finde ud af at indlæse alle cifrene i dette heltal :). Til disse versionstal hører også et versionsnavn til, som fx "1.2.3" der kan præsenteres til brugeren hvis det ønskes, men som ingen betydning har i forbindelse med at afgøre hvilken versioner der er nyere.

15
18. oktober 2011 kl. 09:17

TeX bruger versionnumre, som er approksimationer af pi: 3, 3.1, 3.14, 3.145, osv. Her er man i hvert fald sikker på, at der kun er et ciffer før decimalpunktummet.

Jeg foretrækker selv at bruge release-dato som versionsnummer.

26
18. oktober 2011 kl. 21:07

Jeg foretrækker selv at bruge release-dato som versionsnummer.

Det er jo TOTALT UPRÆCIST!!! Hvordan kan du bare angive en dato, uden at fortælle om det er i den gregorianske, julianske, islamiske, kinesiske eller jødiske kalender, formatet for datoen og tidszonen for udgivelsen? Og hvad nu hvis du har flere commits på én dag? Så kan du ALDRIG finde tilbage til den oprindelige kode. Makværk, siger jeg.

:-)

24
18. oktober 2011 kl. 12:11

Bruger du så ISO format eller noget andet som er svært at parse?

Normalt står versionsnummeret kun i kildeteksten og dokumentationen, så jeg har ikke bekymret mig om at gøre den maskinlæsbar. Men datoen er en god indikation for, om den version man sidder med, er gammel eller ny. Hvis der var behov for et maskinlæsbart format ville jeg nok vælge YYYYMMDD for at gøre datoen læsbar og sorterbar som heltal.

14
18. oktober 2011 kl. 08:50

Egentlig burde det være overkommeligt at skrive en fungerende rutine til at sammenligne versionsnumre for et enkelt konkret produkt.

Men jeg vil jo påstå du har dit problem lige dér! Hold dog op med at skrive de samme buggy rutiner igen og igen, og træd istedet et skridt op i abstraktionsniveau.

Med andre ord, brug nogle ordentlige konventioner og værktøjer! I Java verdenen har vi Maven til at skrive projekt objekt modeller, der gør styring af dependencies og versionering af artifakter til en leg.

28
19. oktober 2011 kl. 23:36

Er der rent faktisk nogen der nyder at bruge Maven? Jeg har altid opfatte det som sådan noget man hader, men lever med fordi der ikke er noget bedre...

29
20. oktober 2011 kl. 00:00

Er der rent faktisk nogen der nyder at bruge Maven?

Maven kan være besværlig (hvorfor er release:prepare og release:perform ikke én atomar handling?), men når det så er sagt, så kan man tage en masse problemer up-front, som man ellers ville være i dårlig stand til at udrede senere hen.

Så jeg vil sige at mens Maven måske ikke er perfekt implementeret, så er det godt nok smart når man kan finde ud af at bruge det, og konventioner slår altså imperative scripts (make, ant, you-name-it).

13
18. oktober 2011 kl. 00:23
  • og det sker nok desværre en hel del gange :)
21
18. oktober 2011 kl. 11:26

Hvad med 0?

8
17. oktober 2011 kl. 20:19

Egentlig burde det være overkommeligt at skrive en fungerende rutine til at sammenligne versionsnumre for et enkelt konkret produkt.

Det er først når man prøver at bruge det samme reglsæt på alle de mulige og umulige måder folk vælger at giver deres software versioner på. Jeg har set projekter der i fuldt alvor brugte en følge af versionsnumre der hed 1.0 -> 1.1 -> 1.11 ->1.12 -> 1.2 -> 1.21 -> 1.3 hvor versionsnumrene med to cifre efter punktummet var bugfixes. Hvordan de ville håndtere de to større ændringer efter 1.9 ved jeg ikke, men måske ville det være en automatisk grund til at skifte til 2.0. Så er der folk der bruger 1.3a -> 1.3b -> 1.3c om bug fixes, mens andre bruger 1.3mumle1 om forskellige former for prereleases af 1.3. Nogle tillægger _ og ~ specielle betydniger.

Næste større projekt tror jeg bare jeg tagger hver version med et uuid. Så må folk tage sig til takke med at undersøge om de har en specifik version af min kode eller ej...

4
17. oktober 2011 kl. 19:52

Hvor mange ciffre er der i ni, henholdsvis ti ?

Det kommer vel an på basen?

12
17. oktober 2011 kl. 20:54

Vores ord for tal - f.eks. "ni", "ti", osv. - repræsentere værdier, ikke tegn. I nogle ordbøger kan findes: "elleve [..] også i formen 11.". Altså kan A i base 11, eller 16 for den sags skyld, godt udtales "ti" (som pga. vores standarder også kan skrives 10, men det ville bare forvirre endnu mere :).

Det ikke sagt at man nogle gange støder på specielle ord, for værdier i andre baser end 10, men jeg tvivler på det er officielle? Kunne være meget sjovt hvis nogen kunde finde dokumentation.

3
17. oktober 2011 kl. 19:45

  1. PS C:> [environment]::osversion.Version
  2. Major Minor Build Revision
  3. ----- ----- ----- --------
  4. 6 1 7601 65536
  5.  
  6. PS C:> [environment]::osversion.Version.Major
  7. 6
  8.  
  9. PS C:> [environment]::osversion.Version.Major -gt 5
  10. True

9
17. oktober 2011 kl. 20:25

det er vist også grunden til at W8 hedder 6.2 så "ting" der kun kigger på major version ikke bliver forvirret

1
17. oktober 2011 kl. 19:31

Bør man ikke bruge [0-9]+ når man søger efter numre i strenge?

Jeg husker at Opera 10 måtte bruge Opera 9 i sin user agent p.g.a. nogle servere troede ALLE versioner kun havde ét ciffer. Chrome sagde 'fuck det, folk kan bare opdatere deres lort'. Og det kan de. Og det bør de.

Det er ikke så svært at addere et plus til ens regex.

2
17. oktober 2011 kl. 19:36

Linux 2.6.x -> 3.x havde vel samme problem, hvor en del tools efterhånden troede at Linux aldrig ville nå version 3 :)

17
18. oktober 2011 kl. 10:57

Det var en hel anden situation. Linux skiftede jo "helt" versionsnummer layout, som gjorde at en masse tools ikke ville virke. Havde Linus valgt at skifte til 2.8.x.y eller 3.0.x.y havde der jo ikke rigtigt været nogle problemer. Men nu valgte han jo at skifte til 3.x.y hvilket også er det rigtige at gøre, men der må man forvente at nogle værktøjer ikke virker efter skiftet, da de ikke har taget højde for at layouttet ændrer sig lidt.