Програмне забезпечення Open Source. Використання з відкритим вихідним кодом для створення успішних комерційних продуктів. Питання отримання компенсацій

Як створюються комп'ютерні програми

p align="justify"> Комп'ютерна програма - це список інструкцій, даних комп'ютеру, щоб змусити його виконувати певне завдання або серію завдань. Комп'ютери не розуміють англійською, тому програмісти повинні передавати ці інструкції комп'ютеру мовою, зрозумілою комп'ютеру. Однак комп'ютери можуть працювати тільки з числами, що робить мову комп'ютера дуже важкою для розуміння людьми.

Вирішення цієї проблеми полягає у створенні проміжної мови, зрозумілої як людям, так і комп'ютерам. Це звані мови програмування. Програмісти створюють список інструкцій для комп'ютера мовою програмування, як-от C, Pascal чи Fortran. Цей список інструкцій відомий як вихідний код. Він носить текстовий характер і доступний для читання людям – тим, хто розмовляє мовою. Програмісти виконують всю свою роботу в цьому вихідному коді, змінюючи інструкції для виправлення помилок, додавання функцій або зміни зовнішнього виглядупрограми.

Коли програміст вважає, що він удосконалив інструкції своєї програми, він використовує спеціальну програму, звану компілятором, для перекладу своїх текстів, читаних людиною, в машиночитані числа, які відповідають тим самим інструкціям. Отриманий файл підходить для використання на комп'ютерах, але незрозумілий для людей. Це називається об'єктним кодом. Отриманий виконуваний файлчасто називають двійковим, після системи числення, що використовується комп'ютером. Цей перехід з вихідного коду до двійкового об'єктного коду є одностороннім процесом. Неможливо перевести двійковий файл, що виконується, назад у вихідний код.

Виконуваний файл- те, що вам потрібно, якщо ви хочете запускати та використовувати програму. Зазвичай це те, що ви отримаєте, придбавши упаковане в термозбіжну плівку програмне забезпечення роздрібному магазині. Вихідний код є тим, що вам потрібно, якщо ви хочете зрозуміти, як програма працює всередині, або якщо ви хочете змінити, додати або покращити програму. Якщо у вас є вихідний код і відповідний компілятор, ви можете створити двійковий файл, що виконується, але зворотне неправильно.

Що таке Open Source?

Програмне забезпечення, яке доступне тільки в двійковому форматі, що виконується, є пропрієтарним.

Програмне забезпечення з відкритим вихідним кодом – це захищене авторським правом програмне забезпечення, яке поширюється у вигляді вихідного коду відповідно до ліцензійної угоди, яка надає спеціальні права користувачам програмного забезпечення, права, які зазвичай зберігаються за автором. Така ліцензія дозволяє всім користувачам створювати та розповсюджувати копії двійкових файлів програмного забезпечення та вихідного коду без спеціального дозволу автора. Крім того, він дозволяє користувачам змінювати вихідний код та розповсюджувати змінені копії.

Що це означає

Вам цікаво, чому ж Open Source важливий. Ця важливість полягає в тому, що будь-який програміст в будь-якій точці світу може переглядати вихідний код, виправляти помилки, додавати нові функції і налаштовувати систему без обмежень. Саме так Linux розроблявся з самого початку, і саме тому Linux є дуже стабільною системою з невеликою кількістю помилок, широкою апаратною підтримкою та набором функцій, що зростають настільки швидко, що постачальники операційних систем запрієтарів заздрять. Той факт, що вихідний код відкритий для перегляду експертами у всьому світі, гарантує, що будь-які проблеми будуть знайдені та вирішені швидко, а виправлення можуть поширюватися без обмежень. Це набагато ефективніше та дієвіше, ніж покладатися на те, що корпорація втисне «пакет оновлення» десь у свій щільний графік випуску. Зрештою їм не платять за пакети оновлень.

Що дійсно важливо, так це те, що програмне забезпечення з відкритим вихідним кодом належить спільноті. Це програмне забезпечення, яке підтримується спільнотою людей (або компаній), що його використовують. Він вільно доступний в Інтернеті, і будь-хто може використовувати його. Що ще важливіше, користувачам пропонується покращити його.Обмінюючись нашими вдосконаленнями та ідеями, поєднуючи наші ресурси з тисячами і навіть мільйонами людей по всьому світу через Інтернет, спільнота відкритого вихідного коду може створювати потужне, стабільне та надійне програмне забезпечення з дуже невеликими витратами.

Але спільнота open source набагато більша, ніж просто люди, які пишуть програмне забезпечення. Кожен, хто використовує програмне забезпечення, бере участь у реальному співтоваристві та має право голосу. Вам не потрібно бути програмістом. Просто повідомивши про помилку автору програми або написавши просту статтю з практичними рекомендаціями, ви вносите свій внесок у спільноту та допомагаєте покращити програмне забезпечення. Програмне забезпечення з відкритим вихідним кодом написане, задокументоване, поширюється та підтримується людьми, які його використовують. Це означає, що він чутливий до ваших потреб, а не до потреб корпорації, яка намагається продати її вам.

Звичайно, багато компаній також роблять свій внесок у розробку програмного забезпечення з відкритим вихідним кодом, роблячи свою роботу доступною всьому співтоваристві, тому що вони знають переваги Open Source. Програмне забезпечення, яке підтримується цілою спільнотою, за своєю природою краще і стабільніше, і все більше компаній починають цінувати цей факт.

