Изказванията, че в Debian, CentOS или която и да е друга дистрибуция, отделяща повече време за подсигуряване безпроблемната работа на системата и приложенията в нея преди да нарекат изданието стабилно, софтуерът бил "стар", говорят за неразбиране философията на отворения код, а най-често и за обвързаност с философията на затворения код. И докато това е нормално за новите потребители, все пак повечето идват именно от света на затворения код и са свикнали с неговите порядки, то това не би трябвало да се наблюдава при потребители, отдавна занимаващи се с отворен код, и при потребители, които от самото начало са заработили с отворен код. От потребители, които от самото начало са заработили с отворен код, засега нямам лоши впечатления по въпроса със "стария" софтуер. Единственият такъв потребител, който познавам, е майка ми и тя нямаше никакъв проблем с разбирането защо въпросният софтуер не е "стар" без да съм ѝ обяснявал много защо. Често обаче чувам/чета отдавнашни потребители да наричат софтуера в тези дистрибуции "стар", а това изглежда странно. Но причината за това си е същата, както при новите - неразбиране философията на отворения код, и по-точно за случая, неразбиране на прозрачността, която той предоставя.
Характерното за затворения код по случая е, че някъде някаква компания разработва някакъв продукт, провежда тестове върху него, поправя намерените грешки и, когато реши, че е стигнала етап, в който може да нарече продукта си стабилен, го пуска на потребителите си. Потребителите определят предходния продукт за стар, приемат текущия продукт за нов и започват да го третират като такъв без да се интересуват от това, че докато стигне до тях е минало известно време, този продукт се е родил доста преди това, но е поживял известно време в лабораторията на компанията, докато бъде доизпипан. Използвах думата "продукт", защото това важи не само за затворения софтуер, но и за всеки друг вид затворено производство.
Характерното за отворения код по случая е, че някой някъде започва разработката на някакъв продукт, но още преди да го е довършил го предоставя на света, при което се отваря възможността ако ще целият свят да се включи в доразработката му, тестовете и поправянето на намерените грешки. Продуктът още от раждането си (или малко време след това) излиза от лабораторията и става публично достъпен за всеки, имащ желание да се включи в довършването му. След някакво време и работа този продукт достига етап, в който може да се нарече стабилен, и продуктът се обявява като безопасен за всеки. Отново използвах думата "продукт", защото не само софтуер се произвежда по този начин.
Този продукт, достигнал етап, в който да е обявен за стабилен, не е стар. За времето от раждането си той е доизпипан, но този път не в лабораторията на някаква компания, а в извънлабораторни условия публично. Той се обявява за стабилен точно тогава, когато и компанията със затворения код изкарва новия си продукт - когато разработката на нововъведенията в него е приключила, проведени са планираните тестове и са поправени намерените грешки. Продуктът, който все още не е преминал през тези етапи, не е нов - може и да съществува, но трябва да мине някакво време и да се свърши някаква работа преди този продукт да се нарече завършен продукт.
Масово в ежедневието си използвате продукти, които наричате нови, но са съществували много преди да се появят на пазара. Ако ви се даде достъп до прототипите, ще наричате ли крайния продукт стар? Ако участвате в разработката на някой иновативен продукт и в процеса на разработката му го ползвате, когато в крайна сметка бъде пуснат на пазара ще го рекламирате ли като стар?
Това, че в алгоритъма на разработка на отворения код е заложено да имате достъп до този софтуер преди още да е завършен, не прави завършеното издание старо - прави го стабилно, благодарение на времето, което е прекарал в публичното пространство, в което време е бил изчистен от намерените грешки. И същият този достъп до незавършените издания не прави незавършените издания нови - те са незавършени, защото им липсва времето, прекарано в публичното пространство, поради което могат да се очакват всякакви грешки в тези издания, заради малкото тестове, които са минали до този момент.
Разбира се, това, че даден софтуер е обявен за стабилен, не значи, че в него няма грешки и ще работи гладко в цялата Вселена. Стабилността му говори само, че са отстранени грешките, намерени по време на работата му сред потребителите. А нестабилен софтуер не означава задължително, че софтуерът постоянно ще бърка и няма да ви свърши никаква работа. Нестабилността му говори само, че все още не е изпробвана цялата функционалност, която ще се ползва от потребителите. Стабилният софтуер има грешки и те изскачат най-често, когато софтуерът бъде поставен в среда, в която не е бил поставян в процеса на тестването преди да бъде обявен за стабилен.
И точно тук е ролята на всеки потребител в разработката - да предоставя разнообразни среди, в които софтуерът да бъде тестван. Тези разнообразни среди са нужни както за доразработката на нестабилния софтуер, така и за подобряването на стабилния. Но за разлика от затворения код, където разнообразните среди за доразработката на нестабилния софтуер се симулират от компанията-разработчик, в света на отворения код можем да участваме всички във всеки един етап, бил той стабилен или нестабилен.
Вредно е на отворения код да се гледа като на затворен код. Вредно е да лансираш стабилния софтуер като стар и ненужен и да не предоставиш на себе си и на околните възможността да поработят с този софтуер, за който през даденото време е хвърлен толкова много труд от всички нас (включително и ти, пък дори и да си само потребител), в опита си да го направим съвършен. Вредно е в света на отворения код да кажеш, че от теб нищо не зависи за настоящия и бъдещия вид на този софтуер, да плюеш софтуера и разработчиците му, когато се натъкнеш на грешка (било в стабилно или нестабилно издание) и да го зарязваш, без да предложиш решение или без поне да уведомиш някой, който би взел отношение по въпроса. Вредно е да си седиш там и да чакаш наготово да ти се даде всичко, без да си мръднеш пръста, а после да се оплакваш, че не ставал за твоите нужди и/или бил стар. Вредно е, защото всичко тези вреди показват единствено колко ти нищо не си направил за подобрението на нещото, за което се оплакваш, при положение, че си имал възможност да помогнеш.
Отвореният код е неподходящ за мързеливци и готованци, но не защото отвореният код е зле, а защото говорим за мързеливци и готованци. Те нямат съществена роля във философията на отворения код, и пак, не става дума само за софтуер.
Та... така де - ей заради тия всички неща ми е странно, когато чуя/чета някой отдавнашен потребител на отворен код да дава определения "нов/стар" софтуер с отворен код от погледа на затворения код. А ми става малко мъчно, когато видя човек, живеещ с философията на отворения код, да се поддава на лъскавата опаковка на философията на затворения код, да забрави философията на отворения код и да почне да го плюе като че не става или че е невъзможен. И тук не говоря само за софтуер - масово го наблюдавам през годините от децата, порастващи във възрастни. Няма да се отклонявам от темата де, ама то всичко във Вселената си е взаимосвързано
П.П.: А, да, Ubuntu! Ми... Ubuntu е някакво странно явление, базиращо се на философията на отворения код, но държащо се към потребителите сякаш е затворено. Пуска се нестабилен софтуер, дава се възможност потребителите да участват в доразработката му, но в същото време никога не се поставя в стабилно издание, изтестваните и доразработени версии се обявяват за стари, спират се хранилищата им и последвалата работа с тези версии, а току що публикуваната версия се обявява за стабилна, на потребителите се втълпява, че компанията-майка се е погрижила за всичко, но пък пак се завърта колелото от началото на изречението. Чудя се това явление противоречие ли е или опит за мост между отворения и затворения код...