Что такое открытое ПО?

Open

«Открытое ПО» — это термин, о котором часто говорят в наши дни. Вы можете знать, что некоторые вещи имеют открытый исходный код, например, Linux или Android, но откуда вы знаете, что это влечет за собой? Что такое ПО с открытым исходным кодом? Откуда вы знаете, что код программы открыт? Зачем это вообще нужно? Как философия открытого ПО затрагивает вас?

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

Что такое программное обеспечение с открытым исходным кодом?

Когда обычный пользователь загружает программу (например, пусть это будет iTunes), он обычно загружает установочный файл, который распаковывает программу и устанавливает ее в систему пользователя. Пользователь будет получать доступ к программе с помощью исполняемого файла в формате .exe или ярлыка, который ведет к этому исполняемому файлу. Эти файлы создаются из тысяч строчек исходного кода.

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

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

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

Именно так устроено открытое ПО — его исходный код открыт (публично) в отличие от закрытого ПО (его код приватен).

Почему открытое ПО?

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

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

Вот и когда вы устанавливаете приложение, у вас обычно нет доступа к его исходному коду. Электричество, сантехника и структура, благодаря которой работает программа, остается скрытой от вас. Но что происходит, если вам нужно как-то изменить приложение, чтобы оно делало что-то, на что оно еще не способно? Что, если в нем есть критический баг, который требует исправления?

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

Сейчас многие люди могут сами работать над своими домами (это называется «сделай сам»), но это возможно только благодаря том, что у них есть чертежи дома. Используя их, они могут вносить собственные изменения в дом. Именно это делает открытое ПО — он дает вам «чертежи» программы, чтобы вы могли просматривать и редактировать их для себя, если вы хотите.

Преимущества программного обеспечения с открытым исходным кодом

Сейчас вы можете задуматься — если я не программист, ничего из этого вас не касается. Но даже если вы не можете написать ни единой строчки кода, вы все еще должны поддерживать ПО с открытым исходным кодом.

Вот несколько причин, по которым вы должны это делать.

Открытое ПО разрабатывается сообществом

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

Открытое ПО продвигает скорость и сотрудничество

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

Открытое ПО продвигает конкуренцию и право выбора

Сколько существует сборок Linux? Сколько браузеров появилось как форки Mozilla Firefox? Вы знаете, что Google Chrome основан на открытом проекте под названием Chromium? Когда кто-то может взять проект и улучшить его с помощью своих идей, в итоге может появиться большее количество продуктов.

Открытое ПО продвигает ответственность

Когда вы можете видеть исходный код, вы можете быть уверены, что разработчик не делает ничего подозрительного с вашим компьютером, когда вы используете их программу. Например, KeePass — это менеджер паролей с открытым исходным кодом, что означает то, что вы можете проверить исходный код на то, крадет ли разработчик ваши пароли (на самом деле, так не происходит).

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

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