Что такое открытый код в программировании
Перейти к содержимому

Что такое открытый код в программировании

  • автор:

Что такое открытый исходный код?

image

Открытый исходный код (от англ. Open Source Software, OSS) — это термин, обозначающий программное обеспечение, предназначенное для публичного доступа, где любой желающий может просматривать, изменять и использовать его код по своему усмотрению.

Программное обеспечение с открытым исходным кодом разрабатывается децентрализованно, совместными силами множества ничем не связанных разработчиков. Программное обеспечение с открытым исходным кодом обычно более гибкое в функционале, а его поддержка долговечнее. К тому же сама разработка, обходится гораздо дешевле, чем у проприетарных аналогов. Всё потому, что такое программное обеспечение создаётся сообществами независимых разработчиков, а не одним автором или компанией. Движение за открытый исходный код предлагает модель децентрализованного производства программного обеспечения для более эффективного решения возникающих в процессе разработке проблем. Конечный продукт, по итогу, получается функциональнее и надёжнее.

Интернет — один из первых проектов по модели открытого исходного кода

В 50-х и 60-х годах исследователи, разрабатывающие ранние интернет-технологии и телекоммуникационные протоколы, полагались на открытую исследовательскую среду. Сеть агентств перспективных исследовательских проектов (Advanced Research Projects Agency Network, ARPANET), которая позже стала основой современного Интернета, поощряла открытый процесс обратной связи и свежий взгляд на разрабатываемый продукт. Группы разработчиков совместно использовали и дорабатывали код друг друга. Позже различные форумы помогли облегчить коммуникацию и разработать единые стандарты коллективной разработки. В основу Интернета как технологии были заложены такие ценности, как совместное сотрудничество, экспертная оценка, коммуникация и открытость.

Как работает модель разработки открытого исходного кода?

Модель разработки открытого исходного кода существует благодаря сообществу разработчиков. Продукты на основе открытого исходного года выпускаются с соответствующей открытой лицензией, поэтому любой разработчик может просматривать или изменять их исходный код. Многие проекты с открытым исходным кодом размещены на GitHub, где можно получить доступ к репозиториям или принять участие в разработке. Linux®, Ansible и Kubernetes являются примерами популярных продуктов с открытым исходным кодом. Иногда к процессу разработки программного обеспечения с открытым исходным кодом подключаются крупные IT-компании. Они берут за основу уже написанный код, исправляют баги, уязвимости и добавляют новые функции. Все эти улучшения затем можно внести обратно в первоначальный проект, на благо сообщества разработчиков.

Linux и открытый исходный код

Linux — это бесплатная операционная система с открытым исходным кодом, выпущенная по стандартной общественной лицензии (General Public License, GPL). А ещё это крупнейший в мире проект программного обеспечения на основе открытого исходного кода. Операционная система Linux была в своё время создана как бесплатная альтернатива операционной системы MINIX, основанной на принципах и дизайне Unix. Создатели так хотели подчеркнуть заложенные при разработке принципы свободного программного обеспечения, что даже первоначально назвали своё детище «GNU» (от англ. «GNU’s Not UNIX» — «GNU — не Unix»), хотя система всё равно была построена на основе Unix. Поскольку Linux до сих пор выпускается по открытой лицензии, любой желающий может запускать, изучать, изменять и распространять исходный код. Даже продавать копии своего измененного кода, если это делается в соответствии с лицензией.

В чем разница между свободным, закрытым и открытым программным обеспечением?

