Blog (3)
Komentarze (181)
Recenzje (0)
@penguinOpen Source and Closed Mind

Open Source and Closed Mind

16.04.2010 | aktual.: 16.04.2010 15:33

Do napisania tego cyklu przymierzałem się od dawna. Sądziłem iż dobrym pomysłem będzie stworzenie kompilacji moich komentarzy, które publikowałem (i nadal publikuję) na wortalu Dobreprogramy wszędzie tam, gdzie widzę sens dorzucić swoje trzy grosze do niekończącej się wojny Windows vs Linux. Ci, którzy próbowali podobnej sztuczki wiedzą, że dość trudno rozpocząć tego typu tekst, podsumowujący przeszło trzy lata literackiego udzielania się. I tak oto, po paru miesiącach odkładania otrzymałem bodziec do otwarcia Microsoft Word i rozpoczęcia pisania. Bodźcem tym były pewne krótkie rozmowy z moimi bardzo dobrymi znajomymi, które ostatecznie nadały nie tylko rytm tych tekstów, ale również- niestety- ich tytuł.

W bieżącym artykule chciałbym omówić podstawową rzecz, jakiej fanatycy Linuksa oddają bezgraniczną cześć. Ideologia Open Source. Czytając komentarze pod artykułami i newsami związanymi z tym tematem łatwo odnieść wrażenie, że aplikacje tworzone w tym duchu stanowią już na starcie jakość samą w sobie. Nierzadkie są deklaracje użytkowników, którzy zarzekają się, że mając do wyboru aplikację zamkniętą i gorsze jakościowo oprogramowanie z otwartym kodem, bez wahania wybiorą open source. Powody? Z głównych argumentów warto wymienić:

- Wysoki stopień bezpieczeństwa. Przecież każdy wie, że im więcej oczu patrzy na dany błąd, tym mniejsze zagrożenie. - Otwarte źródła, czyli nieograniczone możliwości modyfikacji i dostosowania rozwiązania do własnych potrzeb. - W przypadku braku jakiejś funkcjonalności, można ją bez problemu dopisać samemu, przyłączając się do Wielkiej Społeczności.

Wartym odnotowania jest argument znanego w kręgach dobreprogramów, Blackmana. Podczas niekończących się HotZlotowych dyskusji ze mną i Grzegorzem, porównał nawet system operacyjny do bielizny. Według tej myśli system i zarządzane przez niego dane są bardzo osobistą rzeczą i dopuszczanie kogoś (np. Microsoftu), aby w nim grzebał w nieprzejrzysty sposób (bo przy zamkniętym kodzie) jest niedopuszczalne.

Logicznie rzecz ujmując ciężko się nie zgodzić. To przecież czyste fakty. Pytanie brzmi jednak; czy jako argumenty mają jakiekolwiek znaczenie? Łatwo to zweryfikować; wystarczy szczerze, z ręką na sercu odpowiedzieć na następujące pytania:

- Ile razy po zauważeniu błędnego działania programu, lub innej nieprawidłowości, edytowaliście kod źródłowy programu? Ile razy tego typu poprawki zostały włączone przez twórców do kolejnych jego wersji? - Ile razy grzebaliście w kodzie, aby dostosować funkcjonalność jakieś aplikacji idealnie pod własne gusta? - Ile razy dopisywaliście całkowicie nowe aspekty, których dotychczas Wam brakowało?

Stawiam dolary przeciw kasztanom, że 99,999% użytkowników Linuksa na wszystkie pytania udzieliła odpowiedzi „ani razu”. Nie jest to próba jakiegokolwiek zdyskredytowania ich, lecz- podobnie jak poprzednio- stwierdzenie faktu. Zagadnienia o których wspomniałem są trudne i wymagają znajomości zarówno języków programowania jak i odpowiednich technologii. Nierzadko również potrzeba wielu dni spędzonych na studiowaniu użytych bibliotek, czy na zapoznaniu się z już istniejącym kodem programu. Nie wspominając już o tym, że solidna dokumentacja w projektach open source to nadal biały kruk, spotykany właściwie jedynie w popularnych projektach.

W tym momencie dyskusja zmierza ku końcowi. Jeśli nie jesteśmy programistami danej technologii, nie mamy jakiejkolwiek możliwości skorzystania z dobrodziejstw otwartego kodu. Nie napiszemy poprawki, ani nowej funkcjonalności. Ciekaw jestem też ile nastolatków zachłyśniętych ubuntu i szczerze wierzących w to, że już lada moment po wydaniu nowej wersji dystrybucji/środowiska graficznego/jądra, świat przejrzy na oczy i porzuci Windows, jest przekonana, że dziury w oprogramowaniu wyłapuje się wertując znak po znaku kod źródłowy... Pewnie dużo.

