Все что нужно знать про Open Source
Содержание
Open source (дословно «открытый источник») – открытый исходный код. Сам феномен открытия исходного кода в последнее время вызывает у многих людей недоумение или насмешку. Некоторые не понимают, что в этом такого особенного, другие во все горло кричат о невозможности продавать открытый исходный код. Сегодня я разберу эту тем, опустив незначительные детали. Остальное, при желании, вы сможете найти в интернете.
Для начала давайте поймем, в чем феномен. Почти все издатели программ и игр для ваших электронных устройств выпускают их с закрытым кодом. Сделано это для того, чтобы сохранить интеллектуальную собственность издателя только в его распоряжении, отдавая пользователям только результат работы написанного кода. Это значит, вы не можете посмотреть код, из которого сделана эта программа, так как вместо него там будут зашифрованные файлы. Следовательно, вы не можете что-то изменить в работе программы и не сможете поделиться полной ее копией. Это сделано для того, чтобы такие программы можно было продавать наибольшим тиражом.
Причины Open Source
Тогда для чего вообще нужно открывать код программы?
Во-первых, это уверенность. В наше время в большинстве программ и игр встроены вредоносные модули, помогающие их разработчикам зарабатывать еще больше денег. Иногда разработчики добавляют те функции, которые, на первый взгляд, вообще не нужны приложению. И чтобы удостовериться, что разработчик не злоупотребляет своим положением, людям нужно просмотреть его исходный код. Если же люди найдут в коде нежелательный код, они могут его удалить и собрать приложение сами.
Во-вторых, это кроссплатформенность, то есть возможность перенести игру с одной платформы на другую. Зачастую, чтобы игра, созданная для windows, заработала на android, достаточно изменить не такую большую часть кода. В-третьих, это постоянное развитие. Любой человек из интернета, увидев ваш код, может дать идею, как его улучшить, или убрать уязвимости. Вы даже можете работать вместе с такими людьми и создать нечто большее, чем планировали изначально.
Сервисы
В последнее время появилось огромное количество сервисов, где вы можете публиковать программы с открытым исходным кодом и не бояться, что их украдут или скопируют, сейчас я приведу только малую часть из них.
- F-droid – магазин приложений только с открытым исходным кодом для операционной системы Android. Все приложения проверялись администрацией ресурса, так как сервису важна его репутация.
- Github – на данный момент популярнейшая платформа для публикации исходного кода. Изюминкой сайта является положенная в его основу утилита Git, с помощью которой можно удобно обновлять код, смотреть старые версии и быть продуктивным засчет одновременной работы многих людей над одним проектом.
- Gitlab – Неплохой аналог гитхаба.
- Sourceforge – слегка устаревший, но пользующийся особым авторитетом сервис публикации открытого исходного кода.
- Not a bug – сервис с максимально открытым кодом, даже сам код сайта открыт и может быть просмотрен.
Ну, хорошо, открытый код правда имеет много преимуществ, но ведь его могут просто украсть, закрыть и выдать за свой собственный. А вот и нет! С 2007 года работает третья версия лицензии GPL. Если ваш код защищен этой лицензией, то любой человек может копировать, распространять, изменять и даже закрывать ваш код, но обязательным является указание вашего авторства, иначе такого человека будет ждать уголовное преследование.
Прибыль
Все прекрасно, но можно ли заработать на открытом коде? Работать за идею, это, конечно, хорошо, но кушать тоже хочется. И ответ – да, можно! Есть два самых распространенных пути.
Первый — это система добровольных пожертвований, которая присутствует во всех сервисах выше. Вы можете сказать разработчику «спасибо», отправив на его платежные реквизиты определенную сумму, которую вы выбираете сами. Основной чертой является добровольность самого процесса. Вы можете ничего не оплачивать, и у вас даже не появятся всплывающие окна с напоминанием сделать оплату. Чаще всего оплату принимают в криптовалюте, так как разработчики находятся в разных странах и принимать пожертвования в фиатных валютах им не выгодно по определенным причинам.
Второй вариант – это платные версии. Сначала разработчик выпускает отличный продукт с открытым исходным кодом, потом делает полную копию этой программы с расширенным функционалом, но закрытым исходным кодом. Те, кто не доверяет второй программе, используют первую, те, кому нужно больше функций, используют вторую.
Оба варианта подразумевают добровольную оплату вашего труда, то есть теоретически вы можете и не получить никакой выручки, но в реальности это не так. Если вы создали по-настоящему хороший продукт, которым люди пользуются каждый день, и который делает их жизнь лучше, то вы определенно получите то, что по праву заслуживаете. Примером тому служат множество отличных программ: magisk, newpipe, youtube-dl, bromite, monero wallet и множество других. Создатель magisk, Джон Ву, создал его, чтобы получать полный доступ над своим андроид телефоном, так как ему не нравилось, что гугл отнял у него эту возможность. А теперь Джон сам работает в гугл!
Насколько можно быть открытым?
Помимо программ, открытыми могут быть и операционные системы, и компоненты компьютеров и телефонов. Разные системы linux являются тому доказательством. Весь код системы открыт и вы, при желании, можете его проверить. С операционной системой windows так сделать не получится, а ведь к ней есть много вопросов.
Также на слуху в кругах программистов и Libreboot – открытая прошивка для БИОСа компьютера, предназначенная для удаления закрытого кода загрузчика.
Существуют и полностью открытые смартфоны — Librem и Pinephone. Первая даже отсылает вам рентген купленного устройства, чтобы вы могли убедиться, что в телефоне отсутствует прослушка. Оба телефона работают на операционной системе linux, адаптированной под мобильные устройства, и имеют встроенные рычаги выключения Wifi, Bluetooth, камеры с микрофоном и GPS. Однако цена первого от второго отличается почти в 5 раз. Такая разница в цене объясняется используемыми ресурсами для устройств.
Для большинства смартфонов сейчас также можно найти прошивки с открытым исходным кодом, в основном это LineageOS или ее модифицированные аналоги. Такие прошивки являются переделкой оригинальной прошивки андроид, которую Гугл публикует для людей. Из изначальной прошивки вырезаются сервисы Гугл, некоторые аналитические инструменты, время от времени отправляющие статистику на сервера гугл, и другие мелкие утилиты.
Зачастую люди, стремящиеся контролировать все процессы в своей жизни, включая электронные, называются большинством людей параноиками, однако есть специальный термин для людей, которые жаждут иметь возможность посмотреть любую часть кода в своих устройствах. Такие люди называются фритардистами. Ярым представителем движения фритардизма является Ричард Мэттью Столлман – основатель лицензии GPL, фонда свободного программного обеспечения и проекта GNU. Он проделал огромную работу, чтобы про идею свободного программного обеспечения узнало как можно больше людей. И его труды не были напрасны, с каждым годом можно увидеть все больше интересных, а главное открытых устройств и важных программных решений с открытым исходным кодом.
Большой проблемой для любителей открытого кода являются драйвера к различным устройствам, в частности к видеокартам, чаще всего это Nvidia. Насчет этой ситуации существует много шуток в сети, но в реальности это приносит много проблем. В основном проблемы испытывают пользователи linux, так как они получают либо урезанные драйвера, из-за которых устройство работает не в полную мощность, либо работает, но с сильными перебоями. Из личного опыта могу вспомнить отсутствие драйверов для linux на мой wifi-модем, из-за чего я не мог нормально пользоваться интернетом на своем компьютере 3 месяца.
Недавно в России анонсировали отечественный фонд открытого программного обеспечения, который начнет работать ориентировочно в следующем году. Основной идеей этого фонда является выдача грантов на дальнейшую разработку достойных проектов. Это сделано для поддержания отрасли программирования в нашей стране, и это безусловно хорошо.