Под программным обеспечение с открытым исходным кодом долгое время понималось «свободное программное обеспечение». Движение за свободное программное обеспечение было основано Ричардом Столменом в 1983 году как раз в рамках проекта GNU. Это движение организовалось вокруг идеи пользовательских свобод: свободы видеть исходный код, изменять и распространять его по своему усмотрению. Свободное программное обеспечение появилось в ответ на проприетарное или закрытое программное обеспечение. Софт с закрытым исходный кодом недоступен для просмотра, изменения или использования в разработке других продуктов. Только владельцы закрытого исходного кода имеют законное право доступа к нему. А рядовые пользователи, купившие лицензионную копию, платят лишь за использование программы по назначению. Само название «свободное программное обеспечение» вызвало много путаницы, ведь оно не означало бесплатность продукта, а только свободное использование на усмотрение пользователя. Кристин Петерсон попыталась решить эту проблему в 1998 году, когда предложила термин «открытый исходный код». Он лучше фокусировался на сути и не сбивал с толку тех, кто плохо знаком с концепцией движения за свободное программное обеспечение. Петерсон предложила термин «открытый исходный код» взамен использовавшегося ранее «свободное программное обеспечение» на одном из совещаний рабочей группы, которая занималась распространением практики свободного программного обеспечения на более широкий рынок. Цель этой группы была в том, чтобы мир узнал, что программное обеспечение лучше, когда оно общедоступно и его можно свободно модифицировать. Эрик Рэймонд был одним из членов вышеупомянутой группы. В 1997 году он опубликовал некоторые из ключевых положений, касающихся открытого кода, в своем чрезвычайно влиятельном эссе «Собор и базар». В 1998 году, отчасти в ответ на это эссе, корпорация Netscape Communications открыла исходный код своего проекта Mozilla, выпустив его в виде бесплатного программного обеспечения. Позже этот код стал основой для Mozilla Firefox и Thunderbird. Поддержка Netscape Communications программного обеспечения с открытым исходным кодом заставила сообщество задуматься о том, как подчеркнуть практические аспекты этого движения для бизнеса. Разница между «открытым исходным кодом» и «свободным программным обеспечением» позже была закреплена документально. «Открытый исходный код» служит термином, защищающим методологические, производственные и бизнес-аспекты свободного программного обеспечения. «Свободное программное обеспечение» остаётся ярлыком для обсуждений, в которых подчеркиваются философские аспекты тех же вопросов, поскольку они связаны с концепцией свобод пользователя. В 1998 году была основана организация Open Source Initiative, формализовавшая термин «открытый исходный код» и установившая его общеизвестное определение. Хотя с конца 90-х до начала 2000-х к движению за открытый исходный код относились с осторожностью, оно неуклонно шло к тому, чтобы стать отраслевым стандартом, коим и является сегодня.

Каковы основные достоинства открытого исходного кода?

Есть множество причин, по которым люди предпочитают открытый исходный код проприетарному программному обеспечению, но наиболее распространенными из них являются: Экспертная оценка. Поскольку открытый исходный код находится в свободном доступе, а сообщество разработчиков очень активно — код активно проверяется и постоянно улучшается разными программистами. Прозрачность. Если необходимо точно знать обо всех изменениях, которые произошли в коде, и на каком этапе разработки находится проект — открытый исходный код как нельзя лучше решит этот вопрос. Ведь проверять и отслеживать изменения может кто угодно, в реальном времени. Надежность. Запатентованный код зависит от одного автора или компании, контролирующей и развивающей его. Открытый исходный код живёт в полной независимости от своих первоначальных авторов. Ведь он постоянно обновляется активными сообществами разработчиков. Множество заинтересованных программистов регулярно тестируют и обновляют код, чтобы сделать его лучше. Гибкость. Открытый исходный код можно использовать для решения огромного спектра разных задач. При этом, нет никакой зависимости от навыков специалистов, которые запустили проект. Ведь на помощь, так или иначе, придут другие разработчики и дадут свою экспертную оценку при внедрении новых решений. Более низкая стоимость. Разработка программного обеспечения с открытым исходным кодом обычно держится на чистом энтузиазме. А за готовые продукты, даже если и просят какую-то обязательную плату, взамен предлагают поддержку и помощь в настройке. Нет привязки к поставщику. Свобода для пользователя означает, что в любой момент можно взять открытый исходный код и применить его, как угодно, на своё усмотрение. Открытое сотрудничество. Наличие активных сообществ разработчиков означает, что можно легко и быстро найти помощь, ресурсы и различные видения решения задачи, выходящие за рамки интересов определённой группы разработчиков или компании.

