Феномен open source: навіщо відкритий код Білому дому, NASA та нам, звичайним розробникам

Привіт! Мене звати Олег Бабій, я Software Engineer в SoftServe. Але в цій статті я хочу поговорити не стільки про свою роботу, як про захоплення — open source. Можливо, ви думаєте, що цим цікавляться тільки техногіки, але в цьому матеріалі я хочу переконати вас, що open source став безумовним трендом останніх десятиліть, який з невеликого руху переріс у глобальну тенденцію.

І він зачепив не тільки поодиноких розробників, а й великі технологічні компанії. Такі гіганти як Meta, Google, Amazon, Alibaba, Netflix, Twitter та Uber роками успішно створюють та широко застосовують відкрите програмне забезпечення у своїй роботі. За даними звіту Sonatype, у 2021-му році попит на open source зріс на 73% у порівнянні з роком до того.

Інтерес до нього підігрів, зокрема, неприємний інцидент — виявлення вразливості у бібліотеці журналів Java Apache Log4j (її використовують майже у всіх корпоративних продуктах, випущених Apache Software Foundation, а також в оупенсорсних проєктах, як от Redis, Elasticsearch, Elastic Logstash чи Ghidra). Це вже зачіпало мільйони проєктів по всьому світу. Білий дім провів саміт з великими технологічними компаніями щодо посилення безпеки open source. Google закликав до співпраці бізнесу та держави, аби open-source інструменти і далі могли широко застосовуватися для найрізноманітніших задач без подібних ризиків.

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

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

Що таке open source та як він з’явився?

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

Повернемося до виникнення цього явища. Open source зародився набагато раніше, ніж здається багатьом. Можна сказати, що відправною точкою є 1950-ті роки, коли компанія IBM почала випускати комп’ютери IBM 701, які стали доступними для наукових інституцій, військових та державних структур. Але кажучи «комп’ютер», я маю на увазі фізичну коробку, — за 16 тисяч доларів орендної плати на місяць інститут отримував тільки залізо без операційки та програм. Їх писали самі вчені та інженери та ділилися розробками одне з одним. Тобто, сама історія комп’ютерного програмного забезпечення починається з open source.


The IBM 701 Defense Calculator

Так, відкрито і спільними зусиллями, за кілька років спільнота напрацювала примітивну операційну систему, мови програмування Interslip та UCI Lisp, а також компілятори РАСТ. Тоді весь софт був за замовчуванням загальнодоступним і безкоштовним.

В 1970-х AT&T випустили першу версію UNIX, яка стала основою для багатьох сучасних операційок: AIX, HP-UX, IRIX, Mac OS X, LynxOS та інших. Ця ОС була націлена на масовий ринок завдяки невисокій ціні, легкості перенесення з одного комп’ютера на інший, що значно спрощувало використання ОС в побутових умовах. Вона складалася з різних модулів, кожен з яких відповідав за окрему функцію і легко мінявся.

Але чим більше ставало комп’ютерів, тим більшала кількість ПЗ — й більше людей були причетні до їх розробки. Виникало питання: чи треба його ліцензувати? Тож згодом за діло взялися юристи та через ліцензії, авторські права і торгові марки софт перестав бути надбанням суспільства — і став надбанням окремих компаній. У п’ятої версії UNIX з’явилася ліцензія для навчальних інституцій, а для наступної вперше представили ліцензію для компаній. На цьому почали добре заробляти.

Однак «комп’ютерних ентузіастів», які просто люблять програмувати та вивчати можливості комп’ютера, вистачало. Одним з них був Річард Столмен. На початку 80-х все більше розробників стали працювати за зачиненими дверима приватних компаній, з’явилося NDA та дух спільного програмування потроху згасав. Проте Столмен вірив у те, що ПЗ повинне бути доступне для ком’юніті. І він знайшов вихід, створивши власне ПЗ і, як автор, давши дозвіл на його розповсюдження. Так він заснував проєкт GNU («GNU’s Not Unix») — софт, який підходив для Unix, але був «необтяжений правами на інтелектуальну власність, які могли обмежувати вибір користувачів».

GNU/Linux, який зазвичай називають просто Linux, — один із найвидатніших прикладів open source. Його ядро розробив фінський програміст, на той час студент Університету Гельсінкі, Лінус Торвальдс. Linux був створений як альтернативна, безкоштовна open-source версія операційної системи MINIX, що базувалася на принципах роботи і дизайні Unix. Він випущений під GNU General Public License (GPL). Це копілефт-ліцензія, яка дозволяє її власнику користуватися, вивчати, змінювати софт, і навіть продавати його. Протилежна пропрієтарна (власницька) ліцензія, навпаки, обмежує права користувача в роботі з початковим кодом.

Для чого розробникам open source?

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

Для мене, як і для багатьох інших оупенсорсерів, — це спосіб обмінюватися знаннями, нетворкатися, розвивати свої навички, «набивати» портфоліо та бути частиною активного ком’юніті.

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

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

