И въпреки всичко, кое и какво мотивира програмистите да разработват свободен софтуер? Лицензът ДжиПиЕл защитава потребителите, а не производителите на софтуер. Очевидно компаниите не го харесват, защото няма как да правят бизнес и съответно пари чрез него. Все пак, една фирма съществува, за да развива бизнес и да прави пари. В пълен противовес на това, програмистите го харесват, разработват и разпространяват софтуер под лиценза ДжиПиЕл.
Софтуерът е интелектуален продукт. Софтуерът не може да се пипне. Софтуерът представлява поредица от нули и единици, които се изпълняват от компютъра. Софтуерът не е материален продукт. При него няма триене, стареене на материала и изхабяване. Една програма както работи днес, така ще работи и утре, така ще работи и след 100 години. Не бъркайте компактдиска със софтуера. Компактдискът е обикновен материален носител, който струва около 0.50 лв. Софтуерът може да се разпространява и в Интернет без видим материален носител.
Други интелектуални продукти това са: книги, филми, музика, клипове, телевизионни и радио предавания. Всичко, което може да се запише в цифров вид, е интелектуален продукт. Разбира се, една книга има разходи по печат, оформление, подвързия и пр. Но съдържанието на книгата остава интелектуален продукт. Хартията е просто носител, както в случая със софтуера и компактдиска. По същия начин може да се разглеждат и филмите, и песните, и клиповете. Всички те могат да се разпространяват в Интернет или на различни материални носители.
Разликата между интелектуалните и материалните продукти е повече от ясна. Интелектуалните продукти имат цена на първоначално производство и после разходите за разпространение и дублиране са нищожни. Един празен компактдиск струва 0.50 лв. На него могат да се запишат огромно количество програми или доста часове музика, или един филм. Материалните продукти освен разходите за проектиране, включват разходите за материали и труд, които са необходими да се произведе (сглоби) едно копие на съответния материален продукт. Примерно, един автомобил има разходи по проектиране, които са единични. Т.е. инженерният проект (дизайнът) на автомобила се извършва веднъж. Самото проектиране отново се води интелектуален продукт, но когато започнем да произвеждаме автомобили, всяка отделна бройка има разходи за материали и разходи за труд, които са доста високи и няма как да бъдат избегнати.
Разликите между софтуера и другите интелектуални продукти са, че повечето от тях ги ползваме само по един път. Да прочетем една книга веднъж, дваж или три пъти. Най-много да гледаме един филм 3-4 пъти. Да слушаме една песен 100 пъти. Радио и телевизионните предавания обикновено ги слушаме или гледаме само по веднъж. За разлика от това, ние ползваме някои програми почти ежедневно, по осем часа на ден. Фактически ние работим с тях. Повечето сървъри в Интернет трябва да работят 24 часа на ден, седем дена в седмицата, без прекъсване.
Друга основна разлика между софтуера и останалите продукти е, че има една специална програма, която се нарича операционна система. Операционната система (ОС) е специален вид софтуер, който управлява ресурсите на компютъра и се явява интерфейс (преводач) между останалите програми и хардуера. Програмите, които работят на тази ОС, обикновено не ползват директно хардуерните устройства - клавиатура, мишка, диск, флопи, монитор, принтер и пр. Те ползват функциите на ОС за работа с тези устройства. Което означава, че ако ОС си промени функциите за работа с хардуерните устройства, останалите програми няма да могат да работят. Или ще трябва и те да се преработят, за да ползват новите функции.
В Глава 1, „Програма, изходен код и машинен код“ разгледахме програмата калкулатор. Какво ни трябваше за да напишем тази програма? Нека да изброим необходимите неща:
Текстов редактор, за да въведем изходния код. Това е вид програма.
Транслатор на езика Паскал, за да преведем кода на разбираем за компютъра език. Това също е програма.
Горните две програми, както и програмата калкулатор, за да работят, изискват операционна система. Операционната система е вид програма (софтуер), на която работят всички останали програми.
Знания да се напише програмата - квалифицирани кадри за изпълнение на задачата.
Както виждате, за производството на софтуер трябва софтуер. Парадоксално или не, това е истината. Изключваме компютърът като необходимо средство за производство на софтуер. В този случай компютрите и Интернет се разглеждат като необходима инфраструктура за съществуването на софтуера. Нещо като автомобилостроенето и пътищата (инфраструктурата). За развитието на автомобилостроенето са необходими пътища. Въпреки че това сравнение не е много точно, защото връзката между хардуера (компютрите) и софтуера (програмите) е много по тясна, отколкото зависимостта между пътищата и автомобилостроенето.
Да обобщим, за производството на софтуер е необходим софтуер. От което следва, че производителите на софтуер са и потребители. От което стигаме до въпроса „Кои права искате да Ви бъдат защитени, тези на производител или тези на потребител?“ Отговорът, мисля, че е ясен. Ако сте голяма компания, производител на софтуер, най-вероятно ще искате правата на производителя да са защитени. Обаче, ако сте малка компания или независим разработчик, или работите в университет, или сте студент, ще искате правата на потребителя да бъдат защитени.
Пряка печалба е когато получавате пари за продажбата на нещо или извършването на услуга. Софтуерните фирми произвеждат софтуер и го продават. Т.е. те имат пряка печалба от тази дейност.
Косвена печалба е обратно на пряка печалба. Не печелите пари директно, а косвено спестявате някои и друг лев. Именно косвената печалба стимулира програмистите да разработват свободен софтуер.
Нека да разгледаме следния случай. Въпреки, че е чисто теоретичен, на практика нещата стоят точно по този начин.
Представете си, че има 1000 човека. Всеки дава по 1 лв. Общо имаме 1000 лв. или някакъв материален продукт за 1000 лв. Понеже продуктът е материален, само един от участниците в процеса може да го ползва в даден момент.
Сега да си представим, че тези 1000 човека решават да напишат една програма. И всеки написва по един модул, който се състои от по 5-10 реда код. Т.е. всеки дава труд за 1 лв. Накрая имаме една програма, за която е изразходван труд за 1000 лв. Нека да приемем, че съществува подобна програма със затворен код и нейната цена е 20 лв. За съжаление, ценообразуването на софтуер е малко сложно, то зависи от различни фактори и е трудно да се каже колко е пазарната цена на въпросната програма. Но ако приемем, че е 20 лв., това означава, че програмистите, участници в процеса, са спестили 19 лв. Защото софтуерът е интелектуален продукт и въпросната програма, която са разработили, може да бъде изтеглена по Интернет от всеки един от тях. За разлика от материалният продукт, който може да бъде ползван само от един човек, програмата може да бъде ползвана от всички участници в процеса на разработка. И още повече, тази програма може да бъде ползвана от всички хора в Света, независимо дали са участвали или не в процеса на разработка. Просто тя няма да се изхаби, няма да свърши, ще работи вечно и няма нужда след 3 години да плащате нови лицензни такси.
Нека да разгледаме един чисто практически пример, който описва горната теоретична ситуация.
Навярно повечето от читателите знаят, че аз съм автор на база с думи за проверката на правописа под офис пакета ОпънОфис орг (OpenOffice.org - съкратено ООо). Който не знае, може да посети проекта БГ Офис. Някъде в началото на 2002 година излезе свободният офис пакет ОпънОфис орг, който привлече вниманието ми, защото наложително ми трябваше текстообработваща програма с поддръжка на проверка на правописа на български език. По това време на пазара се предлагаше проверка на правописа от фирмата Датекс. Ако не ме лъже паметта, цената на пакета бе около 100 лв. Пакетът на Датекс работеше на Майкрософт Уърд (Microsoft Word), който струваше около 1000 лв. (цената е на целия Майкрософт Офис, защото Уърд не можеше да се купи отделно). И както знаете, Майкрософт Офис работи само на Уиндоус, който струваше около 200 лв. По това време аз бях щастлив потребител на Линукс и нямах нужда от закупуването на Майкрософт Уиндоус. Още повече, че току що беше излязъл и офис пакетът ОпънОфис орг, който също можеше да се изтегли безплатно. От една страна, мога да ползвам платено решение, което струва около 1300 лв. От друга стана, имам безплатна операционна система и безплатен офис пакет, но пък нямам проверка на правописа на български език за това решение. Реших, че мога да спестя 1300 лв. и да създам свободна база от думички за проверка на правописа. Занимавам се професионално с програмиране и имам достатъчно знания да създам такъв продукт. Речено, сторено.
Докато създам първата версия ми отне около 2 месеца по 1-2 часа труд на ден в свободното ми време. Версията нямаше много думи, около 30 000. Но ми отне време докато дефинирам и създам структурата и формата на данните. След това развитието на проекта вървеше доста по-лесно и бързо. На няколко пъти добавях по няколко хиляди думи. Последната версия на проекта съдържа около 65 000 думи в основна форма, което прави малко над един милион словоформи. Поради натурата на свободния софтуер, аз трябваше да създам само база от думи. Алгоритмите за проверка и генериране на предложенията за замяна съществуват в съответните програми. Днес имаме проверка на правописа на български езика на почти всички свободни програми, които поддържат тази функционалност. Става въпрос за офис пакета ОпънОфис орг, за браузъра Мозила (Mozilla), за двата свободни модула за проверка на правописа Испел (Ispell) и Аспел (Aspell). С развитието на тези продукти се развива и проверката на правописа на български език. До момента над 10 човека са помогнали с идеи и/или труд на проекта. Като допълнение, всеки може да си нагажда проверката на правописа да отговаря на неговите нужди и да я ползва в комбинация със софтуера, с който иска, защото тя е свободен софтуер. От другата страна имаме платени продукти със затворен код, чиято първоначална цена е 1300 лв. и евентуални лицензионни такси на всеки три години.
Мисля, че с този пример се илюстрира много точно движещата сила на свободния софтуер и мотивацията на авторите му. Датекс разработва техния пакет за проверка на правописа с цел да го продава и от тези продажби печели пари (пряка печалба). Моята основна дейност е свързана с програмиране, което също така включва неприятните задачи по писане на задания, спецификации, документации, ръководства за потребителя и пр. Аз печеля пари от нещо друго. Но решавам, че мога да спестя някои и друг лев, ако си разработя собствена проверка на правописа, която да я ползвам в основната си дейност. В този случай аз се явявам производител и потребител на софтуера, който съм разработил. Аз създавам проверката на правописа не да я продавам и да печеля от продажбата, а за да я ползвам. За да си подобря производителността на труда и качеството на документите, които създавам.
Нека да разгледаме още един пример. Става въпрос за сървъра Апаче (Apache). Положението при него е същото. Авторите на Апаче са хора свързани директно с Интернет - системни администратори, администратори на уеб сайтове, доставчици на Интернет, компании за хостване на уеб сайтове и пр. Те не правят този сървър да го продават и да печелят пари от него. Те го създават, за да го ползват. Основната им дейност е доставката на услуги, свързани с Интернет. Според изследванията на НетКрафт (Netcraft) сървърът Апаче се ползва на 70% от сървърите в Интернет. Майкрососфт имат 20% и другите сървъри са по 1%. Ако предположим, че цената на един такъв сървър е 500 долара, ще получим, че са спестени около 16 милиарда долара (32280582*500 = 16140291000).
Нека да разгледаме класическия пример с Линус Торвалдс. Преди 2-3 години излезе филмът „Революционната операционна система“ (Revolution OS). В него той споделя, как и защо е започнал работа по Линукс. Основната причина е парите. Линус по това време е бил студент в Университета Хелзинки и там са ползвали компютри Сън, заредени с операционната система Юникс (Сън Соларис). Един такъв компютър по онова време струваше около 8 000 долара. По същото време се появиха и персоналните компютри с процесор Интел (Intel), които струваха около 2 000 долара. Проблемът е, че липсваше добра ОС за тези компютри. По това време те се разпространяваха с ДОС (Дискова операционна система), която няма голяма част от функционалността на Юникс. Най-много се усещала липсата на поддръжка на мрежа. Линус не можел да се включи към Интернет с ДОС. Поради тази причина, той започва работа по Линукс и след 8 месеца получава работеща ОС. В интервюто Линус заявява „След осем месеца работа по проекта имах два пъти по-бърз компютър на една четвърт от цената на Сън.“
Нека да разгледаме още един пример. В този случай Правителството на Германия поръчва създаването на свободен софтуер, лицензиран под ДжиПиЕл. Става въпрос за проекта Kroupware. Това е софтуер за синхронизиране на работата в екип. Идеята е да се създаде свободен, сигурен и по-евтин заместител на наличните продукти - най-вече на продукта Майкрософт Ексчейндж (Microsoft Exchange). Основните причини са парите и сигурността. Немският бизнес плаща годишно няколко милиарда Евро за софтуер. Защо тези пари да не останат в Германия. Повече подробности за проекта и начина на финансиране могат да се намерят на следния адрес http://www.kroupware.org/faq/faq.html.