Открытые проекты — Введение в Git

Как и все программисты, каждый день мы пользуемся программным обеспечением с открытым исходным кодом. В этом уроке мы обсудим, что это такое. Вы узнаете, чем открытый код полезен программисту.

Проекты с открытым исходным кодом или OpenSource (Open Source Software, OSS) — это программное обеспечение с общедоступным кодом. Любой пользователь может увидеть код, а в большинстве случаев — даже повлиять на него.

К такому ПО относятся:

  • Прикладное ПО и сервисы, как VSCode или Git
  • Огромное число библиотек в нашем коде
  • Практически все современные языки программирования

Современные проекты огромны:

  • Linux (> 12 000 000 строк кода)
  • Chromium (> 16 000 000 строк кода)

Та скорость, с которой разрабатываются такие крупные проекты, возможна благодаря программам и библиотекам с открытым исходным кодом.

Откуда вообще берутся опенсорс-проекты, и почему они так популярны? Почти всегда такой код появляется как побочный продукт разработки других проектов. Например, в процессе разработки Linux появилась необходимость в удобной программе для управления версиями — так появился Git.

Но почему его код был открыт? Ответ достаточно простой. Удачные проекты привлекают множество разработчиков, которые помогают им развиваться. Они пишут отчеты об ошибках, присылают исправления и даже становятся полноправными разработчиками. И все это бесплатно. Разработчики удовлетворяют свое эго и радуются тому, что создают нечто новое и вообще помогают этой Вселенной. Как побочный эффект, такие разработчики гораздо легче находят работу и имеют более прокачанные навыки кодирования, чем их коллеги, которые не работают с открытыми проектами.

Если вы вернетесь в прошлое и посмотрите, сколько людей раньше работало над опенсорс-проектами, то вы увидите огромный разрыв с современным положением дел.

Сложное включение в разработку, сложное принятие изменений — вот неполный перечень проблем, с которыми сталкивались участники опенсорс-движения. Раньше было нормой, что люди выступали с докладами на конференциях, где час описывали правила принятия людей и кода от них в проект.

Сейчас присоединиться к опенсорс-проекту можно за пару минут. Можно начать где-то участвовать, не нужно прилагать практически никаких усилий. Случилось это благодаря двум составляющим: Git и GitHub.

Один из важнейших механизмов GitHub — запрос на включение изменений. Коротко его называют пулреквест (pull request). Именно этот механизм позволяет легко и непринужденно вливаться в разработку любых проектов.

Допустим, работая с определенной библиотекой, мы заметили ошибку в коде или документации. Пройдемся по шагам, которые необходимо выполнить для исправления этой ошибки. Наша конечная цель — чтобы разработчики библиотеки приняли код.

Клонирование

Первым шагом создаем копию репозитория в своем аккаунте. Делается это буквально одной кнопкой Fork на странице репозитория:

После этого действия в вашем аккаунте окажется репозиторий с таким же именем. GitHub знает, что это копия оригинального репозитория, и помечает его особым образом.

Дальше все как обычно. Мы клонируем репозиторий на компьютер и производим необходимые изменения. Хорошей практикой считается делать изменения в отдельной ветке, созданной от ветки main.

Запрос на включение изменений кода

После того как мы залили изменения на GitHub, в его интерфейсе произойдут изменения. На странице склонированного репозитория появится кнопка Pull request:

Если ее нажать, то откроется страница, на которой можно указать название пулреквеста и его описание.

После отправки пулреквеста в оригинальном репозитории на странице Pull requests отобразится ваш запрос. Теперь остается ждать, когда разработчики библиотеки рассмотрят пулреквест. В итоге они:

  • Либо примут реквест
  • Либо отклонят его
  • Либо зададут уточняющие вопросы и предложат доработать реквест

Исправления прямо на GitHub

В более простых ситуациях, когда достаточно исправить текст или опечатку, GitHub позволяет сделать пулреквест прямо из своего интерфейса.