Суть у тому, що програмне забезпечення з відкритим вихідним кодом написане людьми, які використовують його щодня, людьми, які особисто зацікавлені у тому, щоб воно працювало і, до того ж, працювало добре. Вони не намагаються додати функції модного слова, намагаються підвищити якість. Вони не витрачають час і гроші, намагаючись переконати людей у ​​тому, що їхнє програмне забезпечення чудово, вони витрачають його, намагаючись зробити своє програмне забезпечення чудовим.

Ресурси

Open Source - це фраза торгової марки, що описує ліцензії на програмне забезпечення, які відповідають визначенню Open Source. Торгова марка управляється Ініціативою Open Source, організацією, заснованою на принципах співпраці, яка запустила Linux та рух за вільне програмне забезпечення. Тільки програмне забезпечення, яке відповідає критеріям, описаним у визначенні відкритого джерела, може називати себе відкритим кодом.

Задовго до того, як термін «відкритий вихідний код» увійшов у вжиток, існувала спільнота людей, відданих ідеї «Вільне програмне забезпечення», фразі, яка відноситься не до вартості, а до свободи її використання та модифікації (думати про свободу як « свободі слова», а не «вільному пиві»). Ця спільнота, як і раніше, активно просуває ідеали вільного програмного забезпечення. Щоб дізнатися більше про це, Ви можете відвідати The Free Software Foundation https://www.fsf.org/.

Для детального вивчення того, як і чому розробляється програмне забезпечення з відкритим кодом, прочитайте чудове есе Еріка С. Раймонда "The Cathedral and the Bazaar" .

Якщо ви розглядаєте програмне забезпечення з відкритим вихідним кодом для свого бізнесу, ви повинні відвідати The Open Source Initiative, щоб дізнатися більше. Погляньте в будь-якому випадку і дізнайтеся, як спільнота відкритого вихідного коду може підвищити стабільність, масштабованість та потужність вашого бізнесу, водночас фактично скоротивши витрати.

Багато купують різне програмне забезпечення або ж користуються їх зламаними піратськими версіями. Користувачі бачать графічний інтерфейс програми, але код цього продукту зазвичай прихований. У зв'язку із цим змінити софт практично неможливо, що гарантує автору захист від тих, хто захоче скопіювати код програми та привласнити його собі. Але, не дивлячись на це, так званих «Open Source» програм все більше сучасному світі. Давайте розберемося в тому, що таке програми з відкритим вихідним кодом і які їх позитивні та негативні сторони.

Що можна вважати відкритим кодом?

Майже весь софт до кінцевого юзера доходить вже як готове програмне забезпечення. Це цілком працездатні програми з приємним інтерфейсом та зручні у використанні. Якщо код цього продукту відкритий, будь-який може його змінити, запропонувати свої варіанти виправлення знайдених помилок або внести якесь нововведення. Таким чином, якість цього продукту з часом покращується. Прикладами операційних систем з відкритим кодомє Linux, Unix, Ubuntu.

Всі знайомі з Microsoft Office , аналогом якого, але вже з відкритим кодом, є Open Office. Браузери Mozilla Firefox та Google Chromeтакож є програмним забезпеченням із відкритим вихідним кодом. Подібних продуктів дуже багато, багато хто використовують велика кількістьсофту і не підозрюють, що щось із цього може бути Open Source програмою.

Особливості Open Source

Щоб програму можна було назвати програмою, недостатньо лише того, що його код відкритий для всіх. Подібна програма має бути абсолютно безкоштовною. Крім того, при подальшому використанні та спробі змінити код, користувач також не повинен нічого платити. Будь-який має право вільно поширювати цей продукт, і, як було зазначено вище, змінювати його. Подібні програми не мають обмежень щодо сфери застосування та термінів використання. Їх можна використовувати для ведення бізнесу, наукових досліджень, навчання, використання у своїх цілях необмежену кількість часу.

Ліцензія Open Source програм

Ліцензія таких програм також є вільною. Немає жодних обмежень на застосування, зміну, поширення, використання з іншим сумісним програмним забезпеченням. Також вона є технологічно нейтральною до всіх інших існуючих програм.

Плюси та мінуси Open Source програм

На відміну від класичних ліцензійних програм, розробляються групою вільних програмістів і саме тому є безкоштовними.

Другим важливим плюсом є те, що ми можемо модернізувати дані програми. Хороший програміст, розібравшись у коді, може додати до програми нові опції або покращити роботу функцій, що вже є. Наприклад, користувач MacOSне може змінити свою операційну систему, на відміну від Linux, яку кожен може не тільки налаштувати на свій розсуд, але й додати будь-які індивідуальні функції. У результаті в нього вийде новий продукт, яким дуже зручно користуватися. Якщо програма, що вийшла, дійсно хороша, то її можна запатентувати і навіть продати (!)

Ще одним незаперечним плюсом програм є їхня захищеність від вірусів. Практично всі віруси пишуться під програми Windows, а шкідливих програм на той же Linuxмізерна мала кількість. Таким чином, можливість отримати вірус, використовуючи операційну систему з відкритим кодом, дуже мала.

Сьогодні багато організацій переходять використання програм саме з відкритим вихідним кодом. Це дозволяє знизити витрати та мінімізувати ймовірність злому системи.

Але будь-яка медаль, як відомо, має дві сторони, розповімо про мінуси Open Source програм.

При виникненні будь-яких проблем із програмним забезпеченням зазвичай звертаються у технічну підтримку. Програми з відкритим кодом не мають. Ця проблема виникає через те, що програма змінювалася різними програмістами з усієї країни чи навіть світу. Тож шукати вирішення проблеми доведеться на просторах мережі Internetчи розбиратися самому.

