Гейките често описват програмите като "отворен код" или "свободен софтуер". Ако се чудите точно какво означават тези термини и защо те имат значение, прочетете нататък. (Не, "безплатен софтуер" не означава само, че можете да го изтеглите безплатно.)
Дали дадена програма е с отворен код или не, не е от значение само за разработчиците, то в крайна сметка е от значение и за потребителите. Софтуерните лицензи с отворен код дават на потребителите свобода, която няма да имат.
Image Credit: Куин Домбровски на Flickr
Ако дадена програма е с отворен код, нейният изходен код е свободно достъпен за потребителите си. Неговите потребители - и всеки друг - имат възможността да приемат този изходен код, да го променят и да разпространяват собствените си версии на програмата. Потребителите също така имат възможност да разпространяват толкова копия на оригиналната програма, колкото искат. Всеки може да използва програмата за всяка цел; няма лицензионни такси или други ограничения върху софтуера. OSI има по-подробно определение за "отворен код" на своя уебсайт.
Например, Ubuntu Linux е операционна система с отворен код. Можете да изтеглите Ubuntu, да създадете толкова копия, колкото искате, и да ги дадете на вашите приятели. Можете да инсталирате Ubuntu на неограничен брой компютри. Можете да създавате ремикси на инсталационния диск на Ubuntu и да ги разпространявате. Ако сте били особено мотивирани, можете да изтеглите изходния код за дадена програма в Ubuntu и да я промените, като създадете своя персонализирана версия на тази програма - или самата Ubuntu. Лицензите с отворен код ви позволяват да направите това, докато лицензите с ограничен източник ви налагат ограничения.
Обратното на софтуера с отворен код е софтуер с затворен код, който има лиценз, който ограничава потребителите и запазва изходния код от тях.
Firefox, Chrome, OpenOffice, Linux и Android са популярни примери за софтуер с отворен код, докато Microsoft Windows е може би най-популярният софтуер от затворен код.
Приложенията с отворен код обикновено са свободно достъпни - въпреки че няма нищо, което да спира разработчика да зарежда копия на софтуера, ако позволи преразпределение на приложението и неговия източник след това.
Това обаче не се отнася до "свободния софтуер". Свободният софтуерен лагер, ръководен от Ричард Столман и Фондацията за свободен софтуер, се фокусира върху етиката и морала на използването на софтуер, който може да бъде използван като свободен софтуер, контролирани и модифицирани от потребителя. С други думи, свободният софтуерен лагер се фокусира върху свободите на потребителите.
Ричард Столман. Изображение от Fripog на Flickr.
Софтуерното движение с отворен код е създадено, за да се съсредоточи върху по-прагматични причини за избора на този тип софтуер. Застъпниците с отворен код искаха да се съсредоточат върху практическите ползи от използването на софтуер с отворен код, който би бил по-скоро полезен за бизнеса, отколкото за етиката и морала.
В крайна сметка както защитниците на отворен код, така и свободните софтуерни програми развиват същия тип софтуер, но те не са съгласни с изпращането на съобщения.
Има много различни лицензи, използвани от проекти с отворен код, в зависимост от това, кои предпочитат програмистите за тяхната програма.
Общият публичен лиценз на GPL или GNU се използва широко от много проекти с отворен код, като 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 и го промениха, за да работят по начин, по който предпочитат - това е канела. Някои потребители просто превключиха на съществуващи алтернативни настолни компютри. Ако Windows е с отворен код, потребителите на Windows 8 ще имат по-голям избор и гъвкавост. Просто вижте CyanogenMod - популярно разпространение на Android, което се основава на общността, което добавя функции и поддръжка за нови устройства.
Софтуерът с отворен код позволява на разработчиците да "стоят на раменете на гиганти" и да създават собствен софтуер. Свидетели на Android и Chrome OS, които са операционни системи, изградени върху Linux и друг софтуер с отворен код. Ядрото на OS X на Apple - и за него iOS - бе построено и върху код с отворен код. Valve работи с яростно пренасяне на платформата си за игри на Steam на Linux, тъй като това ще им позволи да създадат свой собствен хардуер и да контролират собствената си съдба по начин, който не е възможен в Windows на Microsoft.
Това не е изчерпателно описание - на тази тема са написани цели книги, но сега би трябвало да имате по-добра представа за това, какъв софтуер с отворен код действително е и защо е полезен за вас.