Open source бібліотеки: важлива складова сучасного програмного забезпечення

Open source бібліотеки — це репозиторії коду, які розробники можуть використовувати, а залежно від ліцензії, також вносити в них зміни і повторно розподіляти. Open source бібліотеки зазвичай розробляються на таких платформах, як GitHub, і розподіляються за допомогою пакетних реєстрів, таких як PyPI для Python і npm для JavaScript. Ці репозиторії містять попередньо написаний, повторно використовуваний код, який розробники використовують для додавання елементів або функцій у своїх програмних проектах. Open source бібліотеки підтримуються — оновлюються, виправляються, поліпшуються і так далі — людьми, яких, що цілком природно, називають «підтримувачами».

Це просте визначення, принаймні, — але воно не відображає всіх нюансів, які відбуваються за лаштунками. Справжня картина полягає в тому, що підтримувачі open source бібліотек — це громади, зусилля яких підтримують переважну більшість сучасних програмних застосувань, на які ми всі спираємося. Наприклад, React широко використовують для побудови інтерфейсів користувача для веб- та мобільних додатків. React Native використовувався для створення багатьох популярних додатків, які ви, можливо, використовували, включаючи Facebook, Discord і Airbnb. Бібліотеки, такі як React, іноді підтримуються певними фондами, але існують сотні, якщо не тисячі, бібліотек, які залежать від індивідуальних підтримувачів.

Ви, можливо, помітили, що наш YouTube-канал нещодавно розпочав нову серію під назвою «Push to Talk | Meet the Maintainers». Ця серія висвітлює роботу видатних open source розробників, таких як Andrew Gallant (підтримувач ripgrep), а також надає закулісний погляд на їхні шляхи в open source спільноті. У цій статті ми надамо деякий контекст, розкриваючи специфіку open source бібліотек: як вони працюють, чому вони важливі та хто є підтримувачами, які тримають їх у функціональному стані.

Як працюють open source бібліотеки і чому вони відрізняються від закритих бібліотек

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

У proprietary програмних фреймворках, в загальному розумінні, команди розробників наймаються для виконання цієї роботи (побудови та/або підтримки програмних бібліотек). Однак вихідний код бібліотеки — текст, зрозумілий людині, написаний мовою програмування, яку комп’ютери переводять у двійкову форму, обробляють і виконують — може бути доступний тільки авторизованим особам, таким як співробітники компанії та конкретні партнери. Компанія, як власник програмного забезпечення, зберігає виключні права, які зазвичай запобігають несанкціонованому перегляду, модифікації та розподілу коду з закритої бібліотеки. Це означає, що тільки власники програмного забезпечення можуть включати код із бібліотек у свої проекти, і, отже, якщо програмне забезпечення, створене за допомогою закритих бібліотек, виходить з ладу, користувачі можуть отримати підтримку тільки від власника коду.

Open source фреймворки працюють інакше. Open source бібліотеки зазвичай створюються через зусилля громади. Залежно від ліцензії та угоди з внесками, будь-хто може запропонувати внесок у код. Часто, хто завгодно може запитати нову функцію або модифікацію, або запропонувати виправлення помилок. Підтримувачі керують бібліотекою, управляя та модеруючи громаду контриб’юторів і користувачів. Залежно від бібліотеки, підтримувачі можуть звертати увагу як на деталі — перевіряючи код внесків, вирішуючи, які частини коду потраплять у бібліотеку, забезпечуючи чіткість і точність документації — так і на глобальні рішення, такі як напрямок розвитку open source бібліотеки в цілому.

Підтримувачі open source бібліотек зазвичай не наймаються на цю роботу. Замість цього, їхня діяльність є добровільною. У деяких випадках окремі підтримувачі можуть підтримувати свою роботу за рахунок спонсорства або пожертв. В інших випадках фонди — такі як Eclipse Foundation або Linux Foundation — беруть на себе відповідальність за підтримку open source проектів. У таких випадках фонд виконує роль опікуна проекту або бібліотеки, а не власника в традиційному сенсі. Фонд забезпечує наявність і підтримку проекту, що може включати створення Технічних координуючих комітетів (TSC), які забезпечують стратегічний напрямок і керують кодовою базою. Вони виступають посередниками у конфліктах у спільноті щодо розвитку проектів і забезпечують правильне ліцензування коду. Найважливіше, фонди можуть збирати і організовувати спонсорство, допомагаючи купувати сервери, збільшувати пропускну здатність і надавати дотації для контриб’юторів проекту.

Open source бібліотеки: основа сучасного програмного забезпечення

