10 мифов о свободном ПО
Разбираемся, почему free software — это не всегда бесплатно и зачем open source начинающему программисту.
vlada_maestro / shutterstock
Есть программисты, которые объединяются в команды и после работы бесплатно создают полезные программы. Есть компании, которые нанимают этих программистов, а потом выкладывают в открытый доступ исходные тексты приложений и сервисов, чтобы другие люди могли их исследовать, изменять под себя и распространять дальше. А продвигают все эти «странные» идеи известные всему миру айтишники, такие как Ричард Мэттью Столлман, Брюс Перренс, Лоуренс Лессиг.
Всё это — свободное программное обеспечение, или open source software, главные мифы о котором мы сейчас разберём.
Миф 1
Свободное ПО = бесплатное
Свободное ПО может быть платным, это не запрещено. Но оно не может быть проприетарным, то есть закрытым и нарушающим «четыре свободы» GNU:
- Свобода 0 — запускать программу в любых целях.
- Свобода 1 — изучать программу и изменять под свои задачи (обязательный доступ к исходным текстам).
- Свобода 2 — распространять копии программ.
- Свобода 3 — улучшать программу и публиковать эти улучшения на благо всех людей. Конечно же, с открытыми исходными текстами.
Свободное ПО называется free software, а бесплатное — freeware. В отличие от свободных, бесплатные программы бывают закрытыми и могут распространяться в виде исполняемых файлов, по которым нельзя понять их внутреннюю структуру. Например, популярная программа для очистки Windows от мусора CCleaner — бесплатная, но не свободная.
Миф 2
Свободное ПО == open source (открытые исходники)
Две главных организации, которые продвигают идеи открытого и свободного ПО, — Open Source Initiative (OSI) и Free Software Foundation (FSF). Они чуть по-разному понимают термины «свободный» и «открытые исходники». FSF больше внимания уделяет свободам пользователей и использует термин free software. OSI же считает, что слово free сбивает людей с толку, намекая на бесплатность, и подчёркивает значение открытых исходников и метод разработки программ. Для OSI основной термин — open source software.
По сути и OSI, и FSF занимаются одним делом, а все их разногласия — в небольших философских акцентах.
У каждой программы есть лицензия — юридические условия, на которых её можно использовать. Обычно она ограничивает возможность исследовать устройство, модифицировать код и создавать на его основе новые программы. Это относится даже к тем из них, код которых выложен в открытый доступ. Пример — WinRAR, популярный архиватор челябинца Евгения Рошаля: исходники открыты, но делать с ними ничего нельзя. Такие программы тоже считаются несвободными.
Миф 3
Если есть исходный код — это open source
На самом деле нет. Для этого нужен полностью понятный код, который можно легко прочесть. Несвободными являются даже те программы, которые прошли обфускацию — когда исходный текст прогоняют через специальный сервис и делают его трудночитаемым. Часто так поступают с программами на интерпретируемых языках, особенно с разными скриптами на JavaScript, Perl или PHP. Они переводятся в машинный язык только в момент выполнения, и потому их исходники всегда доступны. В коде после обфускации не разобраться — теряются стройность и красота, остаётся только функциональность.
Вот классический пример исходника на языке C, всё логично и ясно даже без комментариев:
Он же после обфускации:
Попробуете понять, что тут происходит? И представьте, что таких строк тысячи или десятки тысяч, как бывает в обычных программах.
Миф 4
Свободное ПО — это лицензия GNU GPL
Многие связывают свободное ПО с самой известной лицензией — GNU GPL от Free Software Foundation. На самом деле свободных лицензий очень много: МIT, BSD, Mozilla Public License (MPL), Common Development and Distribution License (CDDL), Apache Software License. Да и у авторов GPL есть разные версии их свободной лицензии: для документов, «железа» и программ.
Все они говорят о «четырёх свободах» и открытых исходниках, но есть отличия в мелочах. Например, можно ли использовать код в составе проприетарных программ, допустимо ли делать закрытой свою версию кода или выпустить его под другой, пусть даже свободной лицензией.
Миф 5
Свободное ПО — для любителей, а не для серьёзных программистов
Многие думают, что все серьёзные программисты работают в Microsoft, Oracle, Apple и подобных корпорациях, не занимаются свободным ПО, а создают закрытые коммерческие продукты. Но и в открытых сообществах много высококлассных кодеров. Например, такие известные люди, как Линус Торвальдс — разработчик Linux, или Гвидо ван Россум — создатель языка Python. Кстати, Python, как все языки программирования, тоже имеет лицензию. И выходит под собственной, которая называется PSFL.
К открытым проектам может присоединиться и профессионал, и новичок, и просто любитель кодинга: повышать квалификацию, нарабатывать портфолио и репутацию. Работа над свободным ПО в мире программистов считается хорошим тоном. Конечно, писать критически важные части ядра Linux или FreeBSD так просто вам не дадут, но какие-то небольшие и менее приоритетные задачи выполнять можно сразу.
Миф 6
Свободное ПО — недоработанное и у него меньше функций
Спорное утверждение. Да, открытые программы для работы с растровой и векторной графикой сильно отстают от коммерческих аналогов, но в них всё равно можно полноценно работать. А свободный 3D-редактор Blender массово используют в Голливуде — например, в нём сделаны спецэффекты «Человека-паука 2».
Большинство серверов в мире работает на Linux, FreeBSD или OpenBSD. Да и программируем мы в основном на свободных языках. Веб тоже держится на СПО: браузеры Chromium и Mozilla Firefox, серверы Ngnix и Apache, базы данных MySQL и PostgreSQL, свободный движок для сайтов WordPress — список можно продолжать долго. Это отлично проработанные программы, которые по многим параметрам превосходят коммерческие аналоги.
Миф 7
Свободное ПО только для программистов, простому человеку не разобраться
Кажется, что Linux — не для обычных людей, а чтобы установить и настроить СПО, надо быть сисадмином, программистом или как минимум сыном маминой подруги. Действительно, есть куча закрытых программ, инсталлировать которые сможет только профессионал. Но существует и множество свободных, с которыми справится практически любой. К примеру, установить Ubuntu или Linux Mint легко — уж точно не сложнее, чем справиться с настройкой реестра Windows. Да и управлять программами в Linux проще — весь софт можно обновить с помощью одной команды.
Миф 8
На свободном ПО не заработать
Этот миф перекликается с темой бесплатных программ. Многие из них действительно распространяются «безвозмездно, то есть даром», а программисты помогают разработке как волонтёры, в свободное от работы время. Но крупные компании, фонды и отдельные люди жертвуют немалые деньги, чтобы стимулировать ключевых специалистов на свободных проектах.
Например, разработчик браузера Firefox, Mozilla Foundation, существует на государственные гранты, пожертвования, помощь от крупных компаний и за счёт коллабораций. Корпорация Google одно время платила фонду, чтобы быть в браузере поисковиком по умолчанию. Эти деньги шли на зарплату программистам, пиарщикам, тимлидам, маркетологам, формировали рекламный бюджет и так далее. Похожая финансовая модель и у других сообществ — того же Linux Foundation или проекта GNU.
Зачем корпорации спонсируют такие проекты? Они пользуются многими свободными программами и хотят, чтобы софт был лучше и надёжнее, быстрее обновлялся. В бизнесе повсеместно применяются веб-серверы Ngnix и Apache, свободный офисный пакет LibreOffice, операционные системы Linux или FreeBSD. Поэтому всем важно, чтобы вовлечённые в их создание программисты достойно зарабатывали.
К примеру, Линус Торвальдс с 1997 по 2003 год работал в компании Transmeta, где ему платили зарплату и давали возможность разрабатывать ядро Linux, а Гвидо ван Россум спокойно занимался Python в DropBox. К свободному ПО серьёзно относятся и многие ИТ-гиганты — те же Oracle, Google и даже Microsoft спонсируют сообщества напрямую или предоставляют им своих разработчиков.
Миф 9
Свободное ПО легко взломать, потому что исходный код открыт для всех
С одной стороны, каждый может найти ошибки в исходных кодах программ и воспользоваться ими. А с другой, команды, работающие над СПО, не так скованы жёсткими дедлайнами и корпоративными интересами — они не замалчивают ошибки, быстро выпускают обновления и не жертвуют качеством в угоду коммерции. А открытость исходников даёт возможность каждому проверить код и порекомендовать изменения.
Свежий пример: в мае 2020 года вышла новая версия музыкального редактора Audacity 2.4.0, а через день один из пользователей обнаружил проблему: при определённых условиях терялись данные. Буквально за 5-6 часов сообщество программистов протестировало программу, свежий релиз отменили, в центре загрузок оставили предыдущую версию. А ещё через день проблему устранили и вышла исправленная, с номером 2.4.1.
Производители коммерческого софта ориентированы на продажи, поэтому могут иногда замалчивать факты о безопасности или не решают проблемы вовремя, отдавая приоритет новым разработкам. А обнаружить «дыры» проприетарных программ не так уж и сложно — хакеры по всему миру регулярно отчитываются о новых багах версий Windows.
Миф 10
Конкуренты используют ваш код, а вы останетесь ни с чем
Как в науке, где учёные обмениваются знаниями и технологиями, это обычный вариант. В целом он помогает эволюции и гарантирует счастье пользователей. В бизнесе не принято возмущаться, если вашу маркетинговую механику отследят, доработают и используют конкуренты. И никто не считает плохим стартап, который улучшил потребительские свойства какого-то товара, а потом забрал себе часть его рынка. Всегда на первый план выходят компетенции команды и отдельных специалистов, качество бизнес-процессов, поддержки и умение удовлетворить потребности пользователей.
Известные компании всё больше ориентируются на свободный код и видят в нём выгоду. Например, в марте 2020 года «ВКонтакте» выложили на GitHub под свободными лицензиями код фронтенда своих мобильных приложений, а на порталах графических редакторов Figma и Sketch (под лицензией Creative Commons) появилась вся их графика. Это поможет сторонним разработчикам мини-приложений для соцсети создавать более профессиональные решения.
Зачем всё это начинающему программисту
Свободное программное обеспечение — не просто форма разработки приложений, но и философия. Поэтому идеи подхватили в разных сферах: появились лицензии для свободных аппаратных платформ, для творческих людей (семейство Creative Commons) и даже проекты open source велосипедов и автомобилей.
Для новичка в программировании свободное ПО — отличный способ набить руку, наработать портфолио и принести пользу людям, а для программиста-профи или бизнесмена — достойно зарабатывать, пусть и без космической маржи.
Как новичку присоединиться
к open source проекту
- Присоединиться к официальному форуму или конференции разработчиков.
- Принести пользу сообществу: помочь с переводом документации или статей, тестировать проект и отправить несколько баг-репортов.
- Изучать стиль программирования проекта. Попробовать сделать пару патчей или исправить несложный баг.
- Дописать какую-то недостающую функцию к проекту и предложить разработчикам.
- Знакомиться и общаться с участниками сообщества, задавать им вопросы и проявлять активность — так можно быстрее добиться результата.
Вот несколько свободных проектов на разных языках программирования. Присоединяйтесь и добавляйте их себе в портфолио.
Python
- Blender — мощный 3D-редактор.
- Django — фреймворк для приложений на Python.
- OCRFeeder — графический интерфейс для программ распознавания текста.
- Дополнения для GIMP или OBS.
Go
- Kubernetes — программа для автоматического развёртывания контейнерных приложений, сложная штука для профессионалов.
Java
- Eclipse — среда разработки.
- FreeMind — программа майндмэппинга.
- NetBeans — среда разработки.
- TightVNC — клиент для удалённого доступа к рабочему столу Windows.
JavaScript
- PostCSS — программа для автоматизации работы с CSS.
- MediaWiki — CMS для «Википедии» и любых вики-проектов.
- TinyMCE — WYSIWYG-редактор для HTML и JavaScript.
C++
- Chromium — свободный браузер, на котором основаны Chrome и Opera.
- OBS — популярная программа для стриминга.
- Mozilla Firefox — свободный браузер.
- LibreOffice и OpenOffice — свободные офисные пакеты.
Что почитать и посмотреть об open source и free software
- Статьи на русскоязычном сайте GNU.
- «Свободная культура», книга Лоуренса Лессига, юриста FSF и создателя лицензий Creative Commons.
- «Linux. Just for fun», книга Дэвида Даймона и Линуса Торвальдса.
- Увлекательные документалки про Linux «Код Linux» и «Revolution OS».