Другий мінус виникає знову ж таки через те, що будь-хто може змінювати код програми. Часто погляди людей можуть збігатися, і це викликає конфлікти у модифікуванні продукту. Це може призвести до краху проекту, над яким працювало багато людей протягом тривалого часу.

Також під відкритий код часто маскуються шкідливі програми, Відрізнити їх від цього безпечного програмного забезпечення часом буває дуже складно.

Незважаючи на те, що такі програми мають деякі недоліки, ними цікавляться все більше користувачів. Дедалі більше продуктів сьогодні створюються з відкритим вихідним кодом. Це означає, що такі програми мають майбутнє, і на них варто звернути свою увагу.

Ринок програмних продуктів пропонує великий вибір програмного забезпечення. Поряд із додатками, придбати які можна за певну плату, існує можливість скористатися безкоштовними програмами.

Безкоштовне програмне забезпечення (Freeware)

Вперше термін freeware з'явився в 1982 році, його зареєстрував як товарний знак американський програміст Андрю Флеглеман (Andrew Flegleman) для розробленої ним комунікаційної програми.

Безкоштовно можна скачати:

  • бета-версії програм
  • спрощені аналоги повноцінних пакетів
  • драйвери
  • програми, використання яких підштовхне до придбання додаткових ресурсів.

Достоїнство freeware одне - не треба платити гроші, недоліків трохи більше:

Практично будь-яка комерційна програма під Windows має свої безкоштовні аналоги:

  • Архіватори (7-Zip)
  • ПЗ для роботи з FTP (FileZilla)
  • Антивіруси (CureIt, Avast!, AVZ)
  • Текстові редактори(Notepad++)
  • Браузери (Mozilla, Firefox, Opera, Google Chrome)
  • Аудіоплеєри (WinAmp)
  • Відеоплеєри (VLC, Miro, Media Player Classic)
  • Транскодери (MediaCoder)
  • Графічні редактори(GIMPshop)
  • Офісне ПЗ (Apache OpenOffice, LibreOffice)

Безкоштовні програмипід Windows доступні в Інтернеті на веб-сайтах розробників. Після скачування архіву та встановлення ПЗ на комп'ютері автоматично формуються всі необхідні для нормальної роботипрограми каталоги та файли в них. Безкоштовні програми для Android та iOS можна завантажити за допомогою маркетплейсів PlayStore та AppStore.

Завантажуючи безкоштовні програми, ви ризикуєте зіткнутися з ефектом «троянського коня»: розробник включає в пакет, що безкоштовно розповсюджується, інші програми, які автоматично розміщуються на комп'ютері при встановленні пакета. Не завжди це програмне забезпечення безпечне!

Особливе місце у категорії безкоштовних програмзаймають проекти Open Source. Частина з перерахованого вище ПЗ (Mozilla Firefox, 7-Zip, FileZilla, Notepad++, Miro, VLC, Apache OpenOffice, LibreOffice, Media Player Classic, GIMPshop, Google Chrome) відноситься саме до цієї категорії.

Open Source ПЗ

Програмне забезпечення може поширюватися із закритим вихідним кодом ( Microsoft Windows, MS Office - пропрієтарне ПЗ), і з відкритим кодом (open source). Термін «free software» (вільне програмне забезпечення), що з'явився в 1984 році, відноситься до ПЗ, яке можна безкоштовно отримати, модифікувати, використовуючи доступні вихідні тексти програм, і поширювати далі.

Програми розповсюджуються за ліцензією GNU GPL і повинні відповідати таким вимогам:

  1. Немає обмежень використання ПЗ у певних галузях діяльності.
  2. Вихідний код поширюється разом з модулем, що виконується, або його можна отримати з доступного джерела безкоштовно/за помірною ціною. Код має бути читаним.
  3. Модифікована версія поширюється на загальних умовах. Можна змінити назву або номер версії.
  4. Програма доступна всім охочим.

У 1998 році було введено поняття "open source software" - ПЗ з відкритим кодом. Формально все вільне програмне забезпечення можна вважати ПЗ з відкритим кодом. Прийнято відносити програми Open Source до безкоштовних, хоча не заборонено їх використовувати в комерційних цілях. Зазвичай воно поширюється за ліцензією Apache 2.0. Але є й інші варіанти (докладніше про ліцензії у світі open source див.).

Переваги роботи із проектами open source:

  • це гарний навчальний матеріал
  • функції, описані у проекті, не забороняється вбудовувати у свої програми
  • виявлені помилки можна виправити та правильний код помістити у відповідне сховище
  • при компіляції програми до тексту допускається вносити зміни та модернізувати її під конкретні умови застосування.

Недоліки:

  • для компіляції можуть бути потрібні додаткові бібліотеки, які доведеться шукати в Інтернеті
  • якщо виникнуть питання під час використання цього програмного забезпечення, відповідь потрібно буде шукати на форумах в Інтернеті.

Концепція Open Source заснована на підвищенні надійності та якості ПЗ за рахунок виявлення та виправлення помилок багатьма користувачами. Що знаходиться в відкритому доступі open source проект постійно тестується величезною кількістю програмістів.

Давно широко впроваджує технологію «відкритого коду» компанія Google. Усі її проекти такого типу, їх приблизно 200 (спочатку і Kubernetes було розроблено тут, а потім передано під управління Cloud Native Computing Foundation), доступні на порталі компанії GOOGLE OPEN SOURCE. На ресурсі лежать не лише коди програм, а й документація щодо їх використання та підтримки. Наскільки широко можна використовувати відкрито код, що надається - вказано в ліцензії, зазвичай безпосередньо розміщується в тексті програми.

