Warunkiem koniecznym zdefiniowanych przez Stallmana czterech wolności użytkownika jest udzielenie przez twórcę (lub inny podmiot praw) wolnej licencji, takiej jak GPL, LGPL czy licencji typu BSD. Jednak nawet po udzieleniu takiej licencji pozostaje często wiele czynników ograniczających te wolności. Obserwacja rozwoju tzw. aplikacji sieciowych (”web applications“) i zjawisk powiązanych określanych jako “Web 2.0“, “cloud computing” itp. prowadzi do wniosku, że stanowią one jeden z takich czynników. Wręcz, w świecie aplikacji sieciowych wolności okazać się mogą całkowicie nieprzydatne.
Upraszczając, aplikacje sieciowe to oprogramowanie działające na serwerze, dostępne dla użytkownika poprzez tzw. “cienkiego klienta“, czyli np. przeglądarkę WWW. W odróżnieniu od tradycyjnych aplikacji, nie są one zatem instalowane na komputerze użytkownika. Dane przetwarzane przez aplikacje sieciowe również nie znajdują się na komputerze użytkownika (choć oczywiście w początkowym stadium są one od użytkownika pobierane).
Aplikacje sieciowe są wykorzystywane do świadczenia różnych usług, jednak najistotniejsze są tu usługi związane z interakcją pomiędzy różnymi ich użytkownikami, ze współpracą grupową, np. takie jak “serwisy społecznościowe”. Istotna część wartości takiej usługi zależy od liczby jej użytkowników i ich aktywnego korzystania z usługi (np. serwis umożliwiający zarządzanie relacjami ze znajomymi nie byłby atrakcyjny dla użytkownika, gdyby jego znajomi nie byli również użytkownikami serwisu i nie uaktualniali umieszczanych tam informacji o sobie).
Owszem, dane i użytkownicy decydują także o wartości (funkcjonalności) tradycyjnych aplikacji (vide pakiety biurowe, komunikatory internetowe). Jednak w świecie aplikacji sieciowych elementy te nie są dostępne dla użytkownika inaczej niż właśnie poprzez korzystanie z danej usługi sieciowej. Co więcej, stan ten jest trudno zmienić. Otóż przeniesienie oprogramowania na komputer użytkownika, nawet jeżeli technicznie możliwe, jest ekonomicznie bezzasadne. Po pierwsze, oprogramowanie to byłoby bezużyteczne bez danych (a dostawcy usług sieciowych nie dają przecież użytkownikom dostępu do całości bazy danych, pozwalając zwykle tylko na zdalne operowanie niektórymi z nich). Po drugie, nawet gdyby oprogramowanie zostało przeniesione wraz z danymi, to i tak inni użytkownicy nie byliby w stanie dalej z niego korzystać. Brak aktywności innych użytkowników pozbawia usługę jej podstawowej a może nawet i jedynej funkcjonalności.
Zatem, nawet jeżeli użytkownik uzyska przedmiotowe oprogramowanie wraz z kodami źródłowymi i wolną licencją, to i tak co do zasady nie będzie mógł on wpływać na sposób jego działania. Ściśle rzecz ujmując – będzie on miał taki wpływ jedynie na bezużyteczną lokalną jego wersję. Wersja znajdująca się na serwerze (”w chmurze”) będzie nadal poza jego zasięgiem. Wpływ na nią będzie miał przecież tylko dostawca przedmiotowej usługi. W najlepszym wypadku, użytkownik dysponujący kopią oprogramowania będzie mógł rozpocząć świadczenie substytucyjnej usługi, co jednak bez skopiowania danych oraz migracji użytkowników nie rokuje wielkich szans powodzenia. Zakładając nawet pełne sklonowanie usługi (wraz z danymi i użytkownikami), będzie to oznaczało, że kontrola nad oprogramowaniem przeszła po prostu z jednego podmiotu na inny, a pozostali użytkownicy nadal nie będą w stanie korzystać z postulowanych przez Stallmana wolności.
Czy powinniśmy wobec tego ogłosić koniec wolności użytkownika? Cóż, społeczność wolnego oprogramowania zauważyła opisywane tu zagrożenie już jakiś czas temu i bynajmniej nie zwinęła sztandarów. Jedną z reakcji było powstanie kolejnej licencji modelowej, Affero GPL, rozszerzającej klauzulę “copyleft” na oprogramowanie wykorzystywane do świadczenia usług sieciowych. Z kolei uczestnicy inicjatyw takich jak autonomo.us postulują m.in. aby dostawcy usług sieciowych udostępniali użytkownikom nie tylko oprogramowanie, ale i ich dane w odpowiednich (otwartych) formatach wraz z prawem do kontroli tych danych (paradoksalnie bowiem prawo to może domyślnie nie przysługiwać użytkownikom, których dane dotyczą, lecz np. producentom bazy danych).
Wszystko to nie rozwiązuje jednak problemu, gdyż nie wystarcza aby użytkownik mógł realnie wpływać na kształt usługi sieciowej (pozostaje ona bowiem “w chmurze”, poza jego kontrolą). Problem ten na pierwszy rzut oka wydaje się być głównie natury technicznej: jak zaprojektować aplikacje sieciowe, które mogłyby być zmieniane przez każdego, a jednocześnie nadal umożliwiały dostęp do tych samych danych i współkorzystanie z tą samą grupą użytkowników (zmiany wpływałyby na wersję działającą “w chmurze”)? Innymi słowy, czy możliwe jest uczynienie z aplikacji sieciowej otwartego systemu, do którego każdy użytkownik będzie mógł wnieść coś nowego, zarówno jeżeli chodzi o elementy samego systemu, jak i różnego rodzaju dodatki?
Pozytywne odpowiedzi na powyższe pytania prowadzą do niezwykle ciekawych zagadnień prawnych, głównie z zakresu prawa do prywatności, ochrony dóbr osobistych i danych osobowych, lecz również ochrony tajemnicy przedsiębiorstwa i innego rodzaju tajemnic. Pytania te należy więc uzupełnić o pytanie: Czy możliwe jest zapewnienie wolności użytkownika w świecie aplikacji sieciowych z jednoczesnym poszanowaniem innych praw użytkowników?
Inspiracją do napisania powyższego felietonu był mój udział w SSOKU09