Wady oprogramowania Open Source
CyanogenMod nie żyje, został zabity przez spółkę dominującą Cyanogen. Społeczność próbuje odebrać utwory i stworzyć nowy projekt, LineageOS, oparty na kodzie. Przypominamy jednak, że oprogramowanie open source to nie tylko słońce, tęcze i stabilność: w rzeczywistości może być bardzo niechlujne.
Nawet jeśli projekt jest open source, niekoniecznie jest to reakcja na społeczność, a tym bardziej niezawodne oprogramowanie, na którym możesz polegać. Projekty są różne: niektóre są prowadzone przez jednego lub dwóch programistów jako hobby, inne skupiają programistów opłacanych przez wiele masowych korporacji, podczas gdy inne są prowadzone przez jedną firmę macierzystą. Każda sytuacja ma swoje problemy i dramat.
Uwielbiamy oprogramowanie open source - nie zrozumcie nas źle - ale przedstawia ono pewną liczbę wyzwań. Rzućmy okiem na kilka.
Otwarte źródła często opóźniające cierpienia i tempo rozwojowe glacjalne
Wiele projektów open source wydaje się mieć wolne tempo rozwoju, w którym nowe wersje są nieskończenie opóźnione, nowe funkcje pojawiają się powoli, jeśli kiedykolwiek, i trudno jest nadać priorytet trudnym, ale ważnym funkcjom.
Wystarczy spojrzeć na próby uruchomienia przez Ubuntu serwera Unity 8 i serwera wyświetlania Mir, umożliwiając wizję "konwergencji". Ta nowa wersja desktopu Linuksa miała być stabilna wiele lat temu, a wciąż nie jest. Projekt przesunął się w tempie polodowcowym, tak że Canonical został pobity przez Microsoft, który ogłosił własną wizję PC-powered-by-smartphone przed Windows 10 - i dostarczony na nim. Canonical wciąż nie dostarczył jeszcze swojej dawno obiecanej wizji. Może za kilka lat będzie stabilny.
Mozilla również miała trudności z ustaleniem priorytetów. Wciąż nie dostarczyły funkcji wieloprocesowych i sandboxowych w Firefoksie. Ma to kluczowe znaczenie dla bezpieczeństwa przeglądarki, zapobiegania awariom całej przeglądarki i lepszego wykorzystania procesorów wieloprocesorowych. Wszystkie inne główne przeglądarki dostarczyły te funkcje, w tym znienawidzony Internet Explorer. Mozilla stworzyła projekt "Elektroliza", aby dodać te funkcje, ale zatrzymał go w 2011 roku, ponieważ był zbyt trudny. Mozilla musiała następnie uruchomić go ponownie w 2013 roku. Ta funkcja ma pojawić się w 2017 roku - co jest naprawdę, bardzo późne. W międzyczasie Mozilla marnowała czas na pracę w Firefox OS, nieudanym systemie operacyjnym dla smartfonów.
Kiedy projekt wykorzystuje tak wielu programistów ochotników, może mieć trudności ze znalezieniem ludzi do ciężkiej pracy, która nie jest fajna.
Dramat wewnętrzny rodzi widły, widły i więcej widelców
Kod źródłowy projektu open source jest dostępny dla każdego, kto może się zmienić. O to chodzi! Jeśli projekt open source zmienia się w sposób, który Ci się nie podoba, to Ty lub społeczność - możesz wziąć stary kod źródłowy i kontynuować pracę nad nim jako nowym projektem. Jednak projekty społecznościowe często są tak pochłonięte wewnętrznym dramatem, że sprawiają, że rzeczy rozdzielają się na wiele projektów, dezorientując i wyalienowując użytkowników.
Na przykład, gdy uruchomiono GNOME 3 i wielu użytkowników GNOME 2 nie było zadowolonych, nie było bezpośredniej oczywistej ścieżki. Programiści musieli podzielić kod GNOME na inne projekty, takie jak MATE i Cinnamon. Jedno środowisko pulpitu zmieniło się w trzy, a zasoby programistyczne są bardziej rozproszone między projektami. W rezultacie społeczność potrzebowała trochę czasu, aby zrealizować te nowe projekty.
Podobnie społeczność OpenOffice nie była zadowolona, gdy Oracle przejęło firmę Sun. Oracle nawet na krótko zmieniła nazwę swojego autorskiego pakietu biurowego StarOffice, który nie był open-source na "Oracle Open Office". Społeczność musiała stworzyć nowy fork, LibreOffice, oparty na kodzie OpenOffice. Stało się de facto pakietem open source dla wielu osób, ale inni nadal używają OpenOffice, ponieważ nie są świadomi lepszego widowiska i otaczającego go dramatu. OpenOffice ma po prostu dużo wbudowanego rozpoznawania nazw.
I oczywiście jest CyanogenMod. Cyanogen Inc właśnie wyjął wtyczkę z usług CyanogenMod online - co oznacza, że wolałby zabić najpopularniejszy system Android z Androidem niż przekazać go społeczności, zamiast tego zmusił społeczność do stworzenia nowego widelca CyanogenMod o nazwie LineageOS. Dlaczego Cyanogen nie przekazuje projektu CyanogenMod społeczności? Odpowiedź wydaje się być dramatem wewnętrznym (czy widzisz tutaj wzór?). Cyanogen był firmą, której CEO obiecał, że "przebiją pocisk przez głowę Google'a". Skończyło się na tym, że zamiast tego wbił pocisk w głowę CyanogenModa.
Wszystko to po prostu wyrządza krzywdę użytkownikom CyanogenMod, którzy otrzymali bardzo mało powiadomienia, zanim serwery i usługi CyanogenMod zostaną zamknięte. Telefony będą nadal działać, ale wygodne aktualizacje i inne usługi wznoszą się w dym niemal z dnia na dzień. Użytkownicy muszą jedynie mieć nadzieję, że projekt LineageOS szybko stanie się zamiennikiem.
Nie wszystkie projekty Open Source są oparte na społeczności
Projekty open source nie zawsze są prowadzone przez społeczność. Mówienie, że program jest open source, oznacza, że kod jest dostępny do robienia tego, co lubisz. Firma opracowująca oprogramowanie niekoniecznie musi działać jako projekt społecznościowy lub może być zainteresowana wykorzystaniem tego projektu do promowania swojego innego oprogramowania.
CyanogenMod jest tego dobrym przykładem. Kiedy pojawił się Cyanogen Inc., nie przejmowali się CyanogenModem. Nowym celem Cyanogen stało się wprowadzenie na rynek platformy Cyanogen Modular OS dla producentów, handlując znakomitym rozpoznawaniem CyanogenMod po zabiciu projektu. Być może właśnie tam są pieniądze.
Oracle nigdy nie dbał o OpenOffice, ale początkowo chciał użyć swojej nazwy, by napędzać sprzedaż swojego pakietu biurowego StarOffice, oznaczając go nazwą "Open Office". Następnie przekazał projekt Apache po opuszczeniu większości deweloperów.
Google tak naprawdę nie obchodzi Androida jako pełnego projektu open source, dlatego coraz więcej elementów "Android Open Source Project" (lub "AOSP") pozostaje w tyle. Google chce zachować system Android otwarty, aby producenci mogli łatwo go dostosowywać, ale aplikacje typu open source, takie jak klawiatura i dialer, stają się coraz bardziej przestarzałe. Na urządzeniu z Androidem Google po prostu pakuje własną klawiaturę z zamkniętym źródłem, telefon i inne aplikacje. Google wydaje się być zaangażowany w rdzeń open-source systemu Android, ale nie w cały system operacyjny open source, którego ludzie mogą używać bez oprogramowania i usług Google. W końcu ulepszenie projektu Android Open Source pomaga Amazon's Fire OS, konkurentowi urządzeń z systemem Android firmy Google. Jaki jest sens tego?
Open Source może nie mieć poważnej siły roboczej, pomimo użycia przez miliony
Jeśli projekt jest open source, każdy może go używać bez wnoszenia wkładu - nawet ogromne firmy. Prowadzi to do problemów, gdy ważny, szeroko wykorzystywany projekt ma poważny brak siły roboczej i środków.
Efekty tego znaleźliśmy w dziale bezpieczeństwa Heartbleed w 2014 roku. Heartbleed wykorzystał lukę w OpenSSL. OpenSSL to ważna biblioteka szyfrowania używana przez wiele gigantycznych firm technologicznych i setki tysięcy serwerów internetowych. Ale miał tylko jednego pełnoetatowego pracownika bez zewnętrznego zatrudnienia i 2000 $ rocznie w darowiznach. Projekt wziął dodatkowe pieniądze z kontraktów wsparcia technicznego i doradztwa, ale tylko jeden pełnoetatowy pracownik wydaje się szokująco niski na krytyczną infrastrukturę wykorzystywaną przez wielomiliardowe korporacje, takie jak Google i Facebook.
Heartbleed zwrócił uwagę na to, jak niedofinansowane jest to krytyczne oprogramowanie, więc wielkie firmy technologiczne zobowiązały się co roku wyłudzać pieniądze na sfinansowanie rozwoju OpenSSL i innych ważnych projektów w ramach "Inicjatywy na rzecz podstawowej infrastruktury"..
Wynik tej konkretnej historii jest dobry, ale tylko dlatego, że przyciągnęło do niej tyle uwagi. Kiedy polegasz na projekcie open source, aby umożliwić twoją infrastrukturę, łatwo jest skończyć w zależności od tego i zakładać, że ktoś inny utrzymuje go wystarczająco dobrze. Jaki inny ważny projekt o otwartym kodzie źródłowym jest krytycznie niedofinansowany? Możemy nie zauważyć, dopóki nie pojawi się kolejny duży problem.
Image Credit: snoopsmaus