Компанія Apple, відкривши вихідні коди мови Swift, намагається збільшити кількість доступних додатківдля Apple. Поточна версіямови на теперішній моментмає обмеження: щоб завантажити свою розробку на AppStore, доведеться придбати ліцензований Swift. Вся необхідна за мовою інформація розміщена на сайті swift.org та у хмарному сховищі GitHub. Випущено реліз Swift під Linux.

Умовно-безкоштовне програмне забезпечення

Деякі програми, що розповсюджуються безкоштовно, мають обмеження:

  • за терміном роботи
  • за кількістю запусків
  • за функціональністю

Для обмеження терміну роботи та числа запусків використовується trial-захист – спеціальні лічильники. Як обмежене за функціоналом ПЗ надають демо-версію або версію з обмеженим сервісом. Іноді розробник вставляє в код програми рекламу, що утруднює роботу з пакетом. Щоб позбавитися рекламного банера, доведеться заплатити.

Приклади програм з ліцензією shareware:

  • Архіватор WinRAR (30 днів)
  • Антивірус Nod32 (30 днів)

AcrobatReader – приклад програми, обмеженої функціоналом. Ця програма, нижній сегмент AdobeAcrobat, дозволяє лише перегляд PDF-файлів. Для повноцінної роботиз файлами таких типів необхідно придбати більше повну версію Acrobat'a.

Великі розробники надають свої продукти для особистого користування з метою вивчення. Якщо їх програмне забезпечення планується використовувати в комерційних цілях, необхідно купувати ліцензію.

Наприклад, компанія Oracle безкоштовно дозволяє завантажувати дистрибутив СУБД та утиліти для роботи з нею. У цьому накладаються обмеження обсяг масиву оброблюваних даних. Але для вивчення принципів роботи з базою даних та відпрацювання навички написання процедур цей варіант роботи з ПЗ підходить.

Власне, завантажуючи «вихідники» відкритого ПЗ – open source – ви повинні бути готові понести певні витрати, щоб його використовувати. Не треба купувати ліцензію, але потрібно буде оплатити роботу програмістів, які створюватимуть на його основі програмні продуктипід певне завдання.

Висновки

Купуючи ліцензійне платне програмне забезпечення, ви автоматично отримуєте можливість звертатися за технічною підтримкою до розробника та регулярно, при необхідності, оновлювати свій продукт. Для встановлення його на комп'ютер не треба мати глибокі знання в області IT.

Встановлюючи безкоштовне програмне забезпечення, звертайте увагу на дату його створення/оновлення та обов'язково перевіряйте програмне забезпечення на наявність вірусів. Такими програмами користуються як IT-фахівці, і користувачі ПК різного рівня.

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

Безперечною перевагою open source проектів є їхня незалежність від вендора, великі компанії вважають за краще на їх основі створювати корпоративне програмне забезпечення. Особливо це стає актуальним для держкорпорацій у зв'язку з можливими складнощамиу придбанні пропрієтарних продуктів через економічні санкції. Стримуючим фактором при впровадженні open source є деяка невизначеність, пов'язана з інформаційною безпекою: можливі проблеми при проходженні сертифікації у ФСТЕК

Пітер Ван Валькенбург, голова відділу досліджень Coin Center, член ради директорів Zcash Foundation, пояснює, чому р. Розвиток програмного забезпечення з відкритим вихідним кодом є важливим для побудови довірчих відносин та забезпечення безпеки в блокчейн-мережах.

Комп'ютерний код, що лежить в основі всіх великих криптовалют та проектів відкритого блокчейна, розробляється як програмне забезпечення з відкритим вихідним кодом. Регулятори та директивні органи, які намагаються зрозуміти, що таке криптовалюти, але не знайомі з таким програмним забезпеченням, можуть помилятися, вважаючи, що ці системи розробляються (і повинні розроблятися) однією або декількома комерційними компаніями. Хоча багато відомого програмного забезпечення дійсно розробляється подібним чином (наприклад, Windows корпорації Microsoft або RDBMS компанії Oracle), з проектами з відкритим вихідним кодом справи інакше, і ця відмінність може і повинна формувати громадську думку. ПЗ з відкритим вихідним кодом створюється у співпраці, безкоштовно поширюється, публікується відкрито та розвивається як продукт спільноти, а не власності однієї компанії чи особи. У цьому випадку немає монополії, немає однієї компанії чи індивідуума, які б створювали та продавали ПЗ, володіли б ним. Так само, як немає єдиної компанії, що володіє мережею біткоїну, не існує однієї-єдиної компанії, яка виробляє ПЗ, яке, функціонуючи на пов'язаних в інтернеті комп'ютерах, утворює цю мережу. Подібна децентралізація несе деякі фундаментальні блага, які може бути важко зрозуміти людям, не знайомим із розробкою ПЗ. Щоб краще усвідомити міць і характер відкритого вихідного коду, буде корисно отримати деяке уявлення про один особливо успішний зразок з відкритим вихідним кодом. Йдеться про операційну систему Linux.

Відкритий вихідний код усюди

Важко підрахувати, скільки разів на день ви користуєтесь Linux, адже саме ця операційна система є основою роботи більшості серверів в інтернеті. Щоразу, коли ви відвідуєте Facebook, Google, Pinterest, Вікіпедію та тисячі інших великих сайтів, сервіси, які надають вам ці (такі різні) сайти, ви маєте справу з комп'ютерами, які, швидше за все, працюють на операційній системі Linux. Linux можна знайти і набагато ближче; найімовірніше, він у вас під рукою. Скажімо, операційна система Android-смартфонів базується на Linux. Якщо у вас є Chromebook, ви користуєтеся ноутбуком на основі Linux. Ця операційна система все частіше використовується у телевізорах, термостатах, мультимедійних системах у літаках, автомобілях тощо.

