2010. május 19., szerda

névadási és verziózási hagyományok

Egy érthető névadási és verziózási szabályrendszer szerintem nagyon nagy szerepet játszik egy technológia használhatóságában. Néhány eset...

Az egykori SÜN! Microsystems termékei minden kanyarban más nevet kaptak. Az első javás történet maga a java verziói és nevei. A java 1.2-t elnevezték java 2-nek és átnevezték j2se-nek, de aztán senki sem hívta 2.0-nak és a 1.3-at és 1.4-et kiadták a régi konvencióval, míg a név megmaradt j2se és j2ee, majd a java 5.0 jött és a j2se-bé eltönt végre a "2", de ezt azért zárójelben 1.5-nek hívtuk és ugyanez igaz az 1.6-ra is. Vajon hogy lesz ez a 1.7-tel, az oracle marketingesei mit szeretnének? És vajon mi lesz akkor, ha egyszer tényleg akkora dolgot csinálnak a java nyelven (bár ennek valószinűsége most már igen alacsony) ami nem férne bele az 1.x-be? Pl kompatibilitás törés és szakítás régi paradigmákkal...
A Sun más termékeinek névadási stílisa néha még ennél is cifrább, például a mai Metro web services stack legalább 3 másik néven volt már fejlesztve. A glassfish is valami minden verzió után más nevű termékből származik ha jól emlékszem. Tök jó, hogy most már 3 verzió óta ugyanúgy hívják.

Néha a saját verziózási és névadási konvencióim se túl egyszerűek. Csomagot átnevezni nem szoktam, de néha olyan neveket adok, amit nem hiszem hogy egyszerű lenne kitalálni. Például a todomap.org-ot egy o29 nevű szoftver hajtja. Azt hiszem jár egy sör a helyes megfejtőnek :-) Más csomagok neve kicsit érthetőbb, pl spameggspam nyilván spam szűrő.
Viszont soha egyetlen egyszer nem neveztem egy szoftveremet 1.0-nak. Három decimális verzió, az első a 0.0.1, így van elég helyem :)

Még a verziókról jut eszembe az a munkatárs (aki hála jehovának nem magyar és ezt soha nem fogja elolvasni) aki szerint a maven SNAPSHOT verziói egy gusztustalan gány. Soha nem használ snapshotokat. Ennek következtében a fejlesztési verziói a végleges verziószámmal "floating around the network", és mindben más van. Ezért egyébként a neki dedikált build agenteken egy időben meg kellett osztani a maven filerendszerét a gépek között. Húúúhhh....
Csak magyarázatként ant júzereknek: a maven a snapshot verziókat időnként felfrissíti (lásd maven paraméterek és settings.xml), míg a nem snapshot verziókat ha egyszer leszedte, örökre ott is marad.

Gyanús dolog az is, amikor az első publikus verzió arra enged következtetni, hogy nem ő az első. Például hogy 2.0-ként adják ki. Ez teljesen igaz arra a szoftverre, amit munkában fejlesztek. Eléggé összetákolt dolog, párszor beszakadt, úgyhogy eldöntöttük hogy from scratch újra. Már egy ideje dolgoztam rajta, amikor mondták hogy ez lesz akkor a BLF 2.0. Mondom BLF 2.0 nem lehet, az fut most a live rendszeren. De akkor már késő volt és most ott járunk hogy két ugyanolyan nevű és verzió számú, de totálisan más kinézetű és funkcionalítású rendszert fejlesztünk. Egy csomó extra munka nekem az, hogy a felhasználóknak elmagyarázzam hogy mi micsoda, ezzel például kivállóan lábon lövöm magam.

Szóval összegzésként csak ennyit szeretnék mondani: marketingesek, politikusok, humoristák, el a kezekkel a szoftveripartól!