Open Source → Код на распашку
Вот еще интересная статья из CHIP про Open Source:
Программу, которая стоит 3000 рублей, разрабатывают десять программистов. Другая распространяется бесплатно, а делают ее 100 человек. Третью можно получить так же свободно, но при этом в ее поддержке и разработке принимают участие 1000 специалистов. Почему такие разные подходы? В чем разница? Где ошибка?
Если подходить к вопросу Open Source максимально абстрактно, то налицо целая философия: как будто компьютерные гении всего мира собрались и создали собственное идеалистическое учение о способах разработки и использования программ. Согласно этому учению, пользователь не платит программисту за написанное приложение, однако сам посильно помогает в его разработке. Таким образом программы создаются целыми легионами программистов разного уровня со всех концов света. Хотя такое представление об открытом ПО — самое общее и абстрактное, в реальной жизни все намного сложнее.
ОТКРЫТЫЕ И СВОБОДНЫЕ
Основные понятия
Open Source Software, открытое программное обеспечение или программное обеспечение с открытым исходным кодом, — общедоступная совместная разработка программных продуктов. Говоря более строгим языком, это стратегия разработки ПО, согласно которой доступ к исходным кодам может получить любой желающий. В некоторых случаях сама программа может быть платной, но ее исходные коды все же должны находиться в открытом доступе для просмотра и изменения. Приложения Open Source доступны как отдельным пользователям, так и любым компаниям и организациям. Условия распространения, использования, модификации и доступа к таким программам описываются в лицензиях, под которыми выпускается открытое ПО. Принципы свободных программ максимально похожи на идеологию открытых, однако путать их не стоит. Разница в том, что свободное ПО защищено свободными лицензиями и так называем копилефтом (от англ. copyleft). Последний представляет собой антипод копирайту (copyright). В основе копилефта лежит концепция использования законов авторского права для расширения прав и свобод людей. Применительно к софту это означает, что все последующие изменения и новые версии свободных программ должны оставаться свободными.
Из школьных уроков информатики всем известно, что в первозданном виде любая программа представляет собой набор текстовых команд, который с помощью разнообразных инструментов превращается в исполняемый код. Чаще всего он представляет собой бинарный файл, содержащий данные и команды для центрального процессора. Обратно в текстовый вид в общем случае его преобразовать нельзя при всем желании. Сейчас мы говорим о программах с закрытыми исходным кодами. Они могут распространяться на безвозмездной основе или требовать от пользователя денег, каких-либо действий, использования какого-то определенного устройства. Собственно, поэтому разработчик и не желает раздавать доступ к исходникам, а подобные программы называют собственническими или проприетарными. Кроме того, некоторые разработчики бесплатных программ специально закрывают доступ к исходным кодам из соображений безопасности. В качестве примера можно привести известный интернет-мессенджер QIP.
К программам, представляющим еще один класс — полусвободное ПО, легко можно найти все исходные коды, а самими приложениями можно пользоваться сколько и как угодно, но только в некоммерческих целях.
ВОЗМОЖНОСТИ
Зачем это надо
Казалось бы, если программистам платят деньги за разработку приложений, то зачем им писать бесплатные или открытые программы? На самом деле причин много: это могут быть, например, личные побуждения вроде желания что-то доделать в любимой программе или необходимость получить опыт работы. А могут быть вполне профессиональные интересы, когда открытое ПО создается для получения выгоды.
Представьте, что вы с друзьями пишете потенциально полезную и в чем-то уникальную программу. Реализовав определенные возможности, вы выкладываете ее в свободный доступ. Если утилита оказалась полезной и нужной, то через некоторое время продолжать разработку программы вам будут помогать другие программисты. Они могут добавлять какие-то новые функции или улучшать базовые возможности. То есть программа начнет развиваться более интенсивно, чем если бы над ее разработкой трудилась небольшая группа пользователей. Чем больше человек работает над приложением, тем легче найти и исправить в нем ошибки и расширить возможности.
А теперь представьте, что у вас не одна программа, а целый комплекс: веб-сервер, операционная система, структура управления базами данных. Подобные крупные продукты разрабатываются либо армиями специально нанятых программистов, либо сообществами пользователей. В первом случае конечная цена ПО будет огромна (классический пример — серверные продукты Microsoft), а во втором (если программа действительно распространенная и популярная) — стремиться к нулю, но поддержка такого решения и документация к нему может стоить определенных затрат. Бизнес-моделей получения прибыли или выгоды за счет открытого ПО очень много.
Когда вы покупаете программу, вы платите в том числе и за документацию, какой-то определенный уровень сервиса. Понятно, что если продукт бесплатен, то и требовать поддержки от его автора нельзя. Тогда на помощь приходят тематические форумы или иные сообщества пользователей, работающих над программным продуктом. Там же можно почерпнуть какие-то документы, увидеть ответы на часто задаваемые вопросы. Но в некоторых случаях, когда требуется профессиональная круглосуточная поддержка какого-либо серверного дистрибутива, пользователю придется раскошелиться ради возможности обратиться к службе поддержке разработчиков. Кроме того, авторы могут заработать, если какая-либо компания захочет использовать их код в закрытом проекте.
КАЧЕСТВО
Преимущества и недостатки
Программы с открытым исходным кодом дают разработчику возможность проверить исходный код и выяснить, можно ли улучшить его и использовать в своих программах. Люди всего мира могут внести свой вклад: предложить переводы интерфейса, техническую информацию, доклады об ошибках или помочь любым другим способом. Обмен идеями значительно ускоряет появление нововведений и скорость их внедрения.
При работе над новой программой разработчик может воспользоваться готовым открытым кодом какого-либо существующего решения. Так как он уже отлажен и заведомо работает, не приходится тратить время на написание и тестирование собственной версии. Этот подход позволяет быстрее составлять новые программы, уделять больше внимания инновациям, ради которых они создаются.
Когда в разработке участвует много программистов, то выловить и исправить ошибки становится легче. Если число работающих над программой людей приближается к тысяче, то подобная модель отслеживания и исправления ошибок иногда оказывается эффективнее, чем при разработке платных проектов: даже крупные компании не могут позволить себе такой огромный отдел контроля качества, поэтому действительно популярная открытая программа может оказаться гораздо надежнее патентованных аналогов.
В этом же, как ни парадоксально, кроется главный недостаток Open Source с точки зрения коммерческого пользователя. Продукт с определенной долей качества тестируется автором, а далее тестирование возлагается на плечи пользователей, и лишь по прошествии некоторого времени его можно назвать достаточно стабильным. Однако стоит сказать, что есть тенденция улучшения качества открытых программ. Это было подтверждено компанией Coverity, занимающейся разработкой средств автоматизированного анализа. Во время исследования, проведенного ей прошлым летом, было проверено около 10 млрд строк кода. В результате специалисты пришли к выводу, что качество программ Open Source в 2008 году улучшилось на 16%.
Разработчики не несут никаких обязательств относительно качества программы, кроме моральных, ведь их труд напрямую не оплачивается. Поэтому сегодня большие корпорации, например Intel, IBM и Nokia, находят необходимым поддерживать проекты по разработке свободного ПО, оплачивая труд специалистов, работающих в рамках этих проектов. Спонсируемые таким образом инициативы развиваются ощутимо быстрее, чаще обновляются до стабильных версий и являются более надежными и распространенными.
Еще один недостаток Open Source с точки зрения коммерции — более сложная модель получения прибыли. Помимо этого трудности могут возникнуть при совместной работе над проектом огромного количества рассредоточенных иноязычных программистов. Существует необходимость постоянно отслеживать появляющиеся изменения и проверять их качество и необходимость. Управлять разработкой авторского проекта становится непросто, приходится использовать сложные системы контроля и учета кода.
Для домашнего пользователя основное преимущество — стоимость программы. В развитых странах, где законодательство строго следит за соблюдением авторского права, это особенно важно. В России платность программы чаще всего не является фактором, пресекающим ее нелегальное использование, поэтому открытые и бесплатные проекты не так распространены из-за сложностей, которые могут возникнуть при работе с ними: их коммерческие аналоги часто упакованы в более удобную инсталляционную оболочку, не требуют установки множества дополнительных компонентов (или же они инсталлируются автоматически), то есть более дружественны к простому пользователю.
Еще один важный момент — потенциальная опасность прекращения разработки проекта. Он вполне может выпасть из круга интересов автора, что иной раз равнозначно полной или частичной остановке работы. Иногда в сообществе находятся желающие занять место лидера — тогда процесс восстанавливается.
Вместо заключения
Эта статья претендует на звание вступительной, но никак не всеобъемлющей. Мы рассказали о самых основополагающих вещах, чтобы вы могли отличить бесплатное от открытого, а открытое от свободного, понять преимущества и недостатки Open Source и проникнуться причинами его существования.
Сейчас все больше компаний переходит на открытое ПО, все больше производителей открывают свои программы для общества. Многие разработчики увидели, что крупные проекты гораздо эффективнее разрабатывать не группой отдельно взятых программистов, а усилиями многих людей со всего мира.
За рамками статьи осталось множество особенностей распространения и использования Open Source, мы не раскрыли тему лицензий и только вкратце рассказали о системах получения прибыли. CHIP еще вернется к этой теме в следующих номерах. Мы расскажем про известные проекты и представим конкретные примеры, когда открытая модель оказалась лучше проприетарной.
Начать знакомство с сообществами и программами можно с крупнейшего сайта для разработчиков открытого программного обеспечения
- +5
- Tiberium
- 04 января 2010, 17:31
я ничего не имею против просто интересно как к этому относится сам журнал?
Извините, пожалуйста, за умничество :) Ничего против Tiberium не имею.
И, на мой взгляд, это получилось. Нужно же проводить ликбез среди пользователей. Чтобы был приток новых сторонников Open Source.
Кстати, про какой протеус речь? Сейчас существуют десятки софтин с подобным названием.