Чому це цікаво? Тому що Linux – це не продукт одного програміста чи навіть групи програмістів; на відміну від MacOS або Windows, його не розробляла одна чи навіть дюжина корпорацій. Linux має тисячі співавторів. Як повідомила у 2015 році Linux Foundation (некомерційна організація, що сприяє відкритому розвитку операційної системи), приблизно 14 000 розробників з більш ніж 1300 різних компаній зробили внесок у вигляді фрагментів програмного коду. В одному лише 2015 році у вдосконаленні коду вперше взяли участь 2355 розробників. Таким чином, шляхом екстраполяції можна підрахувати, що до 2017-го свій внесок внесли приблизно 18 000 осіб, і це число зростатиме.

Хто б міг подумати навіть п'ять років тому (1991 року), що операційна система світового класу може, немов за помахом чарівної палички, бути зліплена в єдине ціле з фрагментів позаштатної роботи кількох тисяч розробників, розкиданих по всій земній кулі і пов'язаних лише примарними нитками інтернету?

Переваги відкритого вихідного коду

У своїй книзі Реймонд розповідає про те, що відкритий вихідний код є революційним методом створення технологій. Linux з тисячами незалежних розробників, які працюють у режимі громадської співпраці, є прикладом моделі відкритого вихідного коду. Криптовалюти наслідують ту саму модель, але про це ми поговоримо нижче.

Реймонд виділив кілька переваг моделі відкритого коду. Ключові в контексті нашої дискусії – такі:

  • Кожен гідний зразок ПЗ починається із задоволення особистого бажання розробника.Мотивацією більшості розробників проектів з відкритим вихідним кодом є бажання особисто використовувати створювані продукти. Вони не пов'язані контрактом, який зобов'язує їх створити щось для іншого; вони мають особисту потребу, що вони задовольняють. Таким чином виникає якісно інша мотивація, що породжує детальне знання проблеми.
  • Хороші програмісти знають, що писати. Великі знають, що листувати (і використовувати повторно).Коли розробка здійснюється відкрито, можна уникнути надмірності, і проблематичні, ускладнені чи зайві коди можна ідентифікувати та спростити.
  • Коли ви втрачаєте інтерес до програми, то ваш останній обов'язок по відношенню до неї полягає в тому, щоб передати її в руки компетентного наступника. Люди приходять у проект із відкритим вихідним кодом і залишають його залежно від своїх інтересів та компетенції. Ніхто не застрягне у роботі над проектами, які більше не цікаві. З'являються свіжі голови, які пропонують різні точки зору на давні проблеми чи нові перспективи розвитку.
  • Сприйняття користувачів як колег-розробників - найлегший шлях до покращення коду та ефективного налагодження ПЗ. Багато користувачів відкритого коду допомагають виявляти проблеми і навіть пропонують рішення. Грань між споживачем і виробником програм з відкритим вихідним кодом розмита: робота над програмним забезпеченням прозора, вона ведеться на очах у публіки, і участь у процесі створення доступна всім.
  • За наявності досить великої бази бета-тестерів і розробників практично будь-яка проблема швидко кваліфікуватиметься, а її рішення напевно виявиться для когось очевидним. Цей постулат названо Законом Лінуса на честь Лінуса Торвальдса, творця ядра Linux, що тривалий час залишався головним розробником цієї операційної системи. Коли процес розробки коду має закритий характер, розробники ризикують пропустити слабке місце або помітити певну помилку. Розробка в середовищі досвідчених користувачів з унікальним баченням підвищує ймовірність виявлення та усунення багів, що робить програмне забезпечення з відкритим вихідним кодом більш безпечним та відмовостійким.

Результатом такої розробки стає надійний програмний код, створений користувачами для користувачів. Мета полягає не в тому, щоб створити щось, що збагачує компанію, яка виробляє та продає продукти, а, швидше, у тому, щоб вирішити проблему, досить поширену, щоб велика спільнота талановитих програмістів з радістю вносила свій внесок. Люди, позбавлені навичок програмування, одержують від такої моделі величезне благо. Безкоштовне ПЗ немов матеріалізується з повітря, ним може вільно скористатися кожен, і воно отримує оновлення до тих пір, поки користувачі експертного рівня теж зацікавлені в експлуатації.

Закон та вільне ПЗ

Чинне законодавство підтримує та у деяких випадках стимулює розробку програмного забезпечення з відкритим вихідним кодом. Воно, як і все програмне забезпечення, захищене авторським правом, але його автори випускають код з ліцензією, що дозволяє кожному використовувати і модифікувати його без специфічного дозволу або будь-яких виплат авторам (тобто з ліцензією, розробленою Массачусетським технологічним інститутом - MIT).

Деякі ліцензії включають вимоги, що похідні програмного забезпечення повинні випускатися на таких же умовах. Завдяки подібній схемі база відкритого вихідного коду зростає та поширюється. Це явище відоме як ліцензія вільного програмного забезпечення, або LGPL-3 – менша стандартна громадська ліцензія.

Відкритий вихідний код у криптовалютах та токен-проектах

Можливо, Linux - найбільший та найважливіший приклад моделі відкритого вихідного коду, але є й інші. До них входять усі великі криптовалютні та блокчейн-проекти. Усі вони створюють комп'ютерні мережі, що дозволяють учасникам досягати згоди щодо спільно використовуваних даних (блокчейна криптовалюти).

