Недостатъците на софтуера с отворен код
CyanogenMod е мъртъв, убит от компанията-майка Cyanogen. Общността се опитва да вземе парчетата и да създаде нов проект, LineageOS, базиран на кода. Но това е напомняне, че софтуерът с отворен код не е само слънчева светлина, дъги и стабилност: всъщност често може да е много разхвърлян.
Дори ако проектът е с отворен код, той не е задължително дори да отговаря на общността, още по-малко надежден софтуер, на който можете да разчитате. Проектите варират: някои се управляват от един или двама разработчици като хоби, други обединяват разработчиците, платени от много големи корпорации, докато други се управляват от една компания-майка. Всяка ситуация има свои собствени проблеми и драма.
Ние обичаме софтуера с отворен код - не ни разбирайте погрешно - но той представлява определен брой предизвикателства. Нека да разгледаме няколко.
Отворен код често страда от закъснения и ледников темп на развитие
Много проекти с отворен код изглежда страдат от бавен темп на развитие, където новите версии са безкрайно забавени, нови функции идват бавно, ако изобщо някога, и е трудно да се приоритизират трудни, но важни функции.
Просто разгледайте опитите на Ubuntu да пуснат своя Unity 8 десктоп и сървъра за визуализация на Mir, давайки възможност на неговата визия за „конвергенция“. Тази нова версия на работния плот на Linux трябваше да бъде стабилна преди много години и все още не е. Проектът се движеше с ледников ритъм, толкова много, че Canonical беше победен от удара на Microsoft, който обяви собственото си виждане за PC-by-smartphone преди Windows 10 и го достави. Canonical все още не е постигнала отдавна обещаната визия. Може би ще бъде стабилен след няколко години.
Mozilla също има някои трудности при определяне на приоритетите. Те все още не са показали многофункционални и пясъчни инструменти във Firefox. Те са от решаващо значение за поддържане на защитата на браузъра, за предотвратяване на сривове при свалянето на целия браузър и за по-доброто използване на процесори с множество процеси. Всички други основни браузъри са доставили тези функции, включително омразната Internet Explorer. Mozilla създаде проекта „Електролиза“, за да добави тези функции, но го спря през 2011 г., защото беше твърде трудно. Mozilla тогава трябваше да го рестартира през 2013 г. Тази функция изглежда пристига през 2017 г., което наистина е наистина късно. Междувременно Mozilla губи времето си в работата с Firefox OS - провалена операционна система за смартфони.
Когато проектът използва толкова много доброволци, той може да срещне трудности при намирането на хората да вършат упоритата работа, която не е забавна.
Вътрешна драма Избягва вилици, вилици и още вилици
Изходният код на проекта с отворен код е достъпен за всеки, който да се промени. Това е смисълът! Ако проект с отворен код се промени по начин, който не ви харесва, тогава вие - или общността - може да вземете този стар код и да продължите да работите по него като нов проект. Но проектите на общността често са толкова обвързани с вътрешна драма, че те карат нещата да се разделят на няколко проекта, объркващи и отчуждаващи потребители.
Например, когато стартира GNOME 3 и много потребители на GNOME 2 не са доволни, не е имало непосредствена очевидна пътека. Разработчиците трябваше да поставят кода на GNOME в други проекти като MATE и Cinnamon. Една десктоп среда се превръща в три, а ресурсите за развитие са по-разпръснати между проектите. В резултат на това на обществото са нужни известно време, за да могат тези нови проекти да започнат.
По същия начин общността на OpenOffice не беше щастлива, когато Oracle придоби Sun. Oracle дори преименува накратко своя патентен офис StarOffice, който не е с отворен код, на “Oracle Open Office”. Общността трябваше да създаде нова вилица, LibreOffice, базирана на кода OpenOffice. Той се превърна в де-факто офис пакет с отворен код за много хора, но други все още използват OpenOffice, защото не са наясно с по-добрата вилица и драмата около нея. OpenOffice просто има много изградено разпознаване на имена.
И, разбира се, е CyanogenMod. Cyanogen Inc току-що извади куплунга на онлайн услугите на CyanogenMod, което означава, че те биха предпочели да убият най-популярния трети Android Android, отколкото да го предадат на общността, като принудят общността да създаде нова вилка на 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“ (или „AOSP“) са изоставени. Google иска да поддържа Android отворен, така че е лесно за производителите да го персонализират, но приложенията с отворен код, като клавиатурата и дайлера, стават все по-остарели. На потребителско Android устройство Google само слага своя собствена клавиатура със затворен код, набиране и други приложения. Google изглежда ангажиран с ядрото с отворен код на Android, но не и цялата операционна система с отворен код, която хората могат да използват без софтуера и услугите на Google. В края на краищата, подобряването на проекта за отворен код на Android просто помага на Огън на Amazon Fire, конкурент на устройствата на Google за Android. Каква е целта на това?
Отворен код може да няма сериозна работна ръка, въпреки че се използва от милиони
Ако проектът е с отворен код, всеки може да го използва, без да допринася дори с големи компании. Това води до проблеми, когато един важен, широко използван проект има сериозна липса на работна ръка и средства.
Видяхме резултатите от това с дупката за сигурност на Heartbleed през 2014 г. Heartbleed използваше уязвимостта в OpenSSL. OpenSSL е важна библиотека за криптиране, използвана от много гигантски технологични компании и стотици хиляди уеб сървъри. Но той имаше само един служител на пълно работно време без външна заетост и 2000 долара годишно в дарения. Проектът е взел допълнителни пари от договори за търговска поддръжка и консултации, но само един служител на пълен работен ден изглежда шокиращо нисък за критична част от инфраструктурата, използвана от многомилиардни корпорации като Google и Facebook..
Heartbleed обърна внимание на това колко е недостатъчно финансираната тази критична част от софтуера, така че големите технологични компании се ангажираха да печелят пари всяка година, за да финансират развитието на OpenSSL и други важни проекти като част от „Инициативата за основна инфраструктура“.
Има добър резултат за тази конкретна история, сигурно - но само защото толкова много внимание беше насочено към него. Когато разчитате на проект с отворен код, за да активирате вашата инфраструктура, е лесно да свършите в зависимост от него и да приемете, че някой друг го поддържа достатъчно добре. Кой друг важен проект с отворен код е критично недофинансиран? Може да не забележим, докато има друг голям проблем.
Кредит за изображението: snoopsmaus