Какво е софтуер с отворен код и защо е от значение?
Влюбените често описват програмите като „отворен код“ или „свободен софтуер“. Ако се чудите какво точно означават тези термини и защо са важни, прочетете. (Не, "свободен софтуер" не означава просто, че можете да го изтеглите безплатно.)
Независимо дали дадена програма е с отворен код или не, има значение само за разработчиците, но в крайна сметка е от значение и за потребителите. Софтуерните лицензи с отворен код дават на потребителите свободи, които иначе не биха имали.
Кредит за изображението: Quinn Dombrowski на 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 и друг софтуер с отворен код. Ядрото на OS X на Apple - и следователно iOS - също е изградено на базата на отворен код. Valve работи яростно за пренасянето на своята платформа за игри Steam към Linux, тъй като това ще им позволи да създадат свой собствен хардуер и да контролират собствената си съдба по начин, който не е възможен в Windows.
Това не е изчерпателно описание - цели книги са написани по този въпрос - но сега трябва да имате по-добра представа за това какво всъщност е софтуерът с отворен код и защо е полезен за вас.