Якщо говорити вже про більш прокачану аудиторію, то ось які переваги open source наводять в Red Hat, американській ІТ-компанії, що займається розробкою вільного програмного забезпечення.

  • Peer review. Код регулярно перевіряється та допрацьовується завдяки активному ком’юніті.
  • Прозорість. В open-source коді можна відстежувати усі зміни та переміщення даних.
  • Надійність. Пропрієтарний код, залежить від єдиного автора або ж компанії, яка мусить його удосконалювати, оновлювати та випускати нові патчі. На противагу цьому оупенсорсний код існує поза автором, адже після публікації, він вже опиняється в руках цілої ком’юніті. Відкриті стандарти та peer review гарантують, що код періодично та належним чином тестується.
  • Гнучкість — це один із принципів відкритого програмного забезпечення, що дозволяє вам використовувати код для різних потреб. Тут можна покластися на допомогу ком’юніті та peer review, коли ви втілюєте нові рішення.
  • Незалежність від вендорів. Це означає, що ви можете взяти код і використати його, як вам захочеться й коли захочеться.

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

Де шукати цей open source?

Техгіганти розвивають власні open-source платформи, куди можуть контріб’ютити сторонні розробники. Такі, зокрема, мають Meta, Microsoft, навіть у NASA є власна платформа Code.

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

Таку платформу свого часу створили й ми у SoftServe, аби девелопери всередині і поза компанією могли обмінюватися знаннями, покращувати скіли, розвиватися та створювати інновації. Ця ідея зародилася ще в середині 2018 року і, отримавши підтримку працівників та керівництва, вдалося запустити таку ініціативу. Ми дослідили світовий досвід, опитали співробітників, визначили правила та засади роботи та врешті створили платформу OpenSource. Усі проєкти, опубліковані на сайті OpenSource — відкриті та доступні для кожного.

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

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

Найцікавіші проєкти на OpenSource

Загалом на нашій платформі є 41 проєкт та 46 членів, тобто людей, які зареєстровані на сайті і контріб’ютять туди. Проєкти написані на 14 різних мовах програмування (.NET, Bash, C, C#, C++, CSS, Erland, GO, Java, JavaScript, Kotlin, Python, Ruby, Vim Script) та з використанням таких технологій, як BigData, Data Science, Django, Elixir, Machine Learning, Node.JS, React.JS, Revel, Ruby on Rails.

Серед них є два цікавих проєкти, на які я хотів би звернути вашу увагу.

Перший — Investment Products Recommendation Engine (IPRE). Це спільний проєкт SoftServe та Google Cloud, що дозволяє надавати якомога точніші персоналізовані рекомендації щодо інвестицій. IPRE збирає та обробляє дані ринку щодо доступних інвестиційних продуктів, таких як акції або облігації, з допомогою BigQuery та Cloud Functions.

Другий проєкт — це smartparking. Ми вже розповідали про нього на dou. Це розумна система паркування, що дозволяє аналізувати доступність паркомісць з допомогою відеостріму через IP-камери. Завдяки алгоритмам машинного навчання система аналізує зображення, отримані з камер. Оброблена інформація негайно з’являється на екрані, демонструючи вільні, зайняті та зарезервовані місця.

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

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

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
GNU/Linux, який зазвичай називають просто Linux, — один із найвидатніших прикладів open source.

Это впринципе единственный успешный os проєкт. Если бы у Торвальдса в одном месте не чесалось бы нагнуть кого-то, то мы бы до сих пор ждали бы ядро гну от Столмана.

Це означає, що ви можете взяти код і використати його, як вам захочеться й коли захочеться.

А это не всегда так, всё зависит от лицензии. Есть такие опенсоурс лицензии, что такое и даром лучше не использовать, потому что по судам затаскают.

завдяки колаборативному підходу

Тут нужно пошутить про колаборантов.

Open Source — это большая мусорка, где всегда можно что-то украсть.

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

У NASA открытая лицензия взяла все худшее из всех открытых лицензий, та же вирусная схема GPL, которая заставляет всех косвенно работать бесплатно на NASA и поддержку их кода, потому что по сути легально их код в коммерческом использовании за пределами NASA вызывает проблемы с легальностью использования.

Это что это мешает коммерческому использованию например Linux или GCC ? Это просто другая бизнес модель, которая себя уже доказала.

Да, мешает обоим, особенно производителям железа GPL стоит поперек горла и мы это в маркетинге используем очень активно. Gcc как компилятор для классических архитектур ещё живёт, но LLVM по популярности и по использованию уже давно впереди. Например, 100% вендоров GPU используют для компиляции кода именно его.

Для чего оупен-соурс компаниям понятно — бесплатные кодеры всегда приветствуются.

Для чего оупен-соурс джунам тоже понятно — продемонстрировать своё портфолио потенциальным работодателям.

Но для чего оупен-соурс состоявшимся и востребованным спецам — хрен знает.

П.С. Кроме того, оупен-соурс это 1) нарушение экспортных ограничений 2) поддержка террористов. Потому, хорошо бы западным регуляторам весь оупен-соурс банить.

Підписатись на коментарі