Для этого достаточно открыть любой файл проекта и нажать на иконку редактирования. После завершения редактирования GitHub сам предложит создать пулреквест с этим изменением.

Самостоятельная работа
  1. Отправьте пулреквест в репозиторий hexlet-components/ru-my-first-pullrequest
Дополнительные материалы
  1. Отправка пулреквестов в опенсорс
  2. Опенсорс Хекслета

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

  • Статья «Как учиться и справляться с негативными мыслями»
  • Статья «Ловушки обучения»
  • Статья «Сложные простые задачи по программированию»
  • Вебинар « Как самостоятельно учиться »

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Открытый исходный код

Открытое программное обеспечение (англ. open source software ) — это программное обеспечение с открытым исходным кодом. Исходный код создаваемых программ открыт, то есть доступен для просмотра и изменения. Это позволяет использовать уже созданный код для создания новых версий программ, для исправления ошибок и, возможно, помочь в доработке открытой программы.

«Открытая» лицензия не требует, чтобы открытое ПО предоставлялось бесплатно. Многие из наиболее успешных проектов открытого ПО, тем не менее, бесплатны. Открытое программное обеспечение имеет большие перспективы в России в связи с принятием правительством и президентом РФ решений по обеспечению национальной безопасности в сфере ИТ на основе внедрения открытого и свободного ПО в государственные и бюджетные организации.

Открытое и свободное ПО

Термин open source (англ. Открытое программное обеспечение) был создан вместе с определением в 1998 году Эриком Реймондом и Брюсом Перенсом, которые утверждали, что термин free software (Свободное программное обеспечение) в английском языке неоднозначен и отпугивает коммерческих предпринимателей. [1]

Подавляющее большинство открытых программ является одновременно свободными. Определения открытого и свободного ПО не полностью совпадают друг с другом, но близки, и большинство лицензий соответствуют обоим.

Отличие между движениями открытого ПО и свободного ПО заключается в основном в приоритетах. Сторонники термина «open source» делают упор на эффективность открытых исходников как метода разработки, модернизации и сопровождения программ. Сторонники термина «free software» считают, что именно права на свободное распространение, модификацию и изучение программ являются главным достоинством свободного открытого ПО.

Существуют программы, попадающие по мнению некоторых [кто?] под определение открытых, но не являющиеся свободными, например, UnRAR, распаковщик [2]

По мнению Ричарда Столлмана, разрекламированность «Open Source» несколько вредит свободному ПО, так как некоторые разработчики и пользователи открытого ПО совсем не против собственнического ПО, и люди останавливаются на Open Source, не доходя до понятий о свободе. [3]

По словам Брюса Перенса открытое ПО всегда было лишь способом объяснить предпринимателям идею свободного ПО, и это ему удалось. [4]

Несмотря на стремление авторов определения избавиться от неоднозначности слова free [5] , выражение open source тоже очень часто используется для обозначения сущностей, противоречащих определению OSI или не имеющих к нему никакого отношения, но способных привести к путанице. Например, спецслужбы США используют его в значении «открытый источник» (см.: OSINT, Open Source Intelligence), [6] что упомянуто в объявлении на сайте Реймонда. [1]

Враждебные к свободному ПО компании — например, Microsoft — используют только выражение open source.

Определение открытого программного обеспечения Open Source Initiative

Основная статья: Определение Open Source

Open Source является торговой маркой организации Open Source Initiative. Существует специальный комитет, решающий, может ли лицензия носить имя Open Source. Определение, которым он при этом руководствуется, приведено в The Open Source Definition. [7]

Вынесенное OSI определение признается за руководство многими другими организациями — например, порталом Debian Free Software Guidelines.

Лицензии

Основная статья: Лицензии открытого ПО

