Čísla verzí aplikací
Školení, která pořádám
Nemám rád beta verze, release candidate a další harampádí. Tak buď aplikace funguje a může se vydat, nebo ne a ještě se musí vyvíjet, ne? Pokud existuje veřejný přístup k vývojové verzi (případně k jejím sestavením), tak si ji může kdokoliv vyzkoušet kdykoliv. Beta verzi chápu jen jakýsi tlak na uživatele, aby si vývojovou verzi vyzkoušeli, a také politické rozhodnutí, že „to už bude tedy ono“ (což se ale často stejně nedodrží).
Stejně tak se mi nelíbí čísla verzí začínající nulou. Když aplikace funguje a nežere data, tak je na čase vydat verzi 1. K doplňování funkčnosti jsou desetinky, k zásadnějšímu přepisu celá čísla verzí. Verze začínající nulou beru jako přehnanou skromnost nebo zbytečný alibismus.
Pak to vypadá tak, že běžně používaný Sphinx nebo eAccelerator jsou už čtyři roky ve verzi 0.9, The Bat vyšel ve verzi 3.99.25 nebo PHP-GTK zůstalo skoro dva roky ve stavu „zeta“ (šesté písmeno řecké abecedy). A ano, platí to i pro Nette, které by si podle mě spíš zasloužilo číslo verze 1.3.
Diskuse
Nabídnu konkrétní příklad, kde se naopak postupné vydávání verzích (beta, rc) vyplatí.
U projektu phpBB každá aktualizace zasáhne desítky tisíc fór a v mnoha případech nejde o pětiminutovou proceduru. Systém je rozsáhly a i týmu testerů, kterých je několik desítek, se nepodaří nasimulovat podmínky, které panují na různých instalacích, a chyby jim mohou proklouznout. RC vydání před každou aktualizací zpřístupní balík plánovaný k vydání širšímu okruhu lidí v komunitě a umožní vyzkoušet běh na dalších stovkách prostředích. Přestože to není 100%, zatím se za skoro tři roky objevila pouze jediná chyba, která si vyžádala mimořádné vydání nové verze. Dalším známým příkladem může být Opera nebo Firefox.
Jde hodně o velikost projektu a místní podmínky, rozhodně bych to takhle nepaušalizoval. S čím ale souhlasím je to, že se kdejaká blbina spokojí s dvoumístním verzováním a nemusí hned dodržovat verzování jak u kernelů.
Lukas Mach:
Muj program treba funguje statisticky tak na kazdem ctvrtem datasetu, takze verze 0.3 tomu celkem odpovida.
Kdysi dávno jsem někde četl dvě jednoduché definice:
- Alfa verze je verze, kde je dle vývojářů všechno hotovo, a je předána k internímu testování.
- Beta verze je verze, kde je dle vývojářů všechno hotovo, prošla interním testováním a je třeba ji ozkoušet v terénu na reálných uživatelích.
Myslím, že takhle to docela dává smysl a je škoda, že došlo k posunu těchto termínů někam úplně jinam.
Verze začínající nulou taky nemám rád a osobně je používám prakticky jen v případě, kdy vím, že v daném produktu jsou závažné známé chyby/nedodělky a zároveň mám poměrně přesnou představu o tom, jak bude vypadat verze 1.0. Myslím, že je to oprávněné, protože uživatel pak nečeká stabilitu. Produkt by ale v tomhle stavu IMO neměl zůstat moc dlouho.
Já jsem už 2 roky ve verzi 0.x jen proto, že vím co všechno má verze 1.0 umět, ale stále neumí. Navíc je tlak aplikaci používat i bez těchto funkčností.
Jinak souhlasím s Davidem Majdou.
Tak tak, to je přesně můj argument pro verze 0.*. Prostě existuje nějaká představa a ta je 1.0.
Zlatá slova! Verzování Nette je asi jediným důvodem, proč jsem tento framework zatím nezačal používat na svých ostrých projektech. Furt si říkám, „počkej si na jedničku, až David vychytá alespoň ty největší mouchy“ :-)))
wix:
presne :)..vyborna formulace "ostatni harampadi" :)
Andrew:
Také nemám rád verze začínající nulou i když chápu, co tím asi autor chtěl říct. Bohužel spousta projektů u nul setrvává velmi dlouho.
Beta, RC a podobné "harampádí" jsou velmi důležité. Je jasné, že si kdykoliv kdokoliv může stáhnout vývojovou verzi. Ale vývojová verze rozhodně není to samé, co beta. Vývojová verze je to, co jsem zrovna commitnul a může se to ještě zhusta měnit a třeba obsahovat i fatální chyby.
U alfa, beta a RC vím, co mohu ještě očekávat za změny a je to jakžtakž funkční. Ve chvíli, kdy si bastlíš něco sám, tak ti to může být fuk, ale když pro tvůj projekt další hromada programátorů vyvíjí doplňky, je pro ně důležité, jaké změny mohou očekávat (zda změny v rozhraní, funkčnosti nebo už jen opravy chyb). U práce na velkém projektu je to tedy velmi důležité.
V neposlední řadě musím zmínit i uživatele. Nainstalovat si nějaký program z vývojové větve pro jiné než testovací účely je typicky naprostá blbost. Může se ale naskytnout situace, kdy budu potřebovat mít novou verzi dřív, než bude stabilní. Typicky když předchozí verze neumí něco, co nutně potřebuji (např. podpora hardwaru). Pak mohou být beta a RC verze jakýmsi, byť nedokonalým, vysvobozením - mám něco, co je kompletní, jakžtakž funkční a řeší to můj problém.
Ve firemním prostředí pak tyto verze opět mohou sloužit pro demonstraci a připomínkování zákazníkovi a opět je nemůže nahradit vývojová verze, na které všichni stále ještě pracují.
Neříkám, že všichni vývojáři používají toto označování jak mají, ale rozhodně to není "ostatní harampádí".
Borek:
Nulu na začátku taky nechápu, vždycky přece pracuju minimálně na první verzi projektu...
Diskuse je zrušena z důvodu spamu.