Софтуер с отворен код

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене

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

Дефиниция за отворен код[редактиране | edit source]

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

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

2. Изходен (сорс) код. Програмата трябва да съдържа изходния код и трябва да позволява разпространението му, както и в компилирана форма (ако има такава възможност). Ако под някаква форма продуктът не се разпространява заедно с кода му, то трябва да има инструкции откъде може да се свали от Интернет без заплащане. Сорс кодът трябва да бъде в такава форма, че всеки да може да го променя за своите нужди. Доставянето на маскиран (обфускиран) код или на кодиран код не се допуска.

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

4. Цялостност на авторския код. – Лицензът може да забранява разпространението на сорс кода в модифициран вид само ако лицензът позволява добавянето на пач файлове заедно със сорс кода с цел модифициране на програмата по време на изпълнението ѝ (компилирането). – Лицензът също трябва да позволява разпространението на софтуера, създаден по този начин. – Лицензът може да изисква версия с допълнително писания код да носи различно име или номер от тази на оригиналния продукт.

5. Без дискриминация на лица или групи. Лицензът не трябва да дискриминира хора или групи от хора.

6. Без дискриминация на области на прилагане. Лицензът не трябва да ограничава използването на програмата в различни области. Например не трябва да ограничавате използването на софтуера само в областта на бизнеса или на генното инженерство.

7. Разпространение на лиценза. Правата, зададени за всяка програма, трябва да са задължителни за всеки, който я ползва, без нужда от допълнителни лицензи.

8. Лицензът не трябва да бъде за определен продукт. Правата, които носи лицензът, не трябва да зависят от това, че програмата принадлежи към дистрибуция. Ако тя се извади от дистрибуцията или се разпространява отделно, всички нейни части зависят от условията на лиценза на оригиналната дистрибуция.

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

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

Разпространение на понятието[редактиране | edit source]

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

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

История[редактиране | edit source]

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

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

Отворен код е приет като термин едва през януари 1998 година, на сбирка на някои от поддръжниците на свободния софтуер в Пало Алто, Калифорния. Част от присъствалите на сбирката са Ерик Реймънд, Тод Андерсън, Сам Окмън, Джон Хол и Кристин Питърсън (която всъщност предлага израза отворен код). Впоследствие то бива защитено и прието на събрание организирано от издателя Тим О'Райли през април същата година. На него присъстват някои от най-известните и влиятелните сред поддръжниците на свободния софтуер като Линус Торвалдс, Лари Уол, Пол Викси, Гуидо ван Росум, Майкъл Тииман и Ерик Реймънд. За много това е събитието, дало началото на Инициативата за отворен код, макар Ерик Реймънд и Брус Перънс да основават организацията два месеца по-рано.

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

Култура[редактиране | edit source]

Бизнес модел[редактиране | edit source]

Отвореният код се е доказал през годините като нещо много повече от чиста идеология или подход, използван само от идеалисти и фанатици. Той се е превърнал в бизнес модел и начин продуктът да се развива по-бурно и по-пълноценно. Това е добре описано в есето на Ерик Реймънд „Катедралата и базарът“.

Все пак има някои пречки пред това един продукт безпроблемно да възприеме принципите на отворения код и веднага да стане печеливш. Такива пречки са например честата липса на утвърдени срокове и планове за развитие на продукта, липсата на подходящо обучение и дори самите лицензи (някои от тях се самоналагат или ограничават продукта, като например GPL ).

Разбира се, на база на отворения код са разработени различни бизнес модели, които да се справят с тези пречки и да подобрят резултатите. Но те са в употреба от скоро и тяхното поведение не е достатъчно изучено и изяснено. Пример за такъв проект е BeeKeeper.

Вижте още[редактиране | edit source]

Външни препратки[редактиране | edit source]

Външни препратки (на английски език)[редактиране | edit source]