что значит закрытый исходный код
Закрытый исходный код
Закрытый исходный код — программа, лицензия которой не подходит под определение открытого ПО. Как правило, это означает, что распространяются только бинарные (откомпилированные) версии программы и лицензия подразумевает отсутствие доступа к исходному коду программы, что затрудняет создание модификаций программы. Доступ к исходному коду третьим лицам обычно предоставляется при подписании соглашения о неразглашении.
ПО с закрытым исходным кодом является проприетарным (собственническим) ПО.
Двусмысленность
Фраза «Закрытый исходный код» двусмысленна, так как она может подразумевать лицензии, в которых исходный код программ недоступен. Однако если считать её антонимом открытого кода, то она относится к программному обеспечению, не подходящему под определение лицензии открытого ПО, что имеет несколько другой смысл.
Лицензия Microsoft Shared source — пример лицензии, при которой доступен исходный код, но не под открытой лицензией. Если закрытый исходный код понимать как ПО, не подходящее под определение открытого ПО, то Shared source — пример лицензии закрытого исходного кода. Но если подразумевать под ним только те программы, исходный код которых недоступен, то это не так.
См. также
Полезное
Смотреть что такое «Закрытый исходный код» в других словарях:
Закрытый код — Проприетарное, частное или собственническое программное обеспечение (англ. proprietary software) программное обеспечение, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободы ПО (речь именно о… … Википедия
Warp4 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Warp 3 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Warp3 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Warp5 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Warp 4 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Миранда (IM) — Miranda IM Тип Программа мгновенного обмена сообщениями Разработчик Miranda IM Project Написана на C/C++ ОС Microsoft Windows … Википедия
Миранда IM — Miranda IM Тип Программа мгновенного обмена сообщениями Разработчик Miranda IM Project Написана на C/C++ ОС Microsoft Windows … Википедия
Миранда АйЭм — Miranda IM Тип Программа мгновенного обмена сообщениями Разработчик Miranda IM Project Написана на C/C++ ОС Microsoft Windows … Википедия
ОС/2 — OS/2 Warp Разработчик Microsoft Семейство ОС OS/2 Исходный код Закрытый исходный код Последняя версия 4.52 декабрь 2001 Тип ядра модульное Интерфейс графический Л … Википедия
Открытый или закрытый исходный код скрипта, в чем разница?
Доброго времени, мои уважаемые читатели! Сегодня я немного расскажу о разнице открытого и закрытого кода программного обеспечения(ПО) и как это может отражаться на работе предпринимателей, которые покупают ПО для организации своих бизнес процессов. Несмотря на то, что предприниматель редко задается таким вопросом, этот момент не стоит упускать из виду, т.к. он может оказаться ключевым при возникновении потребности внести изменения в работу программного обеспечения.
В качестве вступления приведу небольшой пример истории из жизни. Предприниматель Екатерина Сергеевна, приобрела программное обеспечения для создания на его безе интернет магазина, на момент покупки Екатерину Сергеевну устраивало практически все, что касалось функционала приобретаемого ПО. В течении нескольких дней был запущен сайт, затем на протяжении месяца сайт наполнялся полезными статьями, писался раздел справки и помощи, активно добавлялись товары. Параллельно с этим была развернута рекламная компания, по привлечению клиентов в интернет магазин. Спустя 6 месяцев, сайт начал приносить доход, и перед предпринимателем встал вопрос о его улучшении, внесении ряда правок, чтобы сделать работу сайта лучше и эффективнее. Екатерина Сергеевна, обратилась к разработчику ПО, собственно у кого оно и было куплено. Но, как оказалось разработчик в данный момент занят, и не может заняться её проектом. Тогда, Екатерина обратилась к стороннему программисту, найти которого не составило большого труда. Подготовила подробный список того, что хочет изменить в своем сайте, и договорилась с ним, о начале работ. Но каково было удивление Екатерины, услышать от программиста ответ: «Я не могу реализовать ваши пожелания, т.к. исходный код ПО закрыт, я не имею к нему доступа». Работа встала.
Я очень часто наблюдаю такие ситуации, когда программа требует внесения доработок, а сделать этого нельзя, из-за того, что исходный код закрыт. Само понятие «закрытый исходный код» носит двусмысленный характер, оно может означать что:
1) код закрыт(скомпилирован, зашифрован, обфусцирован) и его нельзя посмотреть, а следовательно нельзя внести правки, изменения, дополнения;
2) код закрыт согласно лицензионному соглашению, такой код нельзя модифицировать(запрещено правообладателем) даже в том случае, если технически это возможно.
На фоне вышесказанного, возникает вопрос: кто может вносить изменения в работу такого программного обеспечения? Ответ — только разработчик, и то если пожелает, или вы сможете с ним договориться.
В свою очередь, открытый исходный код, лишен всех этих недостатков. Он может быть просмотрен, изменен, доработан и так далее, как правило лицензия по которой распространяется такое программное обеспечении разрешает пользователю модифицировать его любым образом, и если носит какие-то ограничения, то они как правило связаны с распространением его(программного обеспечения) копий.
Возвращаясь к истории предпринимателя Екатерины Сергеевны, в её случае решить возникшую задачу так и не получилось. Спустя год работы её сайта, накопилось очень большое количество изменений, которые требовалось внести в скрипты. Во первых её бизнес вырос, количество клиентов перевалило за несколько тысяч, и встал вопрос о добавлении на сайт различных сервисов: «расчет стоимости доставки», «личный кабинет», «отложенные товары» и т.д. Разработчик так и не смог выделить время на то, что-бы поработать с Екатериной (впрочем его винить за это не стоит, он изначально не оказывал услуг по доработкам, плюс ко всему таких запросов ему поступает ежедневно по несколько штук и он физически не способен их все удовлетворить), а сторонние программисты просто бессильны в данной ситуации. В итоге Екатерина приняла решение, полностью переделать весь сайт и в качестве платформы использовать уже ПО с открытым исходным кодом, это был её основной критерий к покупаемому продукту. Какие издержки она при этом понесла: покупка нового ПО, расходы по переносу базы клиентов, товаров, прочих материалов, работа по сохранению адресов страниц(что-бы не выпасть из индекса ПС) для сохранения позиций в поисковых системах, плюс её сайт простаивал некое время, и она также упустила часть выгод от возможных продаж. Все это обошлось её в крупную денежную сумму, потраченное время и нервы.
Данная история, это случай из жизни, из моей практики. Екатерина обратилась ко мне и мы славно поработали, впрочем еще многое предстоит сделать, ведь в голову постоянно приходят новые идеи, которые способствуют росту её бизнеса.
Что лучше открытое или закрытое ПО?
Однозначного ответа на этот вопрос нет, в ряде случаев закрытое ПО не чем не хуже открытого. Оно выполняет поставленные задачи, обеспечивая пользователя хорошим функционалом, таких примеров много iOS, Windows, MS Office и т.д. Но если речь идет о бизнесе, который зависит от ПО, и который со временем будет расти требуя внедрения новых идей, выбор однозначно падает на программное обеспечение с открытым исходным кодом!
Больше чем софт: что такое код 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%, и в будущем открытый код, вероятно, поможет заменять ручные процессы автоматизированным управлением на программном обеспечении, способствуя инновациям.
Открытый исходный код — благо или троянский конь?
Сразу хочется сузить рамки — разговор идет о продаже программного продукта (php+MySQL).
Вопрос — (про)давать ли исходный код?
Аргументы в пользу закрытого кода.
— Подавляющему большинству клиентов нужно чтобы продукт работал и исходный код не нужен.
— При закрытом коде проще осуществлять тех. поддержку — клиент своими руками не залезет куда не надо и не породит новых уникальных ошибок, в которых хрен разберешься.
— Сложнее стырить исходный код. А точнее его можно получить, но вот что-то серьезное переделать в этом «исходнике» сложно — максимум сломать защиту, внести незначительные правки.
— Есть некоторая надежда разработчика, что закрытый код спасет от перепродажи его продукта лихими людьми.
— Есть легкая надежда, что купят продукт, потому как «сломать» не смогут, либо «ломанный» побоятся использовать.
— Народ (наш народ 🙂 ) привык что если код открыт, значит бесплатно!
Аргументы в пользу открытого кода.
— Иногда клиенту просто хочется иметь возможность взглянуть на код. То есть не обязательно даже его иметь, но чтобы возможность такая была. Это могут быть параноики безопасности в хорошем смысле или просто борцы за какие-то права.
— Клиент имеет возможность внести правки, причем весьма серьезные. Вплоть до потери совместимости с последующими версиями продукта (хотя вот это возможно уже в минус).
— Нет проблем с дешифратором закрытого кода. Не секрет, что такие проблемы встречаются (отсутствие Зенда и иже с ним, какие-то локальные глюки т.д.).
— Есть возможность построить сообщество разработчиков купивших скажем девелоперскую лицензию с доступом к открытому коду.
Добавлю немного конкретики.
Вопрос «открытого кода» интересует в связи с «внутрифирменной» дискуссией по поводу развития одного из наших продуктов (CNCat). Мы проходили разные стадии (открытый код, Зенд) и сейчас осуществляем обфрускейтивание (замену названий переменных на бессмысленные) и легкую шифрацию. Когда мы давали продукт в открытом коде и давали его бесплатно — много кто тырил код и на его основе делали свои продукты без всяких ссылок на нас. Что было немного обидно и сейчас не хочется на этом обжечься опять.
Однако правильное позиционирование открытого кода (АПИ, поддержка, контроль и т.д.) может дать нам приток сторонних разработчиков новых фич, мощную обратную связь, отладку — в общем новый импульс.
Дык хочется получить какие-то дополнительные аргументы или мысли по данному вопросу. Как бы Вы повели себя как клиент, как разработчик (конечно желательно чтобы Вы им являлись, чтоб не голословно)? Может есть какие в мире устоявшиеся теории и доказанные практикой подходы (типа фри версия закрыта, купленная открыта)?
В чем смысл open source?
Хабр, привет! Я Юра, руководитель платформенной команды inDriver. В IT уже более 12 лет, на iOS пишу 7 лет. В этой статье обращусь к принципам и целям open source. Мы разберемся с его лицензиями, посмотрим на рынок и государственное участие в этом процессе. Добро пожаловать под кат!
Содержание
Минутка истории
Начну с определения того, что такое open source. Это открытое программное обеспечение, исходный код которого доступен для просмотра, изучения, изменения и позволяет убедиться в отсутствии уязвимостей.
Попробуем разобраться с корнями определения. Есть 2 термина: free software и open source. Термин open source был использован в качестве определения в 1998 году Эриком Реймондом и Брюсом Перенсом. Они утверждали, что термин free software (свободное программное обеспечение) в английском языке неоднозначен и смущает многих коммерческих предпринимателей.
Эрик Реймонд и Брюс Перенс
Но откуда же пошли эти термины? В 1985 году появился Free Software Foundation. Он возник благодаря трудам разработчика Ричарда Столлмана, который присоединился к лаборатории искусственного интеллекта при Массачусетском технологическом институте. Столлман принимал участие в работе над свободным ПО (например, над Emacs — текстовым редактором для мини-компьютеров). Позднее редактор продали коммерческому дистрибьютору, и в 1984 году Столлман решил основать проект свободного ПО под названием GNU.
Ричард Столлман
Если не знали, GNU — во-первых, рекурсивный акроним — GNU’s Not UNIX, во-вторых, ОС типа UNIX с набором свободных программ. В рамках проекта энтузиасты придумали термин «свободное ПО» и сформулировали его критерии: использование, изучение, шеринг и улучшение.
4 основных принципа
В 1985 году Столлман основал фонд Free Software Foundation для развития свободного ПО за счет пожертвований. Цель организации — способствовать свободе пользователей компьютеров во всем мире. Фонд взял на себя задачу защиты прав всех пользователей программного обеспечения.
Философия фонда строится на 4 основных свободах:
Свобода запускать программу в любых целях (свобода 0).
Свобода изучения работы программы и ее адаптация к вашим нуждам (свобода 1). Доступ к исходным текстам является необходимым условием.
Свобода распространять копии, так что вы можете помочь вашему товарищу (свобода 2).
Свобода улучшать программу и публиковать ваши улучшения, так что все общество выиграет от этого (свобода 3). Доступ к исходным текстам является необходимым условием.
Программа свободна, если у ее пользователей есть 4 вышеупомянутых пункта. Все достаточно прозрачно и позитивно. Но здесь накладываются взаимоотношения между разработчиками в юридическом плане и в рамках государства. Свободная программа часто не значит «некоммерческая», она может быть доступна для коммерческого применения и распространения. Это правило фундаментально важно, без этого свободные программы не могли бы достичь своих целей.
В англоязычных текстах free означает не только «свободное», но и «бесплатное». Оно нередко употребляется к бесплатному программному обеспечению, которое распространяется без взимания платы, но недоступно для изменения. Получается, такое ПО не является свободным.
Чтобы устранить недоразумения, как раз и был придуман термин open source. Его сформулировала некоммерческая организация Open Source Initiative, которая была основана вышеупомянутыми Реймондом и Перенсом.
Логотип организации
В середине 1990-х годов в open source пришла первая крупная компания — Netscape. Ее браузер Netscape Navigator был одним из самых популярных в мире, но с появлением Internet Explorer стал вытесняться с рынка.
В 1998 году в Netscape решили открыть исходный код своего браузера. Год спустя компании не стало, но исходный код Navigator лег в основу одного из самых популярных современных браузеров — Mozilla Firefox. В том же 1998 году возникла Open Source Initiative, которая и начала заниматься популяризацией открытого исходного кода.
Интерфейс Netscape Navigator
Основатели Open Source Initiative придумали альтернативу free software и сделали больший упор на open source. То есть это не свободное ПО, а ПО с открытым исходным кодом. Разработчики написали определение, описали более подробно, что такое open source и на чем он зиждется.
По их мнению, открытый исходный код — не просто доступ к исходному коду, но и условия распространения программного обеспечения с открытым исходным кодом. Также Реймонд и Перенс задекларировали 3 важных критерия:
Лицензия не должна ограничивать любую сторону от продажи или раздачи программного обеспечения как компонента совокупного распространения.
Лицензия не требует лицензионных или иных сборов за такую продажу.
Программа должна включать исходный код и допускать распространение в исходном коде, а также в скомпилированном формате.
Эти постулаты были частично взяты из Debian Free Software Guidelines. Я не буду их раскрывать по части дискриминации и лицензий, но после этого начинается постепенное развитие open source от одной некоммерческой организации к другой.
dino
Кстати, еще одно достоинство Open Source Initiative — репозиторий SourceForge для программ с открытым исходным кодом. Помню его с домобильной эпохи по скачиванию архиваторов на Windows, но сейчас он уже не столь популярен.
Лицензии
Расскажу немного о взаимоотношениях разработчиков открытого исходного кода, а также под какими лицензиями этот исходный код распространяется сейчас. Выделяют 4 категории:
1. Public Domain. Категория лицензий, которые относятся к творческим материалам. Они не защищены законами об интеллектуальной собственности или авторском праве, о товарных знаках или патентах. Эти работы принадлежат публике, а не отдельному автору или художнику. Кто угодно может использовать произведение, являющееся общественным достоянием, без получения разрешения.
Пример такой лицензии — СС0 от Creative Commons
2. Permissive. Это лицензии на программное обеспечение, которые практически не ограничивают свободу действий пользователей ПО и разработчиков, работающих с исходным кодом. В отличие от других лицензий, они не являются копилефтными. По духу похожи на Public Domain, но не требуют отказа от авторского права.
3. Copyleft. Это лицензии, которые требуют, чтобы распространение продукта подчинялось той же лицензии, что и оригинал. То есть нельзя делать проприетарным этот софт.
4. Proprietary. Это вид лицензий, который является частной собственностью авторов или правообладателей и не удовлетворяет критериям свободного ПО. Правообладатель сохраняет за собой монополию на его использование, копирование, модификацию.
Рынок
Теперь о многообразии open source-проектов. Open source участвует практически во всех сферах, начиная от мобилок и заканчивая блокчейном и искусственным интеллектом.
Простой пример. Android, операционная система, 2,5 миллиарда активных устройств, огромнейший рынок, который построен на open source. В вебе это WordPress, на котором крутится более 40% сайтов в интернете. В бэкэнде, инфраструктуре — NGINX и Kubernetes, используются для оркестрации нагрузки, контейнеров, являются стандартами индустрии. В AI это TensorFlow — платформа, которая используется для машинного обучения. Для блокчейна это Ethereum — платформа, которая лежит в основе многих криптовалют.
Многие индивидуальные разработчики делают вклад в open source не менее значимый, чем корпорации. Благодаря Линусу Торвальдсу появился Linux. Микаэль Видениус создал, наверное, самую популярную у веб-разработчиков базу данных — MySQL, а Майкл Стоунбрейкер с командой из Беркли — PostgreSQL.
Если переходить к корпорациям, все крупные IT-игроки понимают важность open source-проектов. Как пример приведу исследования компании Red Hat. Она ежегодно опрашивает более 1 000 компаний и делает обзор рынка, куда IT двигается и как меняется. Согласно последнему исследованию, 90% опрошенных респондентов считают, что open source играет важную роль в технологиях корпораций. Наиболее распространенные пути использования open source в корпоративном секторе: IT-инфраструктура, разработка приложений, цифровая трансформация. За 2 года эти показатели увеличились на 11%.
Почему корпорации идут в open source? В первую очередь, участие в открытых проектах позволяет привлечь внимание не только к этому проекту, но и к другим своим программам. Вовлечение открытого сообщества в проекты компаний делает проще найм сотрудников и позволяет удерживать таланты внутри компании. Мотивационная часть также важна — поддержка проектов извне мотивирует разработчиков активнее их развивать.
Но есть и минусы. Открытый код может использоваться в тех проектах, о которых его авторы даже не подозревают. Если проект многокомпонентный и собран из большого числа подмодулей, в цепочке зависимостей легко может возникнуть дыра в безопасности, которую долго могут не замечать.
Russia Open Source
Перейдем к российским реалиям. 1 октября 2021 года Министерство цифрового развития России и крупные IT-компании обсудили стратегию работы с открытым кодом до 2024 года.
Целями развития программного обеспечения с открытым кодом в России являются:
Развитие стека продуктов для госсектора. Обеспечение безопасного использования в нем компонентов с открытым кодом.
Повышение эффективности цифровизации государственных органов благодаря повторному использованию программного кода, разработанного за бюджетные средства.
Также при создании стратегии идут отсылки к опыту других стран. В США, согласно политике, принятой в 2016 году, публикуют не менее 20% исходного кода правительственного ПО под открытыми лицензиями.
В Евросоюзе тоже есть стратегия развития открытого ПО с упоминанием технологического суверенитета. Китай способствует созданию независимой экосистемы. В частности, реализует свои варианты открытых операционных систем: например, HarmonyOS. Есть аналоги Java, PostgreSQL, GitHub.
В России создается некоммерческая организация, которая будет поддерживать репозиторий, куда будут выкладываться лицензии. Создается аналог открытой лицензии, под которой все будет выкладываться. Более подробно можно прочитать в проекте стратегии.
Hacktoberfest
Hacktoberfest — это фестиваль поддержки open source-комьюнити с целью мотивации разработчиков улучшать проекты с открытым исходным кодом. Он ежегодно проводится в октябре. Open source-проекты — вариант устроиться на работу, развивать личный бренд или просто отразить свои знания в коде.
Участники должны сделать 4 пул-реквеста на GitHub или GitLab. Предварительно, конечно же, зарегистрироваться на сайте.
Один из этапов регистрации
Из нюансов — вы можете контрибьютить в свои собственные репозитории, необязательно развивать сторонний проект. Неважно и то, на каком языке вы программируете. Можно выбрать ваш любимый продукт или open source-проект, посмотреть issues, которые можно закрыть, и даже поправить документацию. Вариантов много, выбор остается за вами.
Из личных примеров: когда устраивался в inDriver сделал open source-проект под «Роскачество». В свое время в маркете было приложение «Роскачество», где российская лаборатория тестировала и проверяла продукты, но визуальная реализация оставляла желать лучшего. Заодно попробовал новую архитектуру, новые технологии, которые появлялись в iOS (например, Swift UI с однонаправленной архитектурой). Это стало долгосрочным полезным вкладом.
Логотип UDF
Наконец, приглашаю всех поучаствовать в развитии open source-проекта inDriver. Мы опубликовали iOS-архитектуру c Redux-парадигмой. Конечно, это не первая реализация однонаправленной архитектуры, но у нее есть ряд преимуществ: адаптация под UI Kit, модуляризируемая, с апробацией в крупном проекте. Подробнее про UDF можно прочитать в статьях моего коллеги Антона Гончарова на Хабре (часть 1 и часть 2).
У меня все. Спасибо, что читали. Задавайте ваши вопросы в комментариях.