Исходные коды открытых программ выпускаются либо как общественное достояние, либо на условиях «свободных» лицензий — как, например, GNU General Public License или BSD License. Свободная лицензия позволяет использовать исходный код программы для своих нужд с минимальными ограничениями, не противоречащими определению OpenSource.org. Таким ограничением может быть требование ссылаться на предыдущих создателей или требование сохранять свойство открытости при дальнейшем распространении той же самой или модифицированной открытой программы (копилефт). В некоторых случаях (например, FreeBSD) эти ограничения очень малы, в других (например, GNU General Public License) достаточно распространять ПО вместе с исходным кодом и текстом лицензии, не изменяя её.

Открытое программное обеспечение в России

В настоящее время открытое программное обеспечение не получило широкого распространения в России, среди причин чему называют широкое нелегальное распространение собственнического программного обеспечения.

Однако, решениями правительства и президента РФ Дмитрия Анатольевича Медведева, отечественное открытое программное обеспечение в 2008 году внедрено во всех школах Российской Федерации и будет установлено во всех государственных и бюджетных организациях для обеспечения национальной безопасности в сфере ИТ.

Открытое программное обеспечение может свободно устанавливаться и использоваться во всех школах, офисах, вузах и на всех личных компьютерах и во всех государственных, бюджетных и коммерческих организациях и учреждениях России и в странах СНГ согласно Генеральной публичной лицензии (GPL).

Открытое программное обеспечение в школах

Решением правительства Российской Федерации в марте 2008 года, все средние школы России получили базовые пакеты лицензионного собственнического и открытого программного обеспечения для обучения компьютерной грамотности, основам информатики и новым информационным технологиям с операционными системами Windows и Linux.

В трёх регионах России в 2008 году развёрнуты эксперименты по внедрению и использованию в средних школах базовых пакетов программ для кабинетов информатики и вычислительной техники и начата подготовка учителей и преподавателей информатики технологии работы с открытым программным обеспечением в среде Windows и Linux.

Согласно Доктрине информационной безопасности РФ, обучение компьютерной грамотности и информатике должно сопровождаться правовым ликбезом в обучении защите информации в ЭВМ, защите от компьютерных вирусов, порно-сайтов и обеспечению информационной безопасности в локальных и глобальных сетях ЭВМ на базе лицензионного и свободного открытого программного обеспечения.

В 2007 году выпущены первые учебники информатики для вузов и школ для обучения информатике в соответствии с государственными стандартами образования со свободным и проприетарным программным обеспечением в среде Windows и Linux.

Российские разработчики открытого программного обеспечения