Програмне забезпечення, що дає кожному учаснику можливість з'єднуватися з мережею, називається клієнтом, і це програмне забезпечення з відкритим вихідним кодом. Найчастіше клієнтське програмне забезпечення розробляють кілька не пов'язаних між собою учасників як найпростішу версію мережного програмного забезпечення (тобто так званого reference client), на основі якого можна побудувати програмне забезпечення для майнінгу, гаманця, біржі або інше сумісне з мережею програмного забезпечення.

Клієнт Bitcoin Core - результат роботи більш ніж 450 незалежних розробників, які внесли свій внесок у розвиток коду більше 15 000 разів. ПЗ доступне для вільного використання та модифікації відповідно до ліцензії вільного програмного забезпечення MIT, а вся історія розробки доступна для огляду в публічному репозиторії на Github - хмарному сервісі, що дозволяє кожному створити обліковий запис, завантажити новий кодта відстежувати зміни. Якщо створений репозиторій відкритий для загального огляду, коментарів та пропозицій про зміни, то вам навіть не потрібно платити за обліковий запис Github.

Публічний репозиторій також відстежує звані форки оригінального клієнта. Форк створює клон початкового ПЗ, який можна модифікувати з тією чи іншою метою, не змінюючи початкове сховище. Розробники без обмежень роблять форки для репозиторію Bitcoin Core на Github, щоб створити або специфічні додатки, сумісні з біткоїном (наприклад, гаманець для смартфонів), або нову криптовалюту, яка перестає бути сумісною з мережею біткоїну і передбачає створення нової криптовалют було з лайткоїном або Zcash). На сьогоднішній день оригінальний клієнт Bitcoin Core пережив форк більше 10 000 разів, і нові репозиторії, що з'являються, демонструють, що створення похідних продуктів триває.

На ефіріум зараз припадає щонайменше 121 репозиторій, кожен з яких фокусується на певному аспекті проекту (наприклад, мовами програмування для написання смарт-контрактів, графічних браузерах для взаємодії кінцевого користувача з мережею ефіру, сумісних клієнтів для участі у роботі мережі тощо). ). Є не менше восьми проектів, спрямованих на розробку сумісних з ефіром клієнтів, а над найбільш популярними клієнтами (go-ethereum і Parity) працюють сотні незалежних розробників. Код ефіріуму та його повна історія, як і код, а також історія біткоїну, доступні для публічного огляду на Github та в інших мережевих сховищах, і всі коди випускаються відповідно до ліцензії LGPL-3, що вимагає випускати всі майбутні похідні розробки з такою самою ліцензією .

Навіть нещодавні проекти, реалізовані з ініціативи комерційних стартапів, демонструють відданість відкритому кредо вихідного коду. Zcash Company розробляє протокол Zcash у вигляді публічного репозиторію. Декілька провідних розробників не працюють на компанію, а спеціально створена некомерційна організація покликана стежити за тим, щоб поступово відбувся перехід від розробки, що здійснюється компанією, до розробки силами спільноти. База вихідного коду Zcash випускається з ліцензією Массачусетського технологічного інституту. Protocol labs, розробник Filecoin, має намір створити аналогічну відкриту модель і вже протестував її у своєму проекті IPFS, працюючи з кодом у відкритих репозиторіях та випускаючи його з ліцензією MIT.

Чому відкритий вихідний код важливий

Криптовалюти та відкриті блокчейни здатні забезпечити функціонал, який був би регульованим, якби його джерелом була одна-єдина корпорація. Централізовані емітенти цифрової валюти, такі як Liberty Reserve або E-gold, були фінансовими сервісами і повинні були реєструватися в Управлінні Міністерства фінансів США по боротьбі з фінансовими злочинами, а також отримувати ліцензію, що дозволяє переказувати гроші в кожному штаті. Якщо такі токени будуть просуватися на ринку для залучення інвесторів, вони можуть бути прирівняні до цінних паперів, і в такому разі потрібно буде реєструвати Комісію з цінних паперів і бірж США. Ці обмеження мають сенс, оскільки централізовані послуги пов'язані з ризиком того, що сторона, що знаходиться в центрі всієї схеми, не зможе виконати свої обіцянки адекватно протестувавши продукт і зробивши його безпечним.

Однак технології на кшталт біткоїну здатні запропонувати аналогічний функціонал, будучи відкритими і мережами, що нікому не належать. Тут немає жодної корпорації. До цих мереж приєднуються користувачі, а відкрите програмне забезпечення стимулює їхнє прагнення співпраці. Зрештою, всі учасники приходять до згоди щодо кожного фрагмента даних, необхідних для створення валюти. Децентралізація тримається на двох стовпах: відкритих механізмах консенсусу та програмного забезпечення з відкритим вихідним кодом. Якби код не був відкритим, то як би учасники (не знайомі один з одним люди в інтернеті) зуміли зрозуміти систему, до якої вони приєднуються, і довіритися їй?

Насправді токен-проекти, засновані на патентованому коді, можуть виявитися просто централізованими сервісами, які ховаються за професійним сленгом та «абракадаброю блокчейну». Однак у «справжніх» проектів код, що створює децентралізовану мережу, що дозволяє учасникам довіряти один одному, мати загальну мотивацію та карати шахраїв, і сам собою децентралізований. Його розробляють у всіх на очах сотні ентузіастів, він доступний усім у світі для використання та модифікації та абсолютно незалежний від корпоративних інтересів.

