Какво представлява свободният софтуер с отворен код и как да си компилираме сладкиш
В тази статия ще ни се дояде торта и ще ви разкажа в подробности за своята любов към свободния софтуер с отворен код, ще вникнем в неговата философия и защо той е толкова важен и апетитен в индустрията.
В своята същност свободният софтуер (на английски: Open Source Software или OSS) представлява един необятен океан от компютърни програми и софтуерни компоненти, чиито код е напълно публичен и достъпен за всеки от нас. Когато един софтуерен продукт е с отворен код, това означава, че всеки може да го разглежда, променя и дистрибутира.
I. Първо една сладка аналогия за начинаещите 🍰
Представете си, че имате приятел, който умее да прави невероятни сладкиши. Един ден той решава да сподели своята тайна рецепта със света и така той не само споделя вкусните си сладкиши с всички, но сега получавате и рецептата за тях. Така вече и вие можете да видите как точно се приготвят тези сладкиши и имате свободата да правите промени които са по ваш вкус и дори да споделяте модифицираната от вас рецепта с други хора, които също да опитат и да предложат своите подобрения.
Можем да си представим, че софтуерът представлява нещо като нашите сладкиши, но е съставен от код вместо захар, яйца и брашно.
II. Компилирането на един сладкиш
Добре, значи знаем, че вашият приятел е следвал рецепта за да направи своите сладкиши. По същия начин програмистите създават софтуер. Те пишат даден набор от инструкции, подобно на рецепта, използвайки специален технически език, който компютрите могат да разберат. Тази поредица от инструкции се нарича изходен код (на английски: source code), който вашият компютър следва и изпълнява.
Както следвайки рецептата с всички необходими съставки ние можем да направим нашия сладкиш, така и изходният ни код трябва да бъде трансформиран в нещо, което компютърът може да изпълни като програма. Този процес се нарича компилация.
Когато вашият софтуер е с отворен код, това означава, че рецептата (изходният код) е свободно достъпна за всички. Още преди готвачът (компилаторът) да приготви съставките в готово ястие (изпълнима програма), всеки може да види, модифицира и споделя тази рецепта. Тази откритост и прозрачност позволява и насърчава колаборация, подобрения и иновации от една общност от ентусиасти и професионалисти.
Това прави кода достъпен за всички. Можете да го свалите, използвате и модифицирате за да го нагодите за вашите нужди, без да дадете и стотинка от джоба си. Това също така прави крайната програма прозрачна, предоставяйки прозорец към нейната вътрешна работа.
Тази прозрачност насърчава едно естествено доверие към програмата, защото вие можете да видите точно какво прави тя. Ако вие самите не разбирате от код и не можете да го проверите, не се притеснявайте, има автоматизирани системи и хора от общността, които правят одити на проектите с отворен код.
И така можем да си представим, че има някой, който проверява продуктите за вашия сладкиш, че те са безопасни за консумация и не са с изтекъл срок и, че липсват опасни вещества.
III. Да поговорим малко за история, че надебелях от толкова сладко
Вече хапнахме и имаме сили да проследим корените на свободния софтуер чак до ранните дни на компютърните изчисления, но терминът “open source” който познаваме днес се е популяризирал чак към края на XX век. Нека направим един кратък обзор на историята зад свободния софтуер през втората половина на миналия век:
Ранните дни на компютърните изчисления (1950-1970):
През ранните години на компютрите, софтуерът често е вървял ръка за ръка със своя хардуер (конкретните компютърни системи, за които кодът е бил предназначен). Това е бил фундаментален аспект на компютърната култура тогава.
Доминиращият затворен софтуер (1960-1980):
Със съзряването на софтуерната индустрия, софтуерът със затворен код е бил по-широко разпространен. Компаниите са виждали кода си като ценен актив, който често е бил тайна за да могат да запазят своето конкурентно предимство на пазара.
Ричард Столман и движението за свободен софтуер (80-те години):
Движението за свободен софтуер, водено от брилянтния програмист и активист Ричард Столман се е появило през 80-те години на ХХ в. Той е създал Фондацията за свободен софтуер през 1985 година. Неговото движение набляга върху важността на свободата крайните потребители да могат да изпълняват софтуерни програми на своите компютри, както и да достъпват техния код и да го модифицират.
Столман въвежда концепцията “copyleft”, чрез GNU General Public License (GPL) (на български: Общ публичен лиценз на GNU), която уверява, че дериватите на даден модифициран код също ще останат свободни и достъпни. Тук навлизаме в дълбоките води на авторското право и интелектуалната собственост, за които обаче не съм готов да навлизам в подробности.
Бонус точки от Уикипедия (Линк)
Copyleft (от английски) е непреводима на български език игра на думи с понятието copyright (традиционно превеждано като „авторско право“), която описва практиката авторите да се отказват от част от своите права и да освобождават произведенията си, като същевременно изискват същите свободи да се запазят и за всички копия и производни версии надолу по веригата. Конкретно по отношение на свободния софтуер, Фондацията за свободен софтуер дефинира понятието като „правилото, че когато разпространявате програмата, не може да добавяте ограничения, за да откажете на другите хора основните свободи“ да я използват, изучават, променят и разпространяват.
Инициативата OSI (Open Source Initiative) и терминът “Отворен код” (1998):
През 1998 година терминът “отворен код” е официално приет по време на стратегическа сесия в Пало Алто, Калифорния, където Инициативата OSI официално е стартирана като организация с нестопанска цел, която да подпомага, популяризира и опазва софтуера с отворен код.
OSI публикува документа Open Source Definition (на български: определение за свободен код), който може да определи дали даден софтуерен продукт може да получи одобрение, че той в действителност е свободен софтуер и отговаря на определението като такъв.
Терминът е избран, за да подчертае практическите ползи от споделянето на source кода и изграждането на общност без идеологическите конотации свързани с термина “безплатен софтуер”, тъй като тук става въпрос за свобода, а не цена.
Смятам, че на български език нямаме този проблем, защото можем да преведем думата “free” както като “свободен”, така и като “безплатен”, докато на английски е необходимо термина да се разграничава с фрази като “free as in freedom, not free as in free beer” (“free” като свобода, а не “free” като безплатна бира).
Операционната система Linux и възходът на софтуера с отворен код (1990 – днес)
Финландският програмист Линус Торвалдс създава Linux ядрото (на английски: Linux kernel) през 1991г. и го публикува с лиценза GPL. Linux ядрото, в комбинация с компоненти от операционната система GNU, която Ричард Столман по-рано разработва, съставя една завършена и влиятелна операционна система с отворен код.
Успехът на Linux и други проекти с отворен код се оказа сериозно предизвикателство пред господстващия частен платен софтуер, което доведе до широкото му разпространение както в сървърната, така и в средата на домашните компютри.
Чувал съм хора, които са ползвали Linux като алтернатива на добре познатия Windows да се оплакват, че някои частни и платени програми със затворен код като Word, Excel, Photoshop не могат да бъдат изпълнени на техния компютър с Linux, но тук държа да отбележа, че това не е проблем на Linux, а на компаниите, които разработват този софтуер.
Естествено, че е в интерес на компаниите и е икономически изгодно за тях да публикуват софтуер само за определени операционни системи със затворен код, за да насърчават потребителите да използват тях, вместо безплатни и свободни алтернативи като Linux.
Разпространението на цялостната екосистема от свободен софтуер с отворен код (Ранните години на XXIв. до сега)
От началото на XXI в. станахме свидетели на разпространението на свободен софтуер в различни области, включително уеб разработка (напр. Apache, MySQL), управление на съдържание (напр. WordPress, Drupal) и мобилни платформи като Android.
Големите компании, виждайки големите предимства на отворения код, започнаха да използват проекти с отворен код и да допринасят към него. Платформи като GitHub се превърнаха в основни центрове за съвместно развитие и споделяне на програмен код сред начинаещи, ентусиасти и професионалисти.
IV. За финал
В проекти с отворен код можете да срещнете най-различни хора допринасящи към тях. Някои такива проекти съществуват от месеци, други от десетилетия. Някои от тези хора получават заплащане за труда си, други го вършат от добра воля. Някои тепърва започват в технологичната индустрия и се нуждаят от място, където да получат чувство за принадлежност, други са в индустрията от десетилетия.
Свободният и отворен софтуер не е просто код. Той е философия. Той е прозрачна и открита колаборация в една отворена общност. Той е място, където невероятният човешки интелект се впряга да работи за едно общо благо и по-добро бъдеще.
П.П.
Моят блог, който четете в момента, е пример за свободен софтуер с отворен код, разработен от https://writefreely.org/. Вие също можете да подкрепите този проект като допринесете към него с код, идеи, преводи, тестване или финансово, както правя аз като се възползвам от платената възможност от write.as да публикувам статии с този софтуер, без да се налага да го инсталирам, хоствам и поддържам на мой сървър вкъщи или другаде.