Сайт Ивана Чередниченко | OpenSource и Freeware

OpenSource и Freeware

А не скачать мне Windows из Интернета?

Всем известно, что существуют не только платное программное обеспечение, но и бесплатное, условно-бесплатное программное обеспечение и программы с открытым исходным текстом. Эти программы разрабатываются и поддерживаются в основном энтузиастами, теми, кто создает их либо, чтобы показать свои навыки в программировании, либо, чтобы составить конкуренцию платным программам. Но конечно, не все бесплатные программы создаются энтузиастами и для энтузиастов. Среди бесплатных программ и программ с открытым исходным текстом немало приличных профессиональных продуктов. Примером может служить операционная система Linux, Web-сервер Apache и другие. Все перечислять не имеет смысла, так как их огромное множество. Например, в журнале "Мир ПК" за февраль 2003 года в статье Владимира Молочкова "Дареному коню в зубы… смотрят" описываются различные бесплатные и условно-бесплатные графические редакторы. Кто работал с VCW VicMan’s Photo Editor (www.photo-editor.net, www.vicman.net) поймет и подтвердит то, что эту программу нельзя назвать "программой энтузиаста для энтузиаста". Это приложение очень удобное, имеет хороший интерфейс, малый объем дистрибутива и так далее. Оно вполне может заменить дорогой корпоративный продукт фирмы Adobe. Уже не стоит говорить о таких "патриархах" продуктов с открытыми исходными текстами, как Linux, браузер Mozilla и т.д. Также программа PowerCHM (http://www.dawningsoft.com), позволяющая создавать документы в формате HTML Help (*.CHM) распространяется условно-бесплатно. Кто скажет, что эта программа не сможет конкурировать с Help & Manual (http://www.helpandmanual.com)? Для этого у нее есть продуманный интерфейс, удобство и простота в эксплуатации, и т.д.

Конечно, нельзя сказать, что все бесплатные программы хорошие и профессиональные. Попадаются и такие, использование которых, приносит вред и большие трудности (не имею ввиду вирусы). Например, некоторые из них потом очень трудно удалить, так как они интегрируются в операционную систему, создают многочисленные записи в системном реестре, а приложение, которое убирало бы эти записи, не поставляется. Поэтому использовать такие программы приходится на свой страх и риск, тем более, что ко многим таким программам идет лицензионное соглашение, в котором четко указано, что разработчики не несут ответственности. Здесь придраться не к чему. Если не хотите использовать бесплатный продукт, используйте платный, который в свою очередь тоже имеет строчку о том, что все риски связанные с использованием программного обеспечения компанией – разработчиком не принимаются и не компенсируются. Это притом, что программа платная и с закрытыми исходными кодами. Но я не хочу сказать, что все, кто продает свои программы, должен нести ответственность, а также компенсировать убытки, потому что очень часто ошибки и сбои (эти самые "риски") возникают от компьютерной неграмотности самого пользователя. На самом деле это трудный вопрос. Если бы каждый пользователь подавал в суд на Microsoft при сбоях Windows, то эта корпорация давно бы обанкротилась. Это всем понятно, но вопрос о проблемах программ все еще остается открытым.

Бесплатные программы часто создаются для того, чтобы пользователи могли запомнить имя ее автора. Так пару версий автор делает бесплатно, а затем начинает продавать свой продукт. Своеобразная рекламная акция уже прошла – теперь время платить. В этом случае пользователь будет знать возможности применения конкретного программного обеспечения, ведь он уже использовал ее, когда она была абсолютно бесплатной. Такой вид программ называется shareware, это означает, что пользователь имеет право работать с программой для демонстрации ее возможностей, но с некоторыми ограничениями (очень часто 30-тидневный испытательный срок; окно о том, что необходимо регистрировать или купить программу). Использование таких программ очень удобно, ведь вы имеете возможность изучить программу до покупки. А вот с Microsoft Windows такой фокус не пройдет. Выглядело бы смешно скачивать из Интернета shareware Windows с 30-тидневным сроком использования! А потом, нужно было бы купить ее и вам пришлось бы скачать еще дополнительно 2 – 3 гигабайта из Интернета, чтобы Windows стала "нормальной" и полноценнной! Это, аж, какой-то анекдот получается: "А не скачать мне Windows из Интернета?"

Что же заставляет одних распространять программы бесплатно, а других продавать? Ответим вначале на второй вопрос. Создатели программ – коммерческие компании, целью существования которых является получение выгоды и сверхприбыли. Они по своей сути не могут отказаться от продажи, иначе их место займут более предприимчивые и находчивые компании. Сейчас на рынке компьютерных технологий и программного обеспечения существует сильная конкуренция. Многие компании выпускают однородную продукцию, функциональные возможности которых совпадают с возможностями продуктов конкурентов, поэтому постепенно все идет к снижению цен на программы, либо их замены бесплатными аналогами. Но это вовсе не означает, что скоро вы сможете купить лицензионный Adobe Acrobat за 50 рублей, или вообще бесплатно скачать из Интернета. Нет, это означает то, что компании продвигают различные маркетинговые акции, чтобы повысить спрос на свою продукцию. В этом знаменит гигант Microsoft, с его широко-известными рекламными акциями по всему миру; другие компании тоже не отстают от него. Все хотят получить место под солнцем, чтобы контролировать большую (если не всю) часть рынка. Но стать монополистами и контролировать не только цены, но и всю сферу информационных технологий и ее перспективные отрасли, им не удастся, потому что существуют бесплатные программы, количество которых увеличивается день ото дня и антимонопольное законодательство.

Теперь отвечаем на первый вопрос: что заставляет распространять программы бесплатно? Во-первых, личное желание автора, когда он не делает каких-либо "заявлений" по поводу бесплатного распространения. То есть просто бесплатно и все. Здесь нет никаких объяснений этому поступку. Во-вторых, бесплатная (сравнительно недорогая или условно-бесплатная) программа будет распространяться быстрее, чем при заоблачной цене, исчисляемой в сотнях долларов США. Если провести небольшую рекламу в Интернете, разместить программу на сайте бесплатных программ, раздать друзьям и знакомым – все это приведет к тому, что вашей программой будут пользоваться и возможно ее полюбят. Главное – это сделать качественный продукт. Если вы не уверены в отсутствии ошибок в программе, то можно распространять ее как программу с открытыми исходными текстами. Но это вовсе не означает, что вам необходимо выкладывать весь программный код вашего творения, вы можете выложить только некоторые функции или фрагменты кода (так называемое ядро), в которых вы сомневаетесь на отсутствие ошибок, либо желаете поделиться с другими программистами. Может ваш код в будущем будет основой какой-нибудь компьютерной технологии. Примером может служить язык Perl, который был создан в 1988 году, и к сегодняшнему дню составляет основу Web-программирования. В момент создания, вряд ли его автор Лэрри Уолл, в то далекое время об этом знал! В-третьих, если судить по логике, то автор бесплатного продукта не может и не должен ничем отвечать за возможные ошибки своего творения (если ко всему этому еще поставляется исходный код, то тем более). Можно сказать, что бесплатные программы создаются для того, чтобы авторы в меньшей степени несли ответственность.

Из этого вытекает еще один вопрос: что заставляет программистов делать вообще программы? Если программист работает в компании, то трудовой договор и моральная этика. А если автором программы является энтузиаст, который создает их потому, что это его хобби, то ответ прост – это хобби. Программирование – это его любимое дело, без которого он не может прожить и дня. Но бывает и такое, как в описанном в журнале "Мир ПК" за август 2003 случае с программой Help Development Studio (http://www.divcomsoft.com/helpstd). Бывает так, что будущий автор вначале использует "чужую" программу, а затем возникает какая-либо проблема в самой программе, которую решить невозможно. Автор начинает искать другой продукт, ой, он оказывается платный; а бесплатная программа – не устраивает. Что делать? Ответ прост: программист начинает писать свою программу, под себя, исключая все негативные нюансы своего предыдущего компьютерного опыта. Если программа разрабатывается таким образом, то это позволяет избежать возможных трудностей при ее эксплуатации, ведь автор лично намучился с использованием "чужих" программ. Он хочет сделать такую программу, которая смогла бы исключить тот факт, по которому автор начал создавать ее, то есть когда пользователь не может дольше использовать приложение ввиду того, что оно имеет какие-то функциональные или иные ограничения. Если программист имел бы исходный код программы, то ему бы не пришлось переписывать всю аналогичную программу с нуля, поэтому он сэкономил бы не только время, но и свою творческую энергию. Но, ведь программы не все поставляются с открытым исходным текстом. Поэтому сотни программистов ежедневно делают одну и ту же работу – пишут практически одинаковые алгоритмы, используют аналогичные функции, создают библиотеки. Но, возможно, что все это уже есть, просто "вам запрещено исследовать программный код, дизассемблировать, декомпилировать и т.д. программу". Так что, давайте избавим друг друга от трудностей, поделимся исходными кодами, сделаем программу открытой и более доступной.

Потенциальным автором следует помнить, что когда вы создаете программу, то главное – это исполняемые файлы и библиотеки (так называемые объектные компилированные файлы), а программный код – дело второстепенное. Не каждый будет исследовать открытый код, ведь не все знают языки программирования. Если учесть то, что большинство программ пишется на С++ или Ассемблере, то распространять такой код можно без жадности. Чужой код на С++ очень трудно читать (особенно, если знания этого языка программирования только базовые), еще его труднее будет редактировать. Поэтому запутанные и большие по объему исходные коды могут даже не нести той информативности, которую они должны обеспечивать. Принцип открытого кода в основном подразумевает то, что любой желающий может создать модификацию продукта, а если код открытый, но непонятный и запутанный, то этой возможности у него нет. Да, еще следует учесть и то, что вы хоть как остаетесь автором оригинальной (стандартной) версии программы. Порядочный программист обязательно укажет, что "в программе используется код…" такого-то автора, или, что эта программа не является оригинальной стандартной версией. Например, в лицензии к Perl идет следующий пункт: вы имеете право модифицировать оригинал исходного кода, но вам необходимо обязательно пометить внесенные изменения, а также продублировать соглашение об авторском праве и указать, что это не стандартная версия. Любой уважающий себя программист именно так и сделает. Зачем присваивать чужие заслуги, учитывая то, что программа является общедоступной и поставляется с исходным кодом?

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