Lecz nawet oni, zapewne nieświadomie, czynią dokładnie to samo co w przypadku napotkania aplikacji o zamkniętym kodzie: ufają obcym ludziom i ich zapewnieniom, że wszystko jest w porządku. Czy lepiej zaufać osobom, które żyją ze swojego kodu, czy „społeczności”, która działa za darmo? To jest kwestia indywidualna i dobry temat na osobny artykuł. Moim celem jest pokazanie, że omawiany argument- choć prawdziwy- ma jakiekolwiek znaczenie w ustach doświadczonych programistów i hakerów, a nie ubuntu-kiddies, którzy chorują jeśli nie napiszą przynajmniej kilku „Micro$hit SUX” w komentarzu pod jakąkolwiek informacją dotyczącą tej firmy.

Oczywiście, powyższy akapit trąci trochę prowokacją. Tak naprawdę nawet specjaliści, jak Blackman, nie są fizycznie w stanie analizować każdego kawałka kodu open source, jakiego używają. Swoją osobistą „bieliznę” powierzając nie firmie Microsoft, lecz Novell, Canonical, Mozilla, czy mistycznej Społeczności. Czy to lepsze rozwiązanie, bo przynajmniej opozycja do monopolisty załatwia wszystko otwartym i ogólnodostępnym kodem? Być może tak, lecz nadal pozostaje kwestia o której napisałem wyżej; nie istnieje człowiek, który by to wszystko potrafił ogarnąć i w stu procentach zagwarantować własną głową poprawność oprogramowania.

Z drugiej strony systemy Windows mają praktycznie 90% udziału w rynku. O wiele więcej osób analizuje ich działanie i na przestrzeni lat wiele nieprawidłowości zostało wyciągniętych na światło dziennie. Informacja w tonie „Microsoft podsłuchuje twoje rozmowy, a zawartość twojego dysku jest kopiowana na serwery w Redmond” jest warta dla konkurencji bardzo dużo. I jest to tak kolosalna kwota, iż nie mam wątpliwości, że niejedna firma w celu nadgryzienia rynkowego tortu zapłaciłaby za dowód zdolnemu hakerowi, bądź nawróconemu programiście Microsoftu kwotę, nad której wydaniem wahałby się nawet Bill Gates.

Tymczasem szokiem dla – podkręcę tutaj dosadność- „linuksowego betonu” może być fakt, że projekty open source zawsze prowadzone są przez jakąś jednostkę, której ogólne działanie wcale nie różni się od tej z komercyjnego modelu. Przy mniej wymagających projektach kodują studenci i pasjonaci w ramach wolnego czasu. Czy jego ilość jest wystarczająca? Czy są odpowiednio doświadczeni? Przy większych przedsięwzięciach, w których faktycznie uczestniczą programiści z całego świata, potrzebni są wyznaczeni ludzie zajmujący się przeglądaniem, zatwierdzaniem i koordynacją otrzymanych porcji kodu. Czy da się jakoś zapanować nad tych chaosem?

Zadane wyżej pytania są oczywiście retoryczne. Naturalnie wszystko jest do zrobienia i mamy wiele wspaniałych na to przykładów. Chociażby Firefox, który po paru latach strącił Internet Explorer z pozycji monopolisty. Ale czy otwarty kod źródłowy to już recepta na sukces? Moim skromnym zdaniem nie, ale jeżeli faktycznie ten aspekt pociągnął za sobą to spektakularne zwycięstwo, to obserwując rynek stwierdziłbym, że raczej jest to chlubny i jaskrawy wyjątek od reguły.

Sęk w tym, że sukces zależy od zgranej drużyny, pracowitych jej członków oraz konsekwentnego lidera. Mało ma zaś wspólnego z ideologią i licencją. Aby nie szukać daleko, wspomnę KDE, które w dniu premiery wersji 4.0 działało wolniej od niesławnej Visty, a jego stabilność plasowała się na poziomie wczesnych wersji beta. Szybko okazało się, że projekt KDE4 ma dużo użytkowników, ale mało naprawdę dobrych programistów, którzy potrafią pociągnąć całą tę machinę w konkretnym kierunku. Przykładów, jak i odpowiednich kontrprzykładów jest niezliczona ilość i nie jest moim celem wywołanie kolejnej komentarzowej wojny. Jednakże w artykule tym zajmuje się oprogramowaniem w domowym, nieprofesjonalnym zastosowaniu. A KDE4 to przecież jeden z flagowych produktów tego rodzaju świata open source.

Zdaje sobie sprawę, że tekst ten jest bardzo niebezpieczny, gdyż porusza temat świętości Linuksa. Na zakończenie chciałbym z góry odpowiedzieć na większość zarzutów ludzi, którzy nie umieją czytać ze zrozumieniem. Trochę prowokacyjny charakter to tylko styl pisania, do którego jako autor mam pełne prawo. Nie mogę o sobie powiedzieć, że jestem za, lub przeciw open source, za, lub przeciw Microsoftowi. Kibicuję dobrym programom i rozwiązaniom, nie przedkładając- w przeciwieństwie do wielu napalonych komentatorów- rodzaju licencji na piedestał, ani ideologii, na którą w poważnej informatyce nie ma miejsca.

Bartosz Lenar

Wybrane dla Ciebie
Komentarze (71)