OPROGRAMOWANIE OPEN SOURCE, "WOLNE", DARMOWE, DOBRE I UCZCIWE, STANDARDY. ==================================================================================================== Tytuł z pewnością zachęci wiele osób, natomiast ostrzegam, że większość z was nie przeczyta tutaj tego co chce usłyszeć. Tylko moją opinie popartą logiką i faktami. ---------------------------------------------------------------------------------------------------- Co oznacza termin "open source". Dokładnie to co oznacza. Otwarte źródła - a więc dostępne do obejrzenia. Ew. modyfikowania na swoje potrzeby. I nic więcej! Nie ma w tym terminie zawartej np. darmowości. Albo czegokolwiek innego. Oprogramowanie open source może być jednocześnie darmowe. Nie musi. Sam fakt, że jest open source nie oznacza, że jest lepsze. Choć jest to niewątpliwie dobra praktyka. Najlepszym przykładem z czasów, gdy względnie uczciwe praktyki biznesowe były normą nawet w korporacjach, firma AT&T - w której wymyślono system UNIX, licencjonowała go komercyjnie, jednocześnie zapewniając źródła. Licencja obejmowała prawo użytkowania na jednym komputerze, czy też na każdym w ramach firmy, albo na innych zasadach. Źródła były dostępne. Co NIE OZNACZA, że można było je używać darmowo. Napisanie tego oprogramowania wymagało pracy, więc firma ma prawo żądać za to pieniędzy. Jak każdy. Co więc oznaczało "open source"? Że każdy użytkownik miał prawo np. zmodyfikować to oprogramowanie we własnym zakresie do własnych potrzeb. Albo nawet rozpowszechnić tą modyfikację jeśli chciał. Nadal jednak każdy kto chciał używać systemu AT&T UNIX musiał za to zapłacić. Dodatkowo każdy mógł zweryfikować, czy to oprogramowanie robi rzeczywiście to co firma twierdzi w instrukcji, że robi. A nie ma np. wytrychów. Ponieważ to oprogramowanie pisali ludzie rozsądni było proste i logiczne, więc taka weryfikacja była realnie możliwa, i to niedużym nakładem pracy. Dzisiaj takich praktyk w oprogramowaniu komercyjnym się nie spotyka. Nic dziwnego. Korporacje nie chcą by ktoś analizował, co naprawdę to robi. Po drugie ani korporacje ani nawet wiele firm prywatnych nie chce by szeroka publiczność widziała jaki bajzel porobili ich specjaliści. A zasada otwartych źródeł - oczywiście dobrowolna - powinna stawać się powszechna, a ludzie - rozumiejąc po co to jest - oczekiwać tego. Wolny rynek zrobi resztę. ---------------------------------------------------------------------------------------------------- Oprogramowanie darmowe oznacza to co oznacza. Darmowe. Nie trzeba płacić. I nic więcej. Może a nie musi być to oprogramowanie open source. Też nie oznacza to z definicji, że jest lepsze lub gorsze od płatnego. ---------------------------------------------------------------------------------------------------- Oprogramowanie "wolne" naprawdę nic nie oznacza. Termin wolność odnosić się może do istoty żywej. Nie do maszyny, czy też programu. Tak naprawdę oznacza to co każdy uzna lub ogłosi. Sformułowanie dawniej używane "public domain" to w/g mnie najbliższe temu co uważam za "wolne" oprogramowanie. Po prostu macie i używajcie. Róbta co chceta. Czyli danie wszystkim ludziom PODARUNKU. PODARUNEK, z definicji, oznacza, że dajesz a biorący bierze i jest to jego własność. A więc może zrobić z tym co chce. Nawet przerobić, i sprzedawać w formie bez źródeł. Jeśli chcesz napisać program i udostępnić szerokiej publiczności, to po prostu to zrób i tyle. Nie trzeba żadnej licencji. Niektóre mniejsze i większe organizacje niekomercyjne, czy też ludzie stosują jednak jakąś licencję. Jedynym ich celem jest dupochron prawny przez korporacjami, czy ochrona własnego imienia. W takim żyjemy świecie, że ktoś chce zrobić innym prezent, a jeszcze może być narażony na np. atak sądowy. Na tym polega np. licencja BSD - dostajesz to i rób co chcesz, ale zgadzasz się z wszelkimi konsekwencjami użycia tego produktu, i nie będziesz podawał nas do sądu. Dodatkowo cokolwiek zrobione na podstawie tego oprogramowania nie może nosić jego nazwy. Są też inne tego typu podobne licencje. MIT, Xorg itp. Nie jestem prawnikiem, ale o to z grubsza chodzi. To jest tylko dupochron w chorym świecie. Jest też definicja "wolnego" oprogramowania Richarda Stallmana. Nie wiem, jakie były jego cele w młodości, czy szczere czy nie, lecz oceniam efekty. W/g jego definicji program wolny objęty jest bardzo skomplikowaną prawnie licencją (i w każdej kolejnej wersji jeszcze bardziej) GPL która mówi o tym, że jeśli użyjesz źródeł "wolnego" oprogramowanie w swoim, to sam musisz udostępnić wszystkie źródła na tej samej licencji. Z wolnością nie ma to nic wspólnego, natomiast z komunizmem - bardzo dużo. I podobnie jak w komunizmie tworzy się środowisko korupcjogenne. Proszę zauważyć, że w przypadku złamania przez kogoś tej licencji, generalnie Free Software Foundation - organizacja Richarda Stallmana, jest organizacją która może podać jakąś firmę do sądu. MOŻE ALE NIE MUSI. A teraz zastanów się. Używanie np. linuxa i innego oprogramowania w wielu gotowych produktach (choćby routerach, modemach, itp. itp.) jest powszechne. Ile z tych produktów udostępnia całość w wersji źródłowej. Niektóre tak, niektóre nie. Czemu nie w większości przypadków sprawy w sądzie? A jak się zdarzy, to jest wielkie gadanie o tym na ich stronie. W żadnym wypadku nie oskarżam Richarda Stallmana ani innych osób z Free Software Foundation o przyjmowanie łapówek. Stwierdzam tylko, że stworzono środowisko korupcjogenne, mające bardzo wiele cech komunizmu. Czy możliwość została wykorzystana czy też nie - nie wiem. Wiem tylko, od takich środowisk należy trzymać się z daleka. Oczywiście jeśli ktoś uważa, że podejście Stallmana jest dobre, nikt nie broni mu udostępniać swojego oprogramowania na tej licencji. Na tym polega wolność. Można tez bez żadnej albo wymyślić własną. Po prostu nie chcę, aby zawłaszczano sobie powszechne pojęcia jak wolność. A generalnie to robi ta fundacja - twierdzi, że wolność to tylko tak jak oni mówią, wszystko inne to już nie jest wolność. Natomiast co to zmienia, jeśli nie kupujesz urządzenia, ale samemu używasz oprogramowania na swoim komputerze? Nic. Wtedy to nie ma znaczenia. Używaj programów które uważasz za dobre, i potrzebujesz. I tyle. Uważaj jednak jako programista z wykorzystaniem ich jako składowej Twoich produktów. Sam używam wielu programów na licencji GPL. Jak też wiele bez licencji - public domain, czy też na licencji BSD. Każde spełnia swoje zadanie. Pamiętam jednak, że to na jakiej licencji jest oprogramowanie nie jest dowodem wysokiej czy niskiej jakości danego oprogramowania. No może poza licencjami które tak naprawdę są dzierżawą na czas nieokreślony. ---------------------------------------------------------------------------------------------------- Dobre i uczciwie oprogramowanie. To pojęcie należałoby zdefiniować, bo to najbardziej interesuje każdego rozsądnego odbiorcę. Czym powinno się charakteryzować? Myślę, że najlepiej powiedział kiedyś Michał Anioł: *** Perfekcji nie osiąga się wtedy, gdy nie da się niczego dodać. Lecz wtedy gdy nie da się już niczego ująć. *** Pomimo, że Michał Anioł programistą nie był, niech to hasło przyświeca każdemu dobremu programiście. Niestety dziś 99.9% programistów uznaje dokładnie odwrotne zasady. Dziś programy zajmujące gigabajty uważa się za szczyt techniki. Skomplikowanie, a raczej przekomplikowanie jest przedstawiane w reklamie jako zaleta. 1) Działać sprawnie, szybko i nie mieć błędów. A jeśli jednak błędy będą - autor powinien być zainteresowany ich poprawieniem i współpracować z odbiorcą/klientem, a nie robić łaski. 2) Być proste. Nie chodzi o ładny kolorowy interfejs, i wrażenie prostoty. Ale rzeczywistą prostotę. Nie prymitywizm, lecz prostotę. W/g zasady Michała Anioła. 3) Być przejrzyste. Czyli autor powinien opisać nie tylko jaki daje skutek, ale przynajmniej w ogólności jak działa. Szczególnie to jest ważne, gdy program działa w środowisku telekomunikacyjnym. Absolutnie niezbędne, gdy w środowisku telekomunikacji publicznej (np. internecie). Użytkownik/klient ma prawo wiedzieć jak się komunikuje program, w jakim celu, i opis powinien być taki aby się to dało zweryfikować. Oczywiście punkt 3 nie jest możliwy bez punktu 2. 4) Program ma być programem, którego jesteś właścicielem/użytkownikiem a nie usługą korzystającą z serwera producenta lub innego. Co najwyżej może korzystać z serwera prowadzonego przez użytkownika (lub dla niego przez zaufaną małą firmę) na którym instaluje się część serwerową. W przeciwnym razie to nie produkt a zniewolenie. 5) Nie starać się być szwajcarskim scyzorykiem. Autorzy systemu UNIX powiedzieli kiedyś - zrób program prosty, robiący jedną rzecz, ale robiący ją dobrze, i zrób go tak, by łatwo współpracował z innymi programami. Ta zasada powinna dotyczyć każdego oprogramowania, nie jest w żaden sposób związana z systemem UNIX. 6) Formaty plików tworzonych przez program powinny być jasno opisane i proste. TY - CZYLI KLIENT - masz prawo wiedzieć, jak zapisane są TWOJE dane. To nie jest łaska a obowiązek to opisać. Oczywiście prostota formatów plików wiąże się z punktem 5 i też należy na nią zwracać uwagę. 7) ZAWSZE wybierając program, myśl o tym, jak będziesz go potem mógł zintegrować z innymi w przyszłości. Nawet jeśli dziś nie widzisz potrzeby. Patrz punkt 5. No chyba, że chodzi o grę komputerową :) 8) Program powinien być jedną całością. Jeśli wymaga on instalowania 70 innych zestawów bibliotek, to jest to recepta na problemy. A dziś często "programiści" nawet sami nie do końca wiedzą co jest potrzebne. 9) Open source to zawsze argument pozytywny. Tak jak pisałem - nie musi to oznaczać darmowego. Natomiast jeśli produkt ma dostępne źródła, i jednocześnie spełnia punkty 2 i 3 - to jest weryfikowalny. W przypadku oferty bez źródeł - zawęź się do produktów polskich. W przypadku gdyby autor programu okazał się oszustem, szpiegiem czy były poważne podejrzenia ku temu, a program robił by inne rzeczy niż te co powinien - masz możliwość egzekucji prawa. W przypadku firm zagranicznych - masz teoretycznie. W praktyce nie masz żadnej. Jak chyba zauważyłeś dzisiejsza oferta rynkowa nie ma produktów spełniających podane warunki. Dlaczego? Bo tego nie wymagacie! Ruszcie tyłki i myślcie nie o potrzebie chwili ale w długiej perspektywie. Szanujcie siebie. Producent oprogramowania jest oferentem, a wy jesteście KLIENTAMI. Klient płaci - klient wymaga. Nawet jak klient nie płaci bo jest darmowe - to powinien wybierać i odrzucać. Dotyczy to całości oprogramowania które używasz. Od systemu operacyjnego po programy użytkowe. A jeśli klient płaci, nic nie wymaga, a nawet poddaje się władzy sprzedającego, to sami proszę dobierzcie określenie takiego klienta. Ja nie podam bo nie chce nikogo obrazić. Chcecie dobrego, bezpiecznego oprogramowania, które wam służy i któremu można zaufać. To tego wymagajcie. Jesteście KLIENTAMI, a nie podmiotem. ---------------------------------------------------------------------------------------------------- Standardy Po to wymyślono standardy aby umożliwić łatwą wymianę części, a w przypadku informatyki łatwą wymianę danych. Korporacji informatyczno-terrorystyczne cały czas próbują ten problem (dla nich) "rozwiązać". Albo wmuszają własne standardy, które nie są opisane i zdefiniowane, albo - pod naciskiem - tworzą niby-standardy, nie dość, że nieściśle opisane to jeszcze super-mega-ultra-przekomplikowane. Microsoft jest w tej dziedzinie pionierem, ale oczywiście ma całe mnóstwo naśladowców. To, czy tak będzie dalej zależy od Ciebie. To, że ktoś ci wyśle plik w np. Microsoft Word, nie znaczy, że masz zakupić MS Office. To znaczy, że osoba wysyłająca ma to gdzieś, a jeszcze częściej - że w ogóle się nie zastanawia. Można taką osobę potraktować złośliwie, jak kiedyś robiłem. Czyli jakoś odczytałem jej dokument, i całość wraz z poprawkami przepisałem w edytorze LyX (który tworzy pliki zgodne z systemem LaTeX), i następnie odesłałem jej w tym formacie. Również nie pytając czy posiada albo zna to oprogramowanie :) Na niektórych podziała niestety na większość nie. Można też grzecznie prosić o wysłanie PDF. Albo jeszcze lepiej - skoro dyskutujemy o tekście - w pliku tekstowym. Kto broni wysłać to nawet w treści maila? To że jedna osoba używa MS Office, inna LyX, inna Word Perfect a inna w ogóle nie za bardzo lubi cokolwiek poza plikami ze zwykłym tekstem jest normalne. To się nazywa wolność. Jeśli Ty nie pozwolisz sobie wmuszać, i nie będziesz innym wmuszał, to wrócą czasy prostych otwartych standardów. A nie korporacji. Oczywiście samo to nie wystarczy. Więcej napisałem w moim tekście o historii telekomunikacji i zniewolenia. Roman