Российские разработчики в основном помогают развитию англоязычных проектов или выпускают локализованные редакции международных проектов (например, OpenOffice Pro на базе

Также, существует незначительное количество российских репозиториев открытого ПО (таких, как репозитарий Сизиф).

Примечания

  1. 12Эрик Реймонд.Goodbye, «free software»; hello, «open source» (англ.) (1998). Проверено 31 марта 2008.
  2. Portable UnRAR source code. Евгений Рошал. — «Distribution of modified UnRAR sources in separate form or as a part of other software is permitted, provided that it is clearly stated in the documentation and source comments that the code may not be used to develop a RAR (WinRAR) compatible archiver» Проверено 24 мая 2009.
  3. Bruce Byfield.Richard Stallman looks back at 25 years of the GNU project. Linux.com.
  4. State of Open Source Message: A New Decade For Open Source (англ.) (8 февраля 2008). — «My intent has always been for Open Source to simply be another way of talking about Free Software, tailored to the ears of business people, and that it would eventually lead them to a greater appreciation of Richard Stallman’s arguments. This has come to pass, and…» Проверено 30 сентября 2008.
  5. В английском языке слово free имеет значение как «свободный», так и «бесплатный».
  6. Noah Shachtman.Open Source Intel Rocks — Sorry, It’s Classified (англ.) . Блоги Wired.com (17 сентября 2008). Проверено 17 сентября 2008.
  7. http://www.opensource.org/docs/definition.php

См. также

  • Политика открытого кода
  • Информационное общество
  • Информационная безопасность

Ссылки

  • Open Source в DMOZ
  • Определение концепции Открытого исходного кода (Open Source), в переводе Алексея Киреева
  • Определение Open Source в переводе Сергея Кузнецова
  • В немецком университете Эрланген-Нюрнберг откроется кафедра по Open Source nixp
  • Руководство по получению прибыли от свободных и открытых проектов (рус.)
  • Технологии Linux Open и Source Труды школы-семинара ЮНЕСКО. М.: 2006.
  • Сравнительный анализ основных лицензий Open Source: GPL, LGPL, BSD, MIT, Mozilla public license, Apache software license
  • Ася Власова.Как украсть Linux?. Открытые системы (24 июня 2008). — О FOSS-лицензиях и их применении в России. Проверено 12 октября 2008.
  • Richard Stallman.Why «Open Source» misses the point of Free Software (англ.) . Free Software Foundation (7 октября 2008). Проверено 12 октября 2008.
    • Почему «открытый код» проигрывает свободному программному обеспечению (2008). — не обязательно хороший перевод.
    • Избегая губительных компромиссов (2008). — любительский перевод.

    Коммерческое ПО • Crippleware • Foistware • Freely redistributable software • Свободное ПО • Полусвободное ПО • Проприетарное ПО • Nagware • Открытое ПО • Otherware • Postcardware • Propagandaware • Registerware • Retail software • Shareware

    Wikimedia Foundation . 2010 .

    • Открытый всероссийский синхронный чемпионат по ЧГК
    • Открытый каталог

    Open source

    Open Source — это программное обеспечение, распространяемое с открытым исходным кодом. Такое приложение можно доработать (изменить, дополнить) под свои задачи без нарушения авторских прав разработчиков, а также изучить на наличие уязвимостей, использовать для разработки других программ и т.д.

    «IT-специалист с нуля» наш лучший курс для старта в IT

    Концепция ПО с открытым исходным кодом является альтернативой проприетарному программному обеспечению, которое распространяется коммерческими компаниями, с ограниченным или полностью закрытым кодом. Сам термин был предложен в 1998 году как более корректный, хотя и близкий по значению, синоним free-software (свободного ПО). Большинство программ с открытым исходным кодом одновременно являются свободно распространяемыми.

    Отличие open source от free-software

    Термин free-software (свободное программное обеспечение) появился в 1985 году благодаря разработчику Ричарду Столлману, сотруднику Массачусетского технологического института. В то время он работал над несколькими свободно распространяемыми программами, в том числе над текстовым редактором для мини-компьютеров. После того как эту программу продали коммерческой компании, он в 1983 году основал проект, названный GNU. Это была полностью свободная UNIX-совместимая операционная система с набором таких же свободных прикладных программ.

    Развитием этого проекта стал созданный Столлманом и его командой энтузиастов некоммерческий фонд Free Software Foundation. Его деятельность основывалась на следующих принципах:

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

    Профессия / 8 месяцев
    IT-специалист с нуля

    Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

    vsrat_7 1 (1)

    В соответствии с философией Free Software Foundation программное обеспечение считалось свободным, если удовлетворяло всем четырем пунктам. Однако здесь возникали определенные коллизии:

    • Свободное ПО не обязательно должно быть некоммерческим, его можно распространять и использовать на платной основе.
    • Термин “free” в англоязычной среде часто означает не только «свободный», но и «бесплатный» — то есть программа могла распространяться бесплатно, но при этом быть недоступной для изучения и/или изменения, что противоречит принципам Free Software Foundation.

    Чтобы устранить эту неоднозначность, в 1998 году программисты и идеологи свободного ПО Эрик Реймонд и Брюс Перенс предложили термин open source (ПО с открытым исходным кодом). Для развития концепции в том же году они основали некоммерческий фонд Open Source Initiative.

    Первым продуктом, реализованным на принципах открытого исходного кода, стал браузер Netscape Communicator — на тот момент главный конкурент Internet Explorer. Основатели OSI разработали определение открытого исходного кода и его критерии, взяв за основу Руководство по свободному программному обеспечению Debian (DFSG). Они выделили 10 требований, которым должна соответствовать лицензия open source. Мы остановимся на ключевых из них:

    • Не должно быть ограничения сторон по части продажи и/или раздачи программы как составной части совокупного ПО, включающего программы из других источников.
    • Продажа программного обеспечения с открытым исходным кодом не подразумевает выплат роялти или иных сборов в пользу разработчика.
    • Распространение программного обеспечения должно осуществляться в исходном коде (предпочтительно) или в скомпилированной форме. Если программа распространяется не в исходном коде, она должна сопровождаться широкой рекламой способов его получения (предпочтительно бесплатного скачивания в сети).
    • Не допускается намеренное запутывание исходного кода программы с целью усложнения его исследования, воспроизведения, редактирования или использования.
    • Не допускается никакая форма дискриминации при распространении ПО с открытым исходным кодом в отношении каких-либо отдельных лиц, групп людей или областей деятельности.
    • Разрешается модифицировать программное обеспечение или создавать на его основе производные продукты, при этом они подчиняются той же лицензии, что и исходная программа.

    Если обобщить все различия между концепциями открытого и свободного программного обеспечения, то они сводятся к следующему:

    • Free-software ставит в приоритет право человека (пользователя) свободно распространять, использовать и изучать программное обеспечение.
    • В концепции open source акцент сделан на удобстве открытого исходного кода в плане разработки, модернизации и поддержки ПО.

    Но на практике эти различия зачастую нивелируются и «в народе» оба понятия используются если не как тождественные, то как близкие синонимы.

    Курс для новичков «IT-специалист
    с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить

    Виды лицензии open source

    На первый взгляд, концепции open source/free-software и лицензии не совместимы друг с другом. И первое время энтузиасты открытого исходного кода действительно не использовали лицензионные соглашения. Однако опыт одного из основоположников Open Source Initiative показал, что даже максимальная свобода должна быть регламентирована, особенно если речь идет о продукте интеллектуального труда.

    Лицензия — это не обязательно ограничения и выплаты лицензиату. Это любое соглашение между сторонами, в котором обговариваются принципы их взаимоотношений друг с другом. Сейчас программы с открытым исходным кодом распространяются под лицензиями нескольких видов.

    • Public Domain (общественное достояние). Такие лицензии относятся чаще всего к творческим материалам. Эти работы являются общественным достоянием и принадлежат всему обществу, а не отдельным авторам и разработчикам. Ими можно пользоваться как угодно, не спрашивая разрешения. Соответственно, на них не распространяется авторское право, интеллектуальная собственность, законы о товарных знаках и патентах. Примером подобной лицензии является СС0 от Creative Commons.
    • Permissive (разрешительные). По своему характеру они похожи на public domain, но не требуют отказа от авторского права. Такие лицензии практически не ограничивают использование программного продукта пользователями и разработчиками. Они также не ограничивают применение других лицензий к продуктам, производным от исходного, то есть не являются копилефтными. Примерами таких лицензионных соглашений являются BSD, MIT, Apache, WTFPL.
    • Copyleft. Название категории производный антоним от copyright, то есть такие лицензии дают право распространять копии и производные от исходного продукта без разрешения автора или владельца авторских прав. Однако распространение должно подчиняться той же лицензии, что и исходный продукт. То есть нельзя делать проприетарным софт, являющийся производным от свободного. Примерами copyleft-лицензии являются Creative Commons Attribution ShareAlike и GPL.

    В противовес этим категориям лицензий для ПО с открытым исходным кодом используются проприетарные лицензии. Такие соглашения признают программу частной собственностью ее автора и его монопольное право на ее распространение, использование, копирование и изменение. То есть проприетарное программное обеспечение по всем пунктам не может быть свободным. При этом, однако, сам исходный код в таких программах может быть открытым.

    Преимущества ПО с открытым исходным кодом

    Для пользователей:

    • экономия — подавляющее большинство продуктов с открытым исходным кодом, а также их модификаций и копий распространяются бесплатно;
    • поддержка — вокруг проектов с открытым исходным кодом быстро образуются сообщества энтузиастов, которые постоянно разрабатывают мануалы, ищут и исправляют ошибки, создают плагины, расширяющие функционал основного софта, и т.д.;
    • быстрая обратная связь — так как многие программы с открытым исходным кодом создаются небольшими коллективами, пользователь быстрее получает от них ответ на интересующие его вопросы;
    • конфиденциальность — в отличие от проприетарного ПО, программы с открытым исходным кодом, как правило, не требуют от пользователя указания его личных данных, которые могут быть потом использованы в рекламных или иных целях;
    • совместимость — большинство продуктов с открытым исходным кодом разрабатываются сразу для нескольких платформ, облегчая жизнь пользователям различных операционных систем.

    Для индивидуальных разработчиков:

    • доступность — разработчик может найти любую программу для обучения и развития, создания собственных проектов, причем абсолютно бесплатно;
    • возможность адаптации — разработчик может доработать «открытую» программу под свои конкретные задачи;
    • поддержка — наличие развитого сообщества экспертов позволяет разработчику получить любую помощь по софту, а также быть уверенным в том, что нужные ему программы постоянно дорабатываются и улучшаются.

    Для корпораций:

    • привлечение клиентов — участвуя в проектах с открытым исходным кодом, корпорации привлекают внимание пользователей к другим своим продуктам (в том числе платным), а также развивают вокруг них экосистему за счет сторонних разработчиков, экономя свои собственные ресурсы;
    • привлечение сотрудников — постоянно взаимодействуя с сообществом энтузиастов открытого кода, компания может найти среди них ценные кадры для работы над своими проектами;
    • стимулирование развития — покупая компанию — разработчика открытого ПО, корпорация удерживает ее сотрудников и дает им стимул развивать свои проекты дальше;
    • конкуренция — наличие программ с открытым исходным кодом заставляет корпорации постоянно совершенствовать свои коммерческие продукты аналогичного назначения.

    Недостатки открытого программного обеспечения

    Плагиат. Коммерческие разработчики могут наживаться на «открытом» продукте, используя его исходный код для своих проектов практически без изменений без указания авторства. Тем самым фактически чужое ПО выдается за свое и продается по ощутимым ценам.

    Сокращение поддержки. Разработчик программы с открытым исходным кодом зачастую не знает, что та используется в других проектах, — соответственно, не может оказать адекватную поддержку ее развития. Также многие создатели open source быстро утрачивают интерес к работе, не получая материального стимула.

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

    Примеры ПО с открытым исходным кодом

    Исторически первым программным продуктом, официально признанным open source, стал браузер Netscape Communicator. Изначально созданный на коммерческих началах, он стал проигрывать в конкурентной борьбе Internet Explorer от Microsoft, что вынудило его разработчиков открыть исходный код программы. Впоследствии на основе этого браузера был разработан также открытый Mozilla Firefox.

    Другими известными примерами свободного ПО являются:

    • OpenOffice — текстовый редактор, аналогичный по функциям и интерфейсу платному пакету Microsoft Office;
    • графический редактор GIMP, возможности которого не уступают функционалу платного Adobe Photoshop;
    • WordPress — система управления контентом, используемая в сайтах-блогах, новостных ресурсах;
    • Android — мобильная операционная система для смартфонов и планшетов, которая сегодня установлена на более чем 2,5 миллиардах устройств;
    • Linux (GNU/Linux) — десктопная операционная система, которая благодаря своей открытости популярна у разработчиков, системных администраторов и других IT-специалистов.

    На сегодняшний день рынок ПО с открытым исходным кодом стабильно растет, успешно конкурируя с проприетарными программами. Open source дает пользователям законную возможность пользоваться качественными продуктами абсолютно бесплатно или за относительно небольшую плату. Особенно это актуально для стран со строгим законодательством в области интеллектуальной собственности и авторского права.

    IT-специалист с нуля

    Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.

    картинка (75)

    Статьи по теме:
    И почему идти на фриланс — не самое удачное решение

    Где искать модели для машинного обучения, готовиться к собеседованиям и осваивать новые технологии на практике

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *