Отвореният код не е бъдещето. Той е настоящето

23.06.2021 948 2

В продължение на десетилетия чуваме как софтуерът с отворен код (Open source software – OSS) е бъдещето на ИТ индустрията. Това е бъдеще, което сякаш така и не се случва. Но всъщност вече се е случило. Проектите с отворен код вече са много разпространени и популярността им се увеличава със стабилно темпо от много време.

Проучване на софтуерната компания Aiven показва, че почти всички софтуерни разработчици възприемат отворения код като „бъдещето на програмирането“. Те очакват OSS да се превърне в постоянен елемент от ежедневната им работа. Всъщност, това вече е факт в много компании, включително ИТ гиганти. Aiven също така казва, че OSS носи със себе си „два пъти повече“ предимства спрямо негативите. Преди да навлезем в детайли, да си припомним основите на софтуера с отворен код.

Какво е софтуер с отворен код

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

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

Важно е да се уточни, че отворен код, не означава задължително „безплатно“ или „прави всичко, каквото поискаш“. И двете са напълно възможни, но дали са налични зависи от автора на съответния проект. OSS обикновено идва с лиценз, който дефинира правилата, които всеки, който реши да използва съответния програмен код, трябва да спазва. Тези правила може да варират в голяма степен в зависимост от всеки проект.

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

Лицензите за отворен код обикновено имат за основна цел да запазят смисъла и духа на OSS. Те може да се сравнят с Creative Commons лицензите, които се използват за онлайн съдържание например. Стига да не се опитвате просто да копирате нечий друг код, да го представите за свой и да го продавате, всичко ще е наред.

Защо OSS е от значение

Първоначално може да изглежда, че използването на OSS вместо „затворен“ софтуер противоречи на логиката. Защо някой би искал всеки да има достъп до програмния код и да намери слабости, които да използва, за да го хакне. Би било много по-добре да се използва лицензиран софтуер, който е много по-строго контролиран и всичко се наблюдава от разработчика, нали? Не точно.

Когато става дума за лицензиран софтуер, само авторът и оторизирани от него партньори имат право и възможност да копират, модифицират или преглеждат кода по какъвто и да е начин. Това означава, че потребителите и клиентите могат само да съобщят за проблеми, но не и да се опитват да ги решават сами. А поправянето им може да отнеме време. Много време. И ако софтуерът е стар и вече не се поддържа, тогава малшанс, ще трябва да живеете с проблема. А винаги има и вероятност разработчикът да откаже да го поправи поради някаква причина.

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

Софтуерът с отворен код има по-големи последствия от това. Той носи ползи и в глобален аспект. Много от най-популярните и/или важни технологии по света разчитат на отворен код. Сред тях са операционната система Linux, Apache Web Server, който е в основата на огромна част от Интернет и др. Практически и Android е с отворен код, но там има някои определени нюанси, които определят наличието му като платформа с отворен код и като версията с услугите на Google, която познаваме.

Много от облачните услуги използват технологии, които също са базирани на отворен код. Като цяло популярността на OSS расте навсякъде, включително и при големите корпорации и правителствата. Чрез него те получават повече прозрачност и може разходите за поддръжка да са по-малко.

Още предимства и недостатъци на отворения код

Докладът на Aiven изтъква и някои допълнителни детайли за предимствата на OSS. Например фактът, че ползващите отворен код се радват на значително по-малка зависимост от конкретен разработчик или производител. Така те нямат притеснение, че ще бъдат „заключени“ в екосистемата на определена компания и ще зависят от нея. Прозрачността, бързото оправяне на бъговете и възможността да си доработват и добавят допълнителни функции също са посочени като предимствата на OSS от 200 британски разработчици, които са участвали в доклада. Всички те работят в компании, предлагащи услуги в сферата на базите данни и клауд.

Разбира се, няма да е честно да се концентрираме само върху положителните страни. Отвореният код има и своите негативи. Те са свързани най-вече с достъпността за потребители и практичността. Разработчиците на затворен, лицензиран софтуер отделят доста време и усилия, за да направят своя софтуер лесен за инсталиране, конфигуриране и използване (като цяло). Интуитивните интерфейси също помагат. OSS от друга страна се концентрира главно върху функциите и практичността и удобствата често остават на заден план, което може да направи използването на такива приложения по-трудно за служителите без допълнително обучение.

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

Феновете на OSS са категорични, че предимствата са повече от недостатъците при това със значителен превес. Това дава на компаниите допълнителна гъвкавост, която им трябва, за да постигат целите си.

Отвореният код е тук и ще остане

Много нови проекти и технологии вече от самото начало биват започвани с отворен код. Мрежовите технологии и интернет платформите често са сред най-големите привърженици на този стандарт. Робърт Хьофнагел, който е европейският представител на фондацията Open Compute Project, например казва, че отвореният код ще бъде ключова част и от дейта центровете.

Той дава три конкретни причини. Първата е мрежовият ефект – всеки може да започне свой проект с отворен код, което означава огромно поле за нови идеи и възможности. Вече има и много ИТ гиганти и организации, които също се присъединяват към отворения код и развиват такива проекти. В резултат се увеличава популярността на този подход и той достига до повече хора и фирми. Всички виждат, че отвореният код е подкрепян от големи имена, което води и до увеличаването на доверието в него.

Следва и гъвкавостта. Open compute projects (OCP) позволяват създаването на специфичен за дадена задача хардуер, който е оптимизиран за конкретна цел. Така може да се създават тематични дейта центрове или услуги, които да са посветени на много специфични задачи. Подобен „отворен“ хардуер също означава и по-малък риск от „заключване“ с един производител.

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

Какво е нужно, за да използвате отворен код

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

Очевидно е, че отвореният код ще остане сред нас. Така, че е добра идея да започнете да го внедрявате в работния си процес, ако вече не сте го направили. Ако искате да използвате софтуер с отворен код, просто трябва да го намерите, изтеглите и инсталирате. Но ако сме честни, това не е достатъчно. Смисълът на отворения код е общността. Затова платформи като GitHub са толкова популярни. Смисълът е да се вземе участие в проектите на другите. Да се помага и да се правят добавки към други проекти е ключов елемент от общността на отворения код.

Има много възможности за това. Може да тествате код, да го верифицирате, да дописвате програмен код, да добавяте функции, да извършвате регулярна поддръжка или да пишете документацията. Практически всичко, което ви е интересно и имате желание, може да бъде поето от вас. Или пък ако искате да се научите на ново умение. Участието в такива проекти е чудесен начин да подобрите уменията си по програмиране, да създадете нови контакти и възможности.

Направете си собствен проект

Може да започнете собствен OSS проект и да потърсите помощта на други, като изградите общност около него.

Има няколко неща, които трябва да обмислите, за да направите атрактивен проект с отворен код, който да привлича внимание. Най-важното е прозрачността. Бъдете откровени за целите на проекта и условията на ползване. Направете подробен ReadMe файл, в който описвате допълнителните изисквания и нужди на проекта, както и техническите детайли.

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

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

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

2 отговори на “Отвореният код не е бъдещето. Той е настоящето”

รถพยาบาล

… [Trackback]

[…] Read More on that Topic: blog.neterra.cloud/bg/otvoreniyat-kod-ne-e-badeshteto-toy-e-nastoyashteto/ […]

ร้านดอกไม้อารีย์

… [Trackback]

[…] Find More to that Topic: blog.neterra.cloud/bg/otvoreniyat-kod-ne-e-badeshteto-toy-e-nastoyashteto/ […]

Вашият коментар

Вашият имейл адрес няма да бъде публикуван.