Почему нам нужно больше Open Source Data Science
Почти все мы пользуемся ПО с открытым исходным кодом (Open Source Software или OSS), это часть нашей жизни. Коллективное сотрудничество в создании программного обеспечения изменило мир разработки ПО и мир вообще. Но мы не видим тех же действий в области data science. В DAGsHub мы проводим много времени, думая о open source data science (OSDS) и разговаривая с дата-сайентистами. Эта статья представляет собой краткое изложение некоторых таких бесед в нашем сообществе. Цель этой статьи — сформулировать, почему открытый исходный код является важной частью разработки программного обеспечения сегодня и выдвинуть аргумент о том, что открытость источников будет важной частью data science в ближайшем будущем.
Прежде чем утверждать, что Open Source Data Science имеет смысл, начнем с объяснения, почему имеет смысл Open Source вообще.
Дело открытого ПО
Многие считают преимущества открытого ПО очевидными, и большинство разработчиков и компаний-разработчиков ПО вовлечены в определенные отношения с сообществом открытого ПО. Но так было не всегда.
Краткая история программного обеспечения с открытым исходным кодом
В самом начале — в 1950-1960-е годах — код почти всего программное обеспечения был открыт. Открытое ПО создавалось исследователями и учеными, которые в духе науки делились им с обществом.
Но даже позже, когда такие компании, как IBM, продавали свои первые компьютеры, программное обеспечение распространялось вместе с его исходным кодом чтобы дать возможность «хакерам» исправлять ошибки и улучшать продукт.
Закрытое программное обеспечение постепенно стало стандартом к концу 1960-х годов, когда цены на ПО значительно выросли по сравнению с аппаратным обеспечением. Технологический сдвиг, как и многие другие сдвиги, начался с антимонопольного иска против IBM, закончившегося выводом, что поставляемое программное обеспечение мешает конкуренции.
Несколько лет спустя, в 1974 году, США пришли к выводу, что программное обеспечение может защищаться законом об авторских правах, и таким образом началась эпоха (и бизнес-модель) программного обеспечения с закрытым исходным кодом. Хотя открытый исходный код никуда не исчезал (пример — TeX), он пережил своего рода ренессанс, начавшийся с проекта GNU в 1983 году. Этот расцвет значительно проявился только в конце 1990-х годов в начатых Линусом Торвальдсом Linux и Git, конечным результатом стал GitHub.
Почему это не всегда было очевидно
Есть известная цитата о Википедии, применимая и к открытому исходному коду:
Проблема Википедии [читайте: Open Source] в том, что она работает только на практике. Теоретически она — всеобщая катастрофа — Гарет Оуэн
В первые дни существования программного обеспечения с открытым исходным кодом существовало твердое убеждение, что компании — разработчики ПО никогда не будут делиться своим исходным кодом, поскольку он, как их интеллектуальная собственность — самое ценное сокровище, и раздавать его конкурентам просто не имеет никакого смысла.
Программное обеспечение с закрытым исходным кодом имеет свои преимущества — оно, как правило, лучше поддерживается, имеет набор функций богаче и иногда удобнее в использовании. Действительно, у компаний есть интеллектуальная собственность, которую они хотели бы защитить, и не всегда ясно, как открытый исходный код вписывается в бизнес-модели разработчиков или компаний. Другими словами, иногда открытое ПО затрудняет зарабатывание денег. С другой стороны…
Преимущества открытого ПО
Сегодня многие преимущества открытого ПО очевидны:
И конечно, выпуск внутреннего проекта с открытым исходным кодом — это прекрасный PR (я говорю о пиаре, не о пул-реквестах), особенно когда у вас есть построенный вокруг него продукт с закрытым исходным кодом и/или если ваши пользователи — это разработчики.
Иногда это просто имеет смысл
Когда имеет смысл создавать проекты с открытым исходным кодом? Я думаю, что мы можем определить «критерий открытого исходного кода» для организаций таким образом:
Когда проект решает общественную проблему и не является частью вашего основного продукта (это эмпирическое правило, хотя есть исключения), открыть его исходный код — хорошая идея.
В качестве примера посмотрим на React. React — это библиотека JavaScript для построения пользовательских интерфейсов. Она была выпущена компанией Facebook в 2013 году. Распространяется по лицензии MIT, главным образом это означает, что вы можете использовать его для чего угодно, включая коммерческие проекты.
Проанализируем React с точки зрения продукта: он решает серьезную проблему в веб-разработке — создавать пользовательские интерфейсы с нуля трудно. Понятно, что проблема широко распространена, а также понятно то, что решение этой проблемы не является целью Facebook как компании — они продают рекламу, строят социальные сети.
Это означает, что React является примером критериев, изложенных выше — он решает общественную проблему и не является основной интеллектуальной собственностью компании. Поэтому выпуск React как открытого ПО обеспечивает Facebook все преимущества при небольшом количестве недостатков.
Open Source Data Science
Я думаю, теперь вы должны быть убеждены, что открытое ПО ценно. Давайте поговорим о том, как эти понятия переносятся в область data science. Обрисуем более подробно видение того, как open source data science может работать, приведя соответствующий «критерию открытого исходного кода» пример — распознавание лиц.
Наверное, вы можете легко придумать несколько приложений, применяющих распознание лиц. Давайте рассмотрим распознавание лиц в контексте диагностики заболеваний и рекомендаций в моде. Быстрый поиск в Google покажет, что есть делающие именно это компании.
В первом случае фотография пациента делается в рамках медицинского осмотра (или дома), затем снимок анализируется, чтобы распознать возможные заболевания и помочь врачам расставить приоритеты, учитывая неотложные случаи, и лечить больше людей. Во втором случае приложение рекомендует лучшую одежду в соответствии с вашей историей покупок, а также чертами лица или вашей конституцией.
Занимающиеся этими двумя проблемами компании определенно не конкурируют. Их интеллектуальная собственность — система диагностики заболеваний или рекомендаций в моде. Однако сегодня обе компании, скорее всего, параллельно развивают важнейшую часть своих систем — распознавание лиц. Это означает дублирование работы, а также трату большого количества времени дата-сайентистов и денег.
В мире open source data science обе компании будут работать над открытым проектом распознавания лиц, вносить код и данные, чтобы помочь бороться с крайними случаями и создать решение надежнее. Компании могли бы выделить для этой задачи меньше дата-сайентистов, чем сегодня, и направить их работу на более сложные и критически важные проблемы.
Новые дата-сайентисты, желающие изучить и продемонстрировать свои навыки для улучшения своего портфолио, будут мотивированы выявить ошибки и неэффективность, создавать альтернативные модели, определяющие приоритетность различных показателей для различных вариантов использования.
В довершение всего, ищущие перспективных дата-сайентистов компании, могли бы связаться с теми, кто уже внес свой вклад в проекты интересующие компанию, тем самым сократив время найма и включения в работу новых членов команды.
В последнее время темам прозрачности ИИ, разнообразия и инклюзивности в области технологий уделяется основное внимание. OSDS в этих областях может оказывать значительное влияние. Чтобы привести пример, предположим, что пользовательница одного из этих продуктов (дата-сайентист) обнаруживает, что распознавание лиц плохо работает на ее фотографии. Она просматривает набор данных и понимает, что там нет изображений этнического меньшинства, к которому она принадлежит. Она добавляет заполняющие пробел изображения из другого набора данных, отправляет пул-реквест — и модель работает намного лучше, а компании наслаждаются новой, улучшенной моделью. По-настоящему беспроигрышная ситуация.
Когда я начал писать эту статью, это был теоретический пример. Теперь пример не теоретический.
В качестве финала статьи я хотел бы написать о двух примерах того, как open source data science должна и не должна выглядеть на практике.
Программное обеспечение с открытым исходным кодом, замаскированное под open source data science
Я уже слышу возражение: «я клонировал tensor2tensor и BERT из GitHub, это уже open source data science!» или «Код из многих статей, которые я читал на arXiv размещен в интернете».
Аргумент, который я хотел бы привести: это открытое ПО, но не open source data science
Если код в одном из таких примеров содержит ошибку, которая приводит к тому, что API для опубликованной модели по какой-то причине не работает, независимый программист обычно может внести исправление ошибки в виде пул-реквеста. С другой стороны, если независимый дата-сайентист осознает, что в данных есть проблема, скажем, модель предвзята к определенным этническим группам, в большинстве таких случаев, дата-сайентисты не могут изменить набор данных и создать улучшенную модель. Это вклад в код, но не в научные данные проекта. Другими словами, проект фактически становится проектом открытого ПО. Open source data science также может иметь важный побочный эффект в смысле исследований в области data science.
Повышение качества научных исследований в data science
Повышение качества научных исследований является важной целью, к которой следует стремиться. Несколько заметных усилий по достижению этой цели заключаются в следующем:
Проще говоря, поскольку процесс исследования непрозрачен, мы не знаем, действительно ли результат представляет собой прогресс в исследованиях или это удачная случайность. В мире open source data science исследовательские группы могли бы опубликовать всю историю своих исследований, а затем представлять статью на рецензирование. Рецензенты смогут обеспечить полезную обратную связь и гарантировать строгость метода исследования. Каждый будет наслаждаться более качественными исследованиями в области data science.
Уже традиционно напоминаем, что если вас привлекает перспективная сфера data science — используйте специальный промокод HABR, который дает дополнительные 10% к скидке указанной на баннере.
164 крутых опенсорс проекта для новичков
164 крутых опенсорс проекта, которые отлично подойдут новичкам. Здесь вы найдете и личного помощника, и PDF ридер, и обилие разных фреймворков. Отличное место для старта.
Список содержит множество абсолютно разных разработок на разных языках программирования, которые облегчат вам освоение какой-либо темы. Не имеет значения какой язык вы предпочитаете, здесь есть проект на любой вкус.
Shouldly (label: Jump-In)
Neovim (label: entry-level)
Vim-fork, сфокусированная на расширяемости и увеличении оперативности.
xoreos (label: first-timers-only)
Повторная реализация движка Aurora BioWare (и производных).
electron (label: help/beginner)
Создавайте кросс-платформенные десктопные приложения с JavaScript, HTML и CSS.
tensorflow (label: stat:contributions welcome)
Вычисление с использованием графиков потока данных для масштабируемого машинного обучения.
Clojure
Alda (label: low-hanging-fruit)
ClojureScript
LightTable (label: beginner)
Редактор кода следующего поколения! Один из лучших проектов на KickStarter.
Elixir
Elixir (label: Level:Starter)
Динамический, функциональный язык, предназначенный для создания масштабируемых и maintainable приложений.
Docker (label: exp/beginner)
Движок контейнера приложений с открытым исходным кодом.
Apex (label: contrib (easy))
С легкостью создавайте, развертывайте и управляйте функциями AWS Lambda.
Hugo (label: exp/beginner)
Быстрый и гибкий статический генератор сайтов, построенный с любовью в GoLang.
CockroachDB (label: easy)
Масштабируемая, живучая, согласованная база данных SQL.
Helm (label: starter)
Менеджер пакетов Kubernetes
TEAMMATES (label: d.FirstTimers)
TEAMMATES- это бесплатный онлайн-инструмент для управления оценками и другими способами обратной связи ваших студентов.
elasticsearch (label: low hanging fruit)
Распределенный, REST поисковой движок с открытым исходным кодом.
JabRef (label: beginner)
Дестктоп приложение переходящее из SWING в JavaFX. Сосредоточьтесь на качестве кода: используйте инструменты для улучшения качества кода, такие как CodeCov и Codacy. Каждый pull-запрос рассматривается двумя разработчиками для обеспечения обратной связи и обеспечения высокого качества новых контрибуций.
JavaScript
annyang (label: first-timers-only)
Популярная библиотека распознавания речи, используемая для общения со всем: от вебсайтов и умных зеркал до летающих дронов.
Clementine.js Boilerplate (label: beginner)
Элегантный и легковесный шаблон full stack JavaScript.
PouchDB (label: first time only)
PouchDB – карманная база данных.
Leaflet (label: easy fix)
Библиотека JavaScript для мобильных интерактивный карт.
angular-formly (label: first-timers-only)
Поддержка JavaScript для AngularJS.
Dragula (label: first-timers-only)
До боли простое перетаскивание.
UI.Layout directive (Angular UI) (label: first-timers-only)
Директива Angular, которая позволит вам сплитить.
history (label: good-for-beginner)
Минимальная библиотека функциональной истории для JavaScript.
TodoMVC (label: first time contributor)
Помощь в выборе фреймворка MV * через реализацию Todo во множестве приложений Javascript.
Adobe Brackets (label: starter bug)
Оупен-сорс редактор кода для веб, написанный на JavaScript, HTML и CSS.
Chai (label: easy-fix)
Фреймворк BDD / TDD для node.js и браузера, который может быть сопряжен с любой средой тестирования.
AVA (label: good for beginner)
Футуристический тест раннер.
Kinto.js (label: easy-pick)
Клиент, работающий в автономном режиме, с использованием API Kinto для удаленной синхронизации данных.
ESLint (label: beginner)
Полностью подключаемый инструмент для идентификации и отчетности по шаблонам в JavaScript.
Webpack (label: easy)
Бандлер для javascript и друзей.
Tessel 2 CLI (label: contribution-starter)
Интерфейс командной строки к Tessel 2.
Ember.js (label: Good for New Contributors)
Фреймворк JavaScript для создания амбициозных веб приложений.
Ember.js Data (label: Good for New Contributors)
Библиотека сохранения данных для Ember.js.
FreeCodeCamp (label: first-timers-only)
Открытый исходный код с учебным планом. Научитесь кодить и помогите некоммерческим организациям.
Ghost (label: beginner)
Просто платформа для блоггинга.
eslint-plugin-unicorn (label: good for beginner)
Прекрасные правила ESLint.
Hyper (label: Good for beginners)
pdf.js (label: 5-good-beginner-bug)
PDF читалка на JavaScript.
Moment.js (label: Up-For-Grabs)
Легковесная JavaScript библиотека дат для парсинга, синтаксического анализа, манипулирования и форматирования датами.
serverless (label: help-wanted-easy)
Hoodie Camp (label: first-timers-only)
React server (label: good-first-contribution)
React фреймворк с рендерингом сервера для быстрой загрузки страниц и плавных переходов между ними в браузере.
Yarn (label: good first bug)
Быстрое, надежное и безопасное управление зависимостями.
pixi.js (label: Difficulty: Easy)
2D JavaScript рендер.
Next.js (label: Good for beginners)
Минималистичный фреймворк для универсальных серверных приложений React.
keystonejs (label: good first task)
Фреймворк с открытым исходным кодом для разработки веб-сайтов, приложений и API-интерфейсов с базами данных в Node.js на Express и MongoDB.
Semantic-UI-React (label: good first contribution)
Официальная интеграция React для семантического интерфейса.
Botpress (label: for-new-contributors)
Единственный разумный способ создавать крутых ботов.
Julia
Julia Language: Intro Issues (label: intro issue)
Julia Language: Up for Grabs (label: up for grabs )
phpMyAdmin (label: newbie)
Админ интерфейс для MySQL, написанный на PHP.
Deployer (label: good for beginner)
Инструмент развертывания, написанный на PHP с поддержкой популярных фреймворков.
Piwik (label: Easy Pick)
Python
catapult (label: Good First Bug)
Python Babel (label: difficulty/low)
Библиотека интернационализации Python.
Kinto (label: easy-pick)
Легковесная служба хранения JSON с возможностью синхронизации и совместного использования.
Pinax (label: first-timers-only)
Django-платформа для быстро развивающихся веб-сайтов.
BorgBackup (label: easy)
Дедупликация программы резервного копирования со сжатием и аутентификацией.
pylearn2 (label: For beginners)
Библиотека машинного обучения основанная на Theano.
scrapy (label: easy)
Быстрый высокоуровневый веб-краулерный и скрапинг фреймворк для Python.
mitmproxy (label: good first contribution)
Интерактивный TLS-совместимый HTTP-прокси-сервер для тестеровщиков на проникновение и разработчиков программного обеспечения.
Mailpile (label: low hanging fruit)
Бесплатный и открытый, современный, быстрый почтовый клиент с удобными функциями шифрования и конфиденциальности.
coala (label: difficulty/newcomer)
Единый интерфейс командной строки для линтирования и исправления всего вашего кода, независимо от используемых вами языков программирования.
jarvis (label: difficulty/newcomer)
Личный помощник для Linux на основе интерфейса командной строки.
qutebrowser (label: easy)
Управляемый клавиатурой, vim-подобный браузер, основанный на PyQt5.
JRuby (label: beginner)
Воссоздание Ruby на Java Virtual Machine.
puppet-mcollective (label: beginner friendly)
MCollective Server и client puppet модуль.
Sinatra (label: your-first-pr)
Крутая веб-разработка в оболочке DSL.
Goby (label: beginner)
Фреймворк для создания текстовых RPG.
Hanami (label: easy)
Современный фреймворк для Ruby.
operationcode (label: beginner friendly)
Сообщество с открытым исходным кодом, посвященное кодированию для военных ветеранов.
chef (label: Type: Jump In)
Фреймворк системной интеграции, созданный для получения преимуществ управления конфигурацией для всей вашей инфраструктуры.
ohai (label: Type: Jump In)
Ohai профилирует вашу систему и выдает JSON.
Servo (label: E-easy)
Браузерный движок созданный для приложений, включающих встроенное использование.
Rust-Clippy (label: E-easy)
Подборка для отлова частых ошибок и улучшения кода.
Rustfmt (label: easy)
Инструмент для форматирования кода Rust в соответствии с правилами.
Iron (label: easy)
Расширяемый многопоточный веб-фреймворк для Rust.
Scala
Twitter Util (label: Starter)
Прекрасный повторно используемый код от Twitter.
playframework (label: newbie)
Подборка проектов, которые отлично подойдут новичкам. Здесь вы найдете и личного помощника, и PDF ридер, и обилие разных фреймворков. Отличное место для старта.
Больше чем софт: что такое код open source и для чего он нужен
Согласно определению на Open Source Initiative, Open Source Software или программное обеспечение с открытым исходным кодом — это ПО, «исходники» которого доступны для просмотра и изменения. Исходный код можно использовать, чтобы создавать свои модификации софта, а также свободно распространять и даже продавать их.
Принцип открытости со временем охватил не только сферу программирования, но и другие области. Дизайнеры могут размещать в открытом доступе бесплатные шрифты и шаблоны, программисты — коды мобильных приложений и онлайн-игры, ученые — исследования.
В последние годы потребителями открытого ПО становятся целые страны. Французская жандармерия использует на своих компьютерах свободное ПО Ubuntu, а другие министерства переходят с Microsoft Office на бесплатный LibreOffice. Этот офисный пакет также используют министерства обороны Нидерландов и Италии, муниципалитеты Албании и Испании. А правительство Великобритании перешло с формата PDF в документации на опенсорс-формат Open Document Format for Office Applications (ODF) по умолчанию. РБК Тренды разобрались, в чем плюсы и минусы открытого софта.
С чего начиналось свободное ПО
С 1952 по 1955 год компания IBM начала выпускать IBM 701, первый коммерчески доступный компьютер. ЭВМ не продавали конечным потребителям, а сдавали в аренду научным институтам, военным компаниям и госпредприятиям. Машины поставлялись без операционной системы и программ. Ученые и инженеры начали писать софт сами и делились им с коллегами из других компаний, у которых были аналогичные ЭВМ.
Со временем коммерческих моделей компьютеров становилось больше, и они стали доступны обычным пользователям. Однако под каждую из этих моделей придумывали отдельное ПО. Компании-производители создавали каждый свою операционную систему: BESYS, Compatible Time-Sharing System или CP/CMS. Эти ОС начинали продавать вместе с ПК, и иногда они стоили дороже самого компьютера.
Разработчик Ричард Столлман присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте (MIT). Он принимал участие в работе над свободным ПО, например, над EMACS — текстовым редактором для мини-компьютеров семейства PDP. Позднее редактор продали коммерческому дистрибьютору. В 1984 году Столлман решил основать проект свободного ПО под названием GNU (рекурсивный акроним от англ. GNU’s Not UNIX).
В рамках этого проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение. Они опубликовали манифест GNU. В 1985 году Столлман основал фонд Free Software Foundation (FSF) для развития свободного ПО за счет пожертвований. В 1989 году появилась первая версия лицензии GPL — General Public License («Универсальная общественная лицензия GNU»). Она должна защитить свободу всех пользователей программ, давать права на копирование, модификацию и распространение софта. Столлман добавил в лицензию понятие «авторское лево» в противовес «авторскому праву», по которому пользователи всех производных программ получают все оригинальные права создателя. Позднее появились другие лицензии, которые позволяют использовать свободное ПО, например, лицензия MIT от Массачусетского технологического института или лицензия BSD от Калифорнийского университета в Беркли.
К 1991 году разработчикам удалось создать независимую работоспособную ОС, но ей не хватало ядра. Тогда Линус Торвальдс выпустил ядро Linux с открытым кодом, а в 1992 году лицензировал его по GPL.
В середине 1990-х годов в open source пришла первая крупная компания Netscape. Ее браузер Navigator был одним из самых популярных в мире, но с появлением Internet Explorer он стал вытесняться с рынка. В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator стал основой для одного из самых популярных браузеров — Mozilla Firefox.
В 1998 году возникла организация Open Source Initiative (OSI), которая занимается популяризацией открытого кода. В том же году разработчики придумали альтернативу термину «свободное ПО». Они решили внедрить понятие open source, чтобы сменить парадигму бесплатности на доступность. Впоследствии разработчики Эрик Реймонд и Брюс Перенс написали «Определение Open Source».
В 2014 году представители фонда поддержки открытых проектов Linux Foundation заявили, что в будущем 80% стоимости технологий будет приходиться на открытый код и только 20% — на платные программы.
Плюсы открытого кода
Обсуждения плюсов и минусов и активны по сей день. Однако многие разработчики сходятся в общем понимании позитивных и негативных сторон опенсорс-проектов.
Для пользователей
Для разработчиков:
Для корпораций:
Минусы open source
Плагиат. Коммерческие структуры могут использовать открытый код для своих продуктов без указания его авторства. Иногда они вносят минимальные изменения в код, чтобы выдавать его за собственный. Подобное случилось с участниками проекта Leela, которые разработали бесплатный шахматный движок Chess Zero с настраиваемой нейронной сетью. Его использовала компания ChessBase, которая выпустила шахматную программу Fat Fritz. Пакет программ ChessBase Fritz компании стоит от €79 до €99. При этом она отрицает, что каким-либо образом задействовала открытый код.
Аналогичная история была и с Amazon Web Services, которая запустила CloudWatch Synthetics Recorder, расширение Chrome для записи взаимодействий с браузером. Однако данный сервис оказался полностью скопирован с проекта Headless Recorder, созданного разработчиком Тимом Нолетом. В AWS факт плагиата не признавали.
Отсутствие поддержки. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Таким образом, они не могут оказывать должную поддержку. Кроме того, существует риск, что разработчик небольшого проекта отойдет от дел, а продолжать его дело будет некому, и код начнет устаревать. Проект Libraries.io обнаружил более 2 400 библиотек с открытым кодом, используемых минимум в 1 тыс. других программ, не получавших должного внимания со стороны опенсорс-сообщества. Для потребителя такой программы это может стать проблемой. К примеру, когда программист Азер Кочулу удалил свою библиотеку Leftpad из интернета, проблемы возникли у Facebook, Netflix и других проектов.
Незамеченные уязвимости. Каждый открытый проект зависит от более мелких. В этой цепочке зависимостей легко может возникнуть дыра в безопасности, которую могут долго не замечать. В 2014 году такая уязвимость в безопасности Heartbleed была обнаружена в OpenSSL — программе с исходным кодом, используемой практически всеми веб-сайтами, обрабатывающими платежи с банковских карт. Она делала все эти ресурсы уязвимыми для атак хакеров и кражи данных. По данным GitHub, 17% всех уязвимостей создаются со злонамеренными целями. Исследователи отмечают, что они могут просуществовать до четырех лет, прежде чем будут устранены.
Проекты с открытым кодом
Проекты GNU и Linux послужили основой для многих продуктов. А приход компании Netscape позволил привлечь внимание ИТ-гигантов, которые со временем начали активно вкладываться в open source.
Проект Debian, одной из старейших операционных систем, основанных на ядре Linux, с момента своего основания разрабатывался открыто. Фонд свободного программного обеспечения спонсировал проект с 1994 по 1995 год, а затем создатели организовали некоммерческую организацию «Программное обеспечение в общественных интересах» для финансирования Debian. Проект включает популярные бесплатные программы, такие как LibreOffice, браузер Firefox, почту Evolution, устройство записи дисков K3b, медиаплеер VLC, редактор изображений GIMP и программу просмотра документов Evince.
Организация Apache Software Foundation тоже начиналась как открытый проект по развитию одноименного программного обеспечения, в том числе веб-сервера Apache. Данный сервер считается одним из наиболее популярных. Он позволяет запускать сайты небольших проектов и малого бизнеса на WordPress. В наше время разработчики поддерживают множество софтверных проектов, которые имеют открытую лицензию Apache Software License. Спонсорами ASF выступают такие гиганты как Microsoft, Huawei и Amazon Web Sevices.
Компания Red Hat, производитель программного обеспечения на основе операционной системы Linux, возникла в 1995 году. Она не только выпускала софт, но и занималась технической поддержкой и обучением системных администраторов и разработчиков. В 2018 году компанию купила IBM.
Google развивалась благодаря Linux и открытому ПО. Компания сама поддерживает такие проекты как библиотека машинного обучения TensorFlow, язык программирования Go, ПО для автоматизации развертывания приложений Kubernetes и другие. В 2017 году Google открыла портал для 2 тыс. своих open source проектов. Компания делится своими наработками в области открытого кода, а также рассказывает о поддержке новых инициатив.
Microsoft, которая изначально была против open source, в последние годы также изменила отношение к свободному ПО. В 2018 году компания передала 60 из 90 тыс. своих патентов на разработки Open Invention Network (OIN) — организации, которая владеет патентами на программное обеспечение открытой экосистемы GNU/Linux и предоставляет право на их бесплатное использование. Чуть позже корпорация приобрела портал репозиториев открытого года GitHub, а также активно принимает участие в развитии открытых проектов, в том числе, Linux.
Организация Open Source Design объединяет дизайнеров, которые разрабатывают проекты с открытым кодом. Она существует более пяти лет. В работе организации принимают участие UX-дизайнеры Mozilla, GNOME, Fedora, Canonical (Ubuntu), WordPress, Drupal, Libre Office, «википедии» для дизайнеров XWiki и других компаний.
В науке опенсорс-подход распространяется не только на открытое ПО, но и на публикации работ исследователей, открытое рецензирование и развитие открытых образовательных ресурсов. Еще в 1991 году физик Пол Гинспарг основал электронный архив arXiv при Лос-Аламосской национальной лаборатории для публикации в открытом доступе препринтов. Теперь там публикуются работы не только по физике, но и по медицине, математике и еще ряду направлений. Европейская организация по ядерным исследованиям (ЦЕРН) поддерживает не только выпуск оборудования с открытым исходным кодом и открытой лицензией, но и собственный портал открытых данных. Ученые применяют инструменты с открытым кодом также для того. чтобы раскрывать методологию своих исследований. К примеру, они используют Open Notebooks для документирования рабочих процессов.
Продукты с открытым кодом используют не только специалисты, но и обычные пользователи, причем иногда они даже не подозревают об этом. LibreOffice, OpenOffice и NeoOffice позволяют бесплатно работать с текстовыми документами, таблицами, графиками, рисовать и делать презентации. 7-Zip, файловый архиватор с высокой степенью сжатия, помогает экономить место на ПК и передавать большие файлы. Графический редактор GIMP способен заменить Photoshop, так как включает инструменты цветокоррекции, фильтры, рисующие инструменты, маски и слои.
Примеру опенсорс-проектов следуют и корпорации, которые открывают свои программы для улучшения. Так, Microsoft решила поделиться кодом приложения «Калькулятор» для Windows, чтобы открытое сообщество предлагало для него исправления и новые функции.
Открытый исходный код в наши дни помогает поддерживать технологии искусственного интеллекта, блокчейна и сложных вычислений. Согласно отчету Red Hat, который опросил 1 250 ИТ-лидеров по всему миру, 90% этих предприятий используют открытый исходный код: 64% компаний задействуют такое ПО для модернизации инфраструктуры, 54% — для разработки приложений, 53% — для цифровой трансформации. За последние два года эти показатели увеличились на 11%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.