Co mnie wkurza w OpenSource

Spis treści

Sama idea wolnego otwartego oprogramowania jest szczytna i jestem gorącym zwolennikiem otwartch kodów. Bardzo fajne jest też to, że prawie każdy może z takiego oprogramowania skorzystać za darmo, a przy odrobinie chęci i wiedzy dostosować je do własnych potrzeb bez ograniczeń wynikających z funkcjonalności jaką autor dał nam do dyspozycji “za darmo”. Niestety są też wady takiej “otwartości”.

Częste aktualizacje

Doprowadza mnie to do szału (patrz: WordPress) gdzie nowe wersje wychodzą tak często, że nie nadążam z aktualizacjami. Na szczęście wymieniony WordPress ma fajny mechanizm “Automatic Upgrade”, ale nie zmienia to faktu że trzeba często wszystko aktualizować. Pół biedy jeżeli aktualizcje wprowadzają nową funkcjonalność, z której można zrezygnować ale jeżeli są to aktualizacje wynikające z bezpieczeństwa to nie ma wyjścia – trzeba robić upgrade.

Bezpieczeństwo

Tutaj można rozpatrywać to w dwóch aspektach: jeżeli kod jest otwarty, każdy może sprawdzić i zweryfikować kod i ewentualnie zgłosić lub samodzielnie załatać dziury, z drugiej strony… publikacja takiej dziury niekoniecznie musi być w interesie odkrywcy. Dziury w projektach typu Joomla (stare Mambo) doprowadziły mnie do furii przy notorycznym włamywaniu się na strony moich klientów, którzy przyoszczędzili na CMSach. Zwykle też raz zainstalowany CMS potrafi wisieć na wersji z roku np. 2005 😉 Bo aktualizacja darmowych rozwiązań nie zawsze jest prosta i bezbolesna. Prawdą jest też to, że rozwiązania komercyjne niekoniecznie muszą być bezpieczniejsze, ale jeżeli nie każdy ma dostęp do źródeł to trudniej znależć dziurę. Po pierwsze dlatego, że dostęp do kodu jest mocno ograniczony, po drugie – ktoś bierze za to pieniądze żeby dziur nie było.

Naturalna śmierć

Projekty Open Source mają też to do siebie, że… umierają. Skoro nikt nie bierze za to pieniędzy jaką ma korzyść w tym żeby rozwijać produkt. Często fajne tematy zdychają po programiści którzy na początku z wielkim zapałem zabrali się za produkcję jakiegoś softu, potem zajmują się kolejnymi projektami a na to co mogło by się komuś przydać niestety nie brakuje czasu. Mam tutaj żal np. do encodera, który był częścią doskonałego eAcceleratora . Skończyło się na wersji działającej z PHP4 a potem nic. Z możliwych rozwiązań pozostaje jedynie  IonCube , od którego bardzo się broniłem ale… skończyło się właśnie na nim.

Wsparcie

No… to jest niestety kolejna rzecz, która kompletnie leży. Jeżeli mamy dobrą dokumentację to pół biedy, ale jeżeli dokumentacja jest słaba to… możemy sobie pomarzyć o rozwiązaniu niestandardowego problemu. Oczywiście niektóre projekty oferują komercyjne wsparcie, ale co jeśli takowego nie ma ? Wystarczy rzucić okiem na wspominaną przeze mnie wcześniej Askozię , która w swoich ramach działa, ale… potrzebuje podczepić do niej SPA3102 jako bramkę PSTN -> SIP i… nie da się. Słaba dokumentacja a w zasadzie jej brak + forum gdzie nie ma żadnych konkretów (a pytanie co jakiś czas się pojawia) doprowadza mnie do szewskiej pasji. Chętnie bym zapłacił za taką informację, ale… nie mam takich opcji.

Objętość kodu

Taaak… to co tygryski lubią najbardziej. Każdy projekt Open Source po n-latach zaczyna mięć rozmiar Windowsa 😉 No niestety – OsCommerce który jest już tak wielki, że chyba sami autorzy nie bardzo wiedzą co z tym fantem zrobić, to samo dotyczy Joomli czy innych wynalazków, których instalki zajmują po kilka (kilkanaście MB). Wydaje mi się, że problem jest spowodowany faktem, że nikt nie ma odwagi i chęci przepisać kod pisany w komitywie od początku. W swojej karierze mam już 4 generację systemu CMS, który przy każdej nowej wersji był przepisywany od początku żeby zwiększyć wydajność i wdrożyć nowe rozwiązania i nadążyć za tym co dzieje się na rynku. Podoba mi się też fakt, że autorzy phpMyAdmina odważyli się na ten krok. Rozbudowa aplikacji ma jedynie sens gdy są dobre podstawy. Czasami inaczej się nie da i tak właśnie należy zrobić.

Kilka słów podsumowania

Nie mówię wcale, że w przypadku płatnych rozwiązań sytuacja ma się lepiej. Często kod pisany jest niechlujnie, bo i tak nikt tego nie zobaczy. Często określone funkcje są tylko zaślepkami albo wynalazkami, które mają brzmieć dobrze marketingowo. Support takich aplikacji też bywa koszmarny, ale z drugiej strony… płacąc za jakieś rozwiązanie można więcej oczekiwać, np. porządnej dokumentacji, odpowiedzi na ciężkie pytania albo chociaż informacji, że “nie da się”. Cykl życia komercyjnych rozwiązań też jest zgoła inny. Jeżeli produkt jest dobry to rozwija się wg. jakiegoś planu, jeżeli jest program jest słaby to znika.

Uff.. tyle moich wypocin i frustracji związanych z wdrażaniem i korzystaniem z softu 🙂