Open source програмне забезпечення зустрічається скрізь. Наша нещодавня доповідь, у співпраці з Linux Foundation, показала, що на світовому рівні 55% підприємств впровадили open source операційні системи, в той час як 49% впровадили open source технології хмар та контейнерів, і 46% open source веб- і додатків. Навіть якщо проект не є повністю open source, він, найімовірніше, містить якийсь open source код, взятий з open source бібліотек: аудити кодових баз знайшли, що до 96% проектів містять open source код. Це не дивно: відкритий доступ до коду означає, що ним можуть працювати будь-яка кількість контриб’юторів, а також пропонує більше можливостей для ретельного тестування коду на наявність помилок.

Без підтримувачів, які управляють бібліотеками, багато open source бібліотек були б у стані стагнації. Деякі open source бібліотеки мають величезну кількість контриб’юторів, в той час як в інших випадках підтримувач може бути єдиним контриб’ютором. У останньому випадку бібліотека просто зупиняється, якщо підтримувач перестає працювати: більше ніяких виправлень, ніяких оновлень безпеки, ніяких виправлення помилок.

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

Чому тоді підтримувачі займаються цією роботою?

Що мотивує підтримувачів?

Як показав звіт Tidelift 2023, більшість з них прагнуть мати позитивний вплив на світ (70%) і цю роботу вважають творчою, складною та/або приємною (62%). Підтримувачі мотивовані вірою у програмне забезпечення, у спільноту та в open source філософію — в загальному розумінні. Але що це означає на практиці?

Перший епізод серії Canonical «Знайомство з Підтримувачами» починає розкривати, що ці загальні мотивації означають для окремих підтримувачів. Підтримувач ripgrep, Andrew Gallant (або BurntSushi, як його також називають) пояснює, що його перші внески до open source були натхненні його бажанням створити форум обговорень на своєму фан-сайті про «Сімпсонів». Починаючи з самозване «зламу» на proprietary форумному програмному забезпеченні VBulletin, Gallant розвинув інтерес до форумного програмного забезпечення в цілому. Як і мотивації інших підтримувачів, Gallant насолоджувався викликом і творчістю, що супроводжували «злам» PHP-коду, щоб змінити його так, щоб він «робив дрібниці». Два десятиліття потому, мотивації Gallant стали більше орієнтовані на громаду: задоволення від створення чогось, що «безкоштовне для всіх», і «спостереження за людьми, які використовують те, що він створює». Щоб дізнатися більше про численні бібліотеки та проекти, до яких Gallant вніс свій внесок протягом років, ви можете переглянути відео на нашому YouTube-каналі.

Підтримка підтримувачів: чому це допомагає і як ви можете це зробити

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

На щастя, віддавати данину open source проектам і бібліотекам просто і зрозуміло. Платформи, такі як thanks.dev, допомагають вам робити внески в репозиторії, на які спирається ваше програмне забезпечення, автоматично розподіляючи кошти пропорційно до того, наскільки часто залежність використовується. Це спрощує великим організаціям «управління логістикою підтримки тисяч проектів», включаючи глибоко вкладені пакунки та критично важливі непрямі залежності, які інакше можуть бути проігноровані.

Canonical розпочала пожертвування через thanks.dev у квітні 2025 року. Ми зобов’язалися пожертвувати 120,000 доларів США протягом 12 місяців по 10,000 доларів на місяць через платформу. Ви можете знайти повний список отримувачів на thanks.dev/r/canonical.

Визнання підтримувачів

Open source бібліотеки — це результати праці, які залежать від важкої роботи спільнот і талановитих розробників. Ця робота часто залишається непоміченою, неплатіною та невизнаною, але — прямо чи побічно — ми більше покладаємось на неї, ніж можемо усвідомлювати.

Як open source компанія, Canonical прагне розповсюджувати open source філософію серед якомога більшої кількості людей і спільнот. Ми реалізуємо власні проекти, але також вносимо внесок у багато інших, про які ви можете дізнатися на нашій веб-сторінці. «Знайомство з Підтримувачами» висвітлює підтримувачів бібліотек, визнаючи їхню працю, і, сподіваємось, надихне більше людей підтримувати open source, приєднуватися до спільнот та вносити внески до open source бібліотек.

Open source — це те, що ми робимо

Ми віримо в силу open source програмного забезпечення. Крім того, що ми реалізуємо проекти, такі як Ubuntu, ми також вносимо внесок у багато інших.

Дізнайтеся про проекти, які ми підтримуємо ›

Підписка на розсилку

Отримуйте останні новини та оновлення Ubuntu на свою електронну пошту.

Надсилаючи цю форму, я підтверджую, що я прочитав і погоджуюсь з Політикою конфіденційності Canonical.