CyanogenMod е мъртъв, убит от компанията-майка Cyanogen. Общността се опитва да вземе парчетата и да създаде нов проект, LineageOS, въз основа на кода. Но това е напомняне, че софтуерът с отворен код не е изцяло слънце, дъги и стабилност: всъщност често може да е много объркан.
Дори ако даден проект е с отворен код, той не е задължително дори да отговаря на общността, още по-малко надежден софтуер, от който може да се разчита. Проектите се различават: някои се управляват от един или двама разработчици като хоби, други обединяват разработчици, платени от много масивни корпорации, докато други се управляват от едно-единствено дружество майка. Всяка ситуация има свои собствени проблеми и драма.
Обичаме софтуера с отворен код - не ни прави грешно - но това представлява известен брой предизвикателства. Нека да разгледаме няколко.
Много проекти с отворен код изглежда страдат от бавен темп на развитие, когато новите версии се забавят безкрайно, нови функции идват бавно, ако някога, и е трудно да се даде приоритет на трудни, но важни функции.
Просто погледнете опитите на Ubuntu да стартира своя Unity 8 desktop и Mir дисплей сървър, което дава възможност за визията си за "конвергенция". Тази нова версия на работния плот на Linux трябваше да е стабилна преди много години и все още не е така. Проектът се движи с ледено темпо, толкова много, че Canonical бе победен до удар от Microsoft, който обяви своя собствена визия PC-powered-by-smartphone преди Windows 10 и доставени на него. Canonical все още не е изпълнила своето дълго обещано виждане. Може би ще бъде стабилен още няколко години.
Mozilla също имаше някои трудности при определянето на приоритетите. Те все още не са доставяли многофункционални и sandboxing функции в Firefox. Те са от решаващо значение за поддържането на защитата на браузъра, предотвратяването на сривове от свалянето на целия браузър и по-доброто използване на многопроцесорни процесори. Всички други големи браузъри са доставили тези функции, включително и омразния Internet Explorer. Mozilla създаде проекта "Електролиза", за да добави тези функции, но го спря през 2011 г., защото беше твърде трудно. След това Mozilla трябваше да го рестартира през 2013 г. Тази характеристика изглежда да пристигне през 2017 г., което наистина е закъсняло. Междувременно Mozilla губи време, работейки по Firefox OS, една неуспешна операционна система за смартфони.
Когато проектът използва толкова много разработчици на доброволци, може да има трудности при намирането на хората да вършат трудната работа, която не е забавна работа.
Източникът на отворен код на проекта е достъпен за всеки, който да промени. Това е целта! Ако проект с отворен код се променя по начин, който не ви харесва, тогава Вие или общността може да вземе този стар източник и да продължи да работи върху него като нов проект. Но проектите на общността често са толкова затънали във вътрешната драма, че те карат нещата да се разделят на различни проекти, объркващи и отчуждаващи потребителите.
Например, когато стартира GNOME 3 и много от потребителите на GNOME 2 не бяха доволни, нямаше очевиден път. Разработчиците трябваше да разменят кода на GNOME в други проекти като MATE и Cinnamon. Една десктоп среда се превърна в три, а ресурсите за развитие са по-разпръснати между проектите. В резултат на това е нужно известно време за общността да предприеме тези нови проекти.
По същия начин общността на OpenOffice не беше щастлива, когато Oracle придоби Слънце. Oracle дори накратко преименува своя патентован, неотворен офис пакет StarOffice на "Oracle Open Office". Общността трябваше да създаде нова вилица, LibreOffice, въз основа на кода на OpenOffice. Той се е превърнал в де факто офис пакет с отворен код за много хора, но други все още използват OpenOffice, защото не са наясно с по-доброто вилица и драмата около него. OpenOffice просто има много изградено разпознаване на име.
И, разбира се, има CyanogenMod. Cyanogen Inc просто извади щепсела от онлайн услугите на CyanogenMod - което означава, че те биха предпочели да убият най-популярната Android ROM от трета страна, отколкото да я предадат на общността, вместо това да принудят общността да създаде нова вилица CyanogenMod, наречена LineageOS. Защо Cyanogen просто не предаде проекта CyanogenMod на общността? Отговорът изглежда е вътрешна драма (виждате ли модел тук?). Цианоген е компанията, чийто главен изпълнителен директор обеща, че ще "сложи куршум през главата на Google" в края на краищата. В крайна сметка той сложи куршум в главата на CyanogenMod.
Това просто завършва с нараняване на потребителите на CyanogenMod, които получават много малко предизвестие, преди сървърите и услугите на CyanogenMod да бъдат изключени. Телефони ще продължат да работят, но удобни актуализации и други услуги се издигат в дим почти през нощта. Потребителите просто трябва да се надяват, че проектът LineageOS ще се превърне бързо в замяна.
Проектите с отворен код не винаги се управляват от общността. Да кажеш, че програма е с отворен код, просто означава, че кодът е на разположение, за да направиш каквото ти харесва. Компанията, която разработва софтуера, не трябва задължително да го изпълнява като общностен проект или може да има интерес да използва проекта за популяризиране на своя друг софтуер.
CyanogenMod е добър пример за това. След като се появи Cyanogen Inc., те не се интересуват от CyanogenMod. Новата цел на Cyanogen стана маркетинг на платформата Cyanogen Modular OS на производителите, търгувайки с голямото признание на CyanogenMod за името след убийството на проекта. Може би точно там са парите.
Oracle никога не се интересуваше от OpenOffice, но първоначално искаше да използва името си, за да насочи продажбите на собствения си офис пакет StarOffice, като я маркира с името "Open Office".Тогава дари проекта на Apache, след като повечето от разработчиците на доброволци си тръгнаха.
Google наистина не се интересува от Android като пълен проект с отворен код, поради което все повече и повече части от "Android Open Source Project" (или "AOSP") остават зад гърба си. Google иска да запази Android отворен, за да е лесно за производителите да персонализирате, но приложенията с отворен код, като клавиатурата и номера, стават все по-остарели. На потребителско устройство с Android Google просто обединява собствена клавиатура с затворен код, диалектор и други приложения. Google изглежда се е ангажирал със сърцевината на Android с отворен код, но не и цялата операционна система с отворен код, която хората могат да използват без софтуера и услугите на Google. В края на краищата, подобряването на проекта с Android с отворен код помага само на Firefox на Amazon, конкурент на устройствата с Android на Google. Какъв е смисълът от това?
Ако проектът е с отворен код, всеки може да го използва, без да допринася дори за масивни компании. Това води до проблеми, когато един важен, широко използван проект има сериозна липса на работна сила и средства.
Видяхме резултатите от това с дупката за сигурност Heartbleed през 2014 г. Heartbleed използваше уязвимост в OpenSSL. OpenSSL е важна библиотека за шифроване, използвана от много гигантски технологични компании и стотици хиляди уеб сървъри. Но имаше само един служител на пълен работен ден без външна работа и 2000 долара годишно за дарения. Проектът спечели допълнителни средства от договори за търговска подкрепа и консултации, но само един служител на пълен работен ден изглежда шокиращо нисък за критична част от инфраструктурата, използвана от корпорации от няколко милиарда долара, като Google и Facebook.
Heartbleed насочи вниманието към това, колко недостатъчно е финансирането на този критичен софтуер, тъй като големите технолози са се ангажирали да разфасоват пари всяка година, за да финансират развитието на OpenSSL и други важни проекти като част от "Основната инфраструктурна инициатива".
Има добър резултат за тази конкретна история - но само защото толкова много внимание беше обърнато към нея. Когато разчитате на проект с отворен код, за да активирате инфраструктурата си, лесно е да се окажете в зависимост от нея и да приемете, че някой друг я поддържа достатъчно добре. Какъв друг важен проект с отворен код е критично недостатъчен? Може да не забелязваме, докато няма друг голям проблем.
Image Credit: snoopsmaus