Какво представлява софтуерът с отворен код и защо има значение?

Отрепки често описват програмите като „с отворен код“ или „безплатен софтуер“. Ако се чудите какво точно означават тези термини и защо имат значение, прочетете нататък. (Не, „безплатен софтуер“ не означава само, че можете да го изтеглите безплатно.)

Дали дадена програма е с отворен код или не, няма значение само за разработчиците, в крайна сметка има значение и за потребителите. Лицензиите за софтуер с отворен код дават на потребителите свободи, които иначе не биха имали.

Кредит за изображение: Куин Домбровски на Flickr

Определението за отворен код

Ако дадена програма е с отворен код, нейният изходен код е свободно достъпен за потребителите. Потребителите му - и всеки друг - имат възможността да вземат този изходен код, да го модифицират и разпространяват свои собствени версии на програмата. Потребителите също имат възможността да разпространяват толкова копия на оригиналната програма, колкото искат. Всеки може да използва програмата за всякакви цели; няма лицензионни такси или други ограничения върху софтуера. OSI има по-подробна дефиниция на „отворен код“ на своя уебсайт.

Например Ubuntu Linux е операционна система с отворен код. Можете да изтеглите Ubuntu, да създадете колкото искате копия и да ги дадете на приятелите си. Можете да инсталирате Ubuntu на неограничено количество от вашите компютри. Можете да създавате ремикси на инсталационния диск на Ubuntu и да ги разпространявате. Ако сте били особено мотивирани, можете да изтеглите изходния код за програма в Ubuntu и да го модифицирате, създавайки своя собствена персонализирана версия на тази програма - или на самата Ubuntu. Всички лицензи с отворен код ви позволяват да направите това, докато лицензите с отворен код ви налагат ограничения.

Обратното на софтуера с отворен код е софтуерът със затворен код, който има лиценз, който ограничава потребителите и задържа изходния код от тях.

Firefox, Chrome, OpenOffice, Linux и Android са някои популярни примери за софтуер с отворен код, докато Microsoft Windows е може би най-популярният софтуер със затворен код там.

Отворен код срещу свободен софтуер

Приложенията с отворен код обикновено са свободно достъпни - макар че нищо не пречи на разработчика да таксува за копия на софтуера, ако те позволят преразпределение на приложението и неговия изходен код след това.

Това обаче не се отнася до „свободен софтуер“. „Безплатно“ в свободния софтуер означава „безплатно като в свобода“, а не „безплатно като в бира“. Лагерът за свободен софтуер, воден от Ричард Столман и Фондацията за свободен софтуер, се фокусира върху етиката и морала на използването на софтуер, който може да бъде контролиран и модифициран от потребителя. С други думи, лагерът за свободен софтуер се фокусира върху потребителските свободи.

Ричард Столман. Изображение от Fripog на Flickr.

Софтуерното движение с отворен код е създадено, за да се съсредоточи върху по-прагматични причини за избора на този тип софтуер. Защитниците с отворен код искаха да се съсредоточат върху практическите ползи от използването на софтуер с отворен код, който да се хареса повече на бизнеса, а не на етиката и морала.

В крайна сметка както защитниците с отворен код, така и свободния софтуер разработват един и същ тип софтуер, но не са съгласни по отношение на съобщенията.

Видове лицензи

Има много различни лицензи, използвани от проекти с отворен код, в зависимост от това кои разработчици предпочитат за тяхната програма.

GPL или GNU General Public License се използва широко от много проекти с отворен код, като Linux. В допълнение към всички горепосочени дефиниции за отворен код, условията на GPL уточняват, че ако някой модифицира програма с отворен код и разпространява производно произведение, той също трябва да разпространява изходния код за своето производно произведение. С други думи, никой не може да вземе код с отворен код и да създаде програма с отворен код - той трябва да пусне промените си обратно в общността. По тази причина Microsoft посочи GPL като „вирусен“, тъй като принуждава програми, които включват GPL код, да пускат свой собствен изходен код. Разбира се, разработчиците на програмата могат да изберат да не използват GPL код, ако това е проблем.

Някои други лицензи, като BSD лиценз, поставят по-малко ограничения за разработчиците. Ако дадена програма е лицензирана под лиценза BSD, всеки може да включи изходния код на програмата в друга програма. Те не трябва да пускат промените си обратно в общността. Някои хора виждат, че това е дори по-„безплатно“ от лиценза GPL, тъй като дава на разработчиците свободата да включат кода в собствените си програми с затворен код, докато някои хора го смятат за по-малко „безплатно“, защото отнема права от крайните потребители на производната програма.

Предимства за потребителите

Това не са всички сухи, маловажни неща, които имат значение само за разработчиците. Най-очевидното предимство на софтуера с отворен код е, че той може да се ползва безплатно. Примерът с Ubuntu Linux по-горе прави това ясно - за разлика от Windows, можете да инсталирате или разпространявате колкото искате копия на Ubuntu, без ограничения. Това може да бъде особено полезно сървъри - ако настройвате сървър, можете просто да инсталирате Linux на него. ако настройвате виртуализиран клъстер от сървъри, можете лесно да дублирате един Ubuntu сървър. Не е нужно да се притеснявате за лицензирането и колко екземпляра на Linux можете да стартирате.

Програмата с отворен код също е по-гъвкава. Например новият интерфейс на Windows 8 разочарова много дългогодишни потребители на Windows за настолни компютри. Тъй като Windows е с затворен код, никой потребител на Windows не може да използва интерфейса на Windows 7, да го модифицира и да го накара да работи правилно на Windows 8. (Някои потребители на Windows се опитват, но това е усилен процес на обратно инженерство и модифициране на двоични файлове. )

Когато работен плот на Linux като Ubuntu въведе нов интерфейс за работния плот, на който някои потребители не са фенове, потребителите имат повече възможности. Например, когато GNOME 3 беше пуснат, много потребители на настолни компютри на Linux бяха еднакво изключени. Някои отнесоха кода до старата версия, GNOME 2, и го модифицираха, за да работи на най-новите дистрибуции на Linux - това е MATE. Някои пренесоха кода в GNOME 3 и го модифицираха, за да работи по предпочитан от тях начин - това е Cinnamon. Някои потребители току-що преминаха към съществуващите алтернативни настолни компютри. Ако Windows беше с отворен код, потребителите на Windows 8 щяха да имат по-голям избор и гъвкавост. Просто погледнете CyanogenMod, популярна, ръководена от общността дистрибуция на Android, която добавя функции и поддръжка за нови устройства.

Софтуерът с отворен код също позволява на разработчиците да „застанат на раменете на гиганти“ и да създадат свой собствен софтуер. Станете свидетел на Android и Chrome OS, които са операционни системи, изградени на Linux и друг софтуер с отворен код. Ядрото на Apple OS X - и за това iOS - също е изградено върху код с отворен код. Valve яростно работи по пренасянето на своята платформа за игри Steam към Linux, тъй като това ще им позволи да създадат свой собствен хардуер и да контролират собствената си съдба по начин, който не е възможен за Windows на Microsoft.

Това не е изчерпателно описание - по тази тема са написани цели книги - но сега трябва да имате по-добра представа за това какво всъщност е софтуерът с отворен код и защо е полезен за вас.