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

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

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

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

Як працюють бібліотеки з відкритим вихідним кодом

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

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

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

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

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

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

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

Чому, тоді, технічні керівники виконують цю роботу?

Що мотивує технічних керівників?

Перший епізод серії “Meet the Maintainers” від Canonical починає розкривати, що ці загальні мотиви означають для окремих технічних керівників. Технічний керівник ripgrep Ендрю Галлант пояснює, що його перші внески у відкритий код були натхнені бажанням організувати форум для свого фан-сайту про “Сімпсонів”. Починаючи з “хакінгу” на закритому програмному забезпеченні VBulletin, Галлант зацікавився форумним програмним забезпеченням в цілому.

Підтримка технічних керівників: чому це важливо і як ви можете це зробити

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

На щастя, повертатися до відкритих проектів і бібліотек досить просто. Платформи, такі як thanks.dev, допомагають вам робити внески до репозиторіїв, на які спирається ваше програмне забезпечення.

Визнання технічних керівників

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

Canonical прагне поширювати філософію відкритого виходу серед якомога більшої кількості людей і спільнот. Ми реалізуємо власні проекти, а також вносимо персонал, код і фінансування у багато інших. Серія “Meet the Maintainers” проливає світло на технічних керівників бібліотек, визнаючи їх за їхню роботу та, сподіваємося, надихаючи ще більше людей підтримувати відкритий код, приєднуватися до спільнот і вносити свій внесок у бібліотеки з відкритим кодом.

Відкритий код – це те, що ми робимо

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

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

Підписка на новини

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

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