Успіх програмного забезпечення з відкритим кодом дуже помітний. Воно не оминуло навіть великих виробників комерційних програм. Компанії IBM, Hewlett-Packard, Oracle та Microsoft визнають його вплив і в деяких випадках переймають його методи. Схоже, більшість компаній, у структурі яких є ІТ-служба, вже досить добре знайомі продукти з відкритим кодом, а часто вони і активно використовують їх.

Втім, повсюдне поширення ПЗ з відкритим кодом, як і раніше, породжує більше питань, ніж відповідей. Тому спробуємо відповісти на найбільш популярні з них.

Що таке програмне забезпечення з відкритим кодом?

Повернемося назад у 1997 рік. Талановитий розробник операційної системи Linux Брюс Перенс складає документ, пов'язаний із підготовкою та розповсюдженням дистрибутива версії Debian Linux. Пізніше він видалив усі згадки про Debian і представив концепцію, відому сьогодні під назвою The Open Source Definition. Крім іншого в документі Definition говорилося, що програмне забезпечення з відкритим кодом має розповсюджуватися без будь-яких відрахувань розробникам, розповсюджувачі зобов'язані забезпечити всім бажаючим безоплатний доступ до вихідного коду програм і всі подальші доопрацювання та модернізовані варіанти програм також повинні поставлятися на цих умовах.

По суті, рух прихильників програмного забезпечення з відкритим кодом є близьким родичем ініціативи Free Software Movement, запропонованої в 1983 році Річардом Столлманом. Головною її метою було безоплатне поширення програмного забезпечення, звільнення його від стандартних обмежень комерційних програм. Правила розповсюдження безкоштовного ПЗ регламентуються ліцензією General Public License (GPL), яка у жовтні 2006 року була затверджена у своїй третій редакції.

Сьогодні у світі застосовуються десятки різних ліцензій Open Source Initiative, для кожної з яких розроблено свої власні специфічні правила, що вимагають вивчення з боку компаній, що розглядають можливість використання програмного забезпечення з відкритим кодом. Зазвичай, ці правила не накладають жорстких обмежень на охочих звернутися до програм з відкритим кодом. Щодо вимог до поширення, їм необхідно приділяти більш серйозну увагу, щоб уникнути потенційних проблем, пов'язаних із порушенням правил ліцензування.

Чому саме програми із відкритим кодом?

Перша причина, через яку компанії звертають увагу на програмне забезпечення з відкритим кодом, дуже проста – це ціна. І показники окупності інвестицій у модель з відкритим кодом це наочно демонструють. ПЗ з відкритим кодом можна завантажувати, встановлювати та використовувати абсолютно безкоштовно. Спочатку низькі витрати залучали розробників, які бажають випробувати нові інструментальні засоби або зайнятися проектуванням нових додатків, не вкладаючи жодних коштів. Свобода, що відкривається, сприяла тому, що багато з них стали підтримувати рух прихильників ПЗ з відкритим кодом. В результаті поряд з тисячами інших проектів у світі стало з'являтися програмне забезпечення з відкритим кодом промислового рівня, наприклад, операційна система Linux, Web-сервер Apache, сервер програм Java JBoss і середовище розробки Eclipse.

Наприкінці 1990-х років на програми з відкритим кодом нарешті звернуло увагу керівництво підприємств. В умовах постійного скорочення бюджетів ІТ-служб розробники вихвалялися якістю та економією, що досягається при використанні програмного забезпечення з відкритим кодом, і в багатьох компаніях стали серйозно замислюватися про застосування програмних компонентів з відкритим кодом при реалізації корпоративних проектів. Першими великими підприємствами, які стали впроваджувати програмне забезпечення з відкритим кодом, були компанії The Weather Channel, Cendant Travel, Employease і Sabre.

У період глобального зростання Internet програмне забезпечення з відкритим кодом дозволяє компаніям швидко нарощувати обсяг своїх електронних операцій без закупівлі нових ліцензій на комерційне ПЗ. Відповідні переваги поширюються також на розробку та тестування. Таким чином, компанії можуть випробувати нові речі без додаткових витрат, характерних для комерційного ПЗ, та обов'язкового у таких випадках процесу вибивання бюджету.

Напевно, ні для кого не секрет, що доступністю вихідного програмного коду в продуктах, що поширюються з відкритим кодом, практично мало хто користується. Здавалося б, право безперешкодної модифікації та виправлення програмного коду має вважатися серйозним плюсом, але насправді компаніям, замість того, щоб здійснювати підтримку програмного забезпечення самим, набагато простіше покластися на спільноту розробників, які вчасно оновлюють та налагоджують програмний код усіх популярних продуктів.

Причини відмови від програмного забезпечення з відкритим кодом

Аргументи проти програмного забезпечення з відкритим кодом, як правило, легко перерахувати на пальцях.

    Отримання безкоштовного програмного забезпечення нагадує «безкоштовну роздачу цуценят». Ви можете завантажити і встановити його абсолютно безкоштовно, але навчання і підтримка користувачів в кінцевому підсумку обходяться дорожче за сукупні витрати на комерційне ПЗ або становлять цілком порівнянну суму. Подібний аргумент, який особливо любить наводити Microsoft, діє на підсвідомому рівні. Справедливо це чи ні, залежить від конкретної ситуації та від того, який аналітичний звіт ви читаєте зараз.

    Організація технічної підтримкипредставляє складність. На початку становлення руху прихильників ПЗ з відкритим вихідним кодом, коли розробка та підтримка здійснювалися головним чином групами добровольців чи «спільнотами», це питання справді було актуальним. Але хоча в багатьох організаціях і дійшли висновку, що підтримки спільноти цілком достатньо для задоволення їхніх потреб, сьогодні перед ними відкривається безліч інших можливостей, у тому числі й підтримка великих проектів з відкритим кодом компаніями Hewlett-Packard та IBM. Внаслідок цього твердження, що «для удушення достатньо перекрити одне горло» втрачає свою актуальність.

    Розробка нового функціоналу займає більше часу, порівняно з комерційним програмним забезпеченням. Насправді це багато в чому залежить від конкретного виду ПЗ, що використовується. Web-браузер Firefox є найкращим прикладом того, наскільки швидко програмне забезпечення з відкритим кодом можна пристосувати до потреб користувачів. Можна згадати і про те, як оперативно розробники Linux організовували підтримку нових технологій, зокрема портів USB. Щодо цього Linux практично не відставала від Windows. Але що стосується корпоративного ПЗ, вбудовування механізмів підтримки новітньої відеоплати або аудіочипу відіграє тут набагато менш важливу роль, ніж забезпечення високої стійкості та продуктивності.

    Невизначеність подальшого розвитку та розгалуження. Велика кількість ліцензій на ПЗ з відкритим кодом, а також можливість активного втручання кінцевих користувачів у програмний код утримують корпоративних клієнтіввід впровадження подібних програм. Але уважне вивчення ліцензій на додатки з відкритим кодом юристами розвіює більшість цих страхів. Деякі постачальники програмного забезпечення з відкритим кодом і незалежні компанії навіть пропонують компенсацію шкоди, тому використовувані вами програми з відкритим кодом можуть стати предметом судового позову.

З чого почати?

Сьогодні у вигляді продуктів з відкритим кодом представлені майже всі різновиди програмного забезпечення ділового призначення, починаючи з серверів електронної поштита закінчуючи системами VoIP. Багато компаній насамперед звертають увагу на Web-додатки, де є продукти, що існують протягом досить тривалого часу і вже встигли довести свою спроможність. Зазвичай згадують про стек LAMP (Linux, Apache, MySQL і PHP, Perl або Python залежно від конкретної ситуації). Широкого поширення набула Unix-подібна операційна система Linux. Одним із найпопулярніших Web-серверів сьогодні є Apache. Система управління базами даних MySQLуспішно конкурує із дорогими комерційними продуктами. А мови програмування та сценаріїв PHP, Perl та Python знаходять широке застосування як засоби розробки Web-додатків з відкритим кодом. Web-сайти з відкритим кодом на основі Java часто спираються на сервер додатків JBoss. Познайомившись ближче з інструментальними засобами з відкритим кодом, виявивши подібність та відмінності між ними та комерційними продуктами, ви відкриєте для себе та інші можливості. Можливо, здивує і те, що ваші розробники час від часу на свій страх і ризик звертаються до тих чи інших продуктів із відкритим кодом.

Сервери програм, звичайно, добре, але що можна сказати про програмне забезпечення з відкритим кодом для настільних комп'ютерів?

Кінцеві користувачі часто застосовують різні інструментальні засоби з відкритим кодом, призначені для настільних комп'ютерів. Яскравим прикладом такого рішення є Web-браузер Mozilla Firefox. Офісний пакет Sun OpenOffice окремі державні та комерційні організації віддають перевагу перед Microsoft Office. Але хоча деякі гравці і наважуються зануритися в незвідане, встановлюючи на своїх настільних комп'ютерах операційну систему Linux, Windows продовжує зберігати безумовно домінуюче становище. Дружні по відношенню до кінцевого користувача версії Linux (наприклад, LinSpire) не можуть порушити становище, що склалося, тому що навчання користувачів вимагає часу і грошей. Крім того, більшість комерційних програмних пакетів- від яких залежить багато компаній - розробляються в першу чергу для Windows і тільки потім для Linux (якщо, звичайно, версія для Linux взагалі виходить у світ).

Чи можна продати продукти з відкритим кодом?

Так, звичайно, але правила Open Source Initiative забороняють чинити перешкоди у продажу вашого коду та всім іншим. І все-таки багато компаній знаходять способи заробляти на продуктах з відкритим кодом. Багато, крім коду, пропонують послуги корпоративної підтримки, які дуже охоче купуються компаніями. Інші поставляють два варіанти програмного коду: один у відкритій та безкоштовній формі, а інший, що включає додаткові корисні функціїмістить закриті компоненти і повинен оплачуватись клієнтами. Подібна змішана модель стає дедалі популярнішою. Її активно використовують такі компанії, як SourceFire, SugarCRM, Alfresco та низка інших.

Інші ресурси з відкритим кодом

Безліч програм з відкритим кодом можна знайти в Internet:

    FreshMeat. Величезна база даних програмного забезпечення, значна частина якого представлена ​​у формі з відкритим кодом.

    SourceForge. Гігантський сайт для розробників програмного забезпечення з відкритим кодом, який поєднує тисячі проектів з відкритим кодом. Частина їх продовжує розвиватися, інші вже припинили своє існування.

Ресурси з відкритим кодом - офіційні та неофіційні

    Open Source Initiative. Некомерційна організація, яка вважає за основне завдання подальший розвиток програмного забезпечення з відкритим кодом і фінансується рядом гравців, які вже давно діють на цьому полі.

    Open Source Technology Group. Мабуть, провідний у світі провідник технологій із відкритим кодом. Саме цьому об'єднанню належить сайт новин Slashdot, а також ресурси SourceForge та FreshMeat.

    Open Source Risk Management. Пропонує механізми, які забезпечують відповідність нормативним вимогам.

    Open Source Development Labs. Організація, головною метою якої є просування операційної системи Linux серед корпоративних клієнтів.