Учебник по созданию shareware программ

         

Advanced Disk Catalog



Advanced Disk Catalog

Advanced Disk Catalog (ADC, http://www.elcomsoft.com/adc.html) — мощная программа каталогизации дисков любого типа: дискет, жестких дисков, CD-ROM и т. п. С ее помощью можно быстро создать базу данных, содержащую сведения о файлах, находящихся на соответствующем носителе. Впоследствии, воспользовавшись функцией поиска, можно быстро узнать, на каком именно диске находится нужный файл.

В один прекрасный день самого начала весны 1997 года Владимир Каталов (автор одной из двух исторических статей в "Компьютерре" 1998 года, положивших начало массовому развитию shareware в России) решил навести порядок среди своих залежей программ на дискетах и CD-ROM. До этого такую "инвентаризацию" он проводил еще в 1995 году, когда дисков было совсем мало, и для этого вполне хватало возможностей небольшой бесплатной утилиты под DOS. Но сейчас требовалось нечто большее. В поисках нужной программы Владимир перебрал около двадцати имевшихся на рынке продуктов (среди которых были и бесплатные, и относительно дорогие), но везде чего-то не хватало. Было решено написать свой собственный каталогизатор дисков, и примерно через неделю, 11 марта, был готов некий "релиз". Дней через десять после этого Владимир решил попробовать продавать новый продукт как shareware, хотя его коллеги смотрели на эту затею без особого энтузиазма...

Первая регистрация программы была оплачена уже 30 марта 1997 года, а всего за первый месяц было целых 12 продаж! Владимир до сих пор ломает голову над причинами такого удачного старта своей программы на shareware-рынке, ведь, по его словам, ADC в то время был довольно слабым продуктом (например, отсутствовала документация, не было инсталлятора). Кроме того, программа была "по знакомству" размешена на сервере одного московского ВУЗа с медленным доступом; она была зарегистрирована всего в трех или четырех интернет-архивах программ, в поисковых системах страница программы была не видна...

Со временем у программы появился инсталлятор, файл справки, был реализован мультиязычный интерфейс — с возможностью легкого добавления поддержки новых языков, сайт программы "переехал" на сервер коммерческого провайдера, в компьютерных журналах появились обзоры ADC, была создана сильная защита от взлома — все это вызывало увеличение количества регистрации. Но особенно заметный скачок уровня продаж — примерно в два раза - произошел после первой поездки автора программы на Shareware Industry Conference (см. разд. "Профессионалы shareware" данной главы) в 1998 году, когда он стал реализовывать новые приемы shareware, которыми с ним поделились зарубежные коллеги.

Сегодня, через четыре года после начала продаж, у Advanced Disk Catalog более десяти тысяч пользователей, не считая нескольких корпоративных клиентов, купивших сразу десятки и даже сотни лицензий.



Adware



Adware

К этой категории относятся программы, которые во время своей работы демонстрируют пользователю рекламу -- чаще всего графические баннеры размером 468x60 точек (Рисунок 1.1). Adware сочетает в себе черты freeware и shareware: с одной стороны, пользователь может использовать программу бесплатно и не обязан регистрировать ее, платя деньги разработчику (последний получает денежные отчисления от рекламодателей); с другой стороны, у пользователя имеется стимул зарегистрировать программу, т. к. после регистрации показ рекламы отключается.



Careware



Careware

Совсем уж экзотический способ, которым распространяется, например, широко известный HTML-редактор Arachnophilia (http://www.arachnoid.com /arachnophilia). В лицензионном соглашении к программе сказано, что пользователь должен на час, день или неделю перестать жаловаться на жизнь и сказать кому-нибудь слова ободрения.





Chameleon Clock



Chameleon Clock

Chameleon Clock (http://www.softshape.com) - это программа-часы, заменяющая собой стандартные часы Windows, находящиеся в Панели задач. Помимо отображения времени, Chameleon Clock имеет функции будильника, календаря и многие другие возможности.

В 1997 году Юрий Герасимов, будущий разработчик Chameleon Clock, работал в одной газодобывающей компании программистом. Базу данных, которая и была собственно его работой, он к тому времени успешно закончил и занимался ее поддержкой, и поэтому у него было некоторое свободное время. "Для себя" он писал различные небольшие программы, в том числе и часы. В один знаменательный день весной 1998 года в руки Юрию попал тот самый журнал "Компьютерра" № 240, с опубликованной в нем статьей "Искусство Shareware" Александра Каталова (см. разд. "Shareware в России" данной главы). Прикинув, что всего пять(!) продаж двадцатидолларовой программы в месяц — это уже больше текущей зарплаты, он решил попробовать: если и "прогорит", основная работа не даст ему умереть с голоду.

Некоторое время ушло на выбор продукта. Как пришла идея часов с поддержкой скинов (т. е. наборов графических элементов, с помощью которых вид программы полностью меняется), Юрий сейчас уже не помнит, но вдохновителем был WinAmp. Кроме того, очень удачным шагом было решение использовать популярность WinAmp для "раскрутки" собственного продукта. Тогда уже было много часов с поддержкой скинов, но все они имели скины, уникальные для каждой программы, и соответственно их число не превышало 10—50 штук. Для сравнения: уже в 1998 году скинов для WinAmp существовало около 3000!

Самая первая версия вышла на русском языке, называлась Winamp Clock, и до сих ее можно найти где-то на Freeware.ru и Download.ru. Она не продавалась и служила больше для обкатки идеи и просто бета-тестирования. Программа была довольно слабой — даже сам автор сегодня не может смотреть на нее без удивления. Тем не менее, именно из нее была сделана первая версия Chameleon Clock: интерфейс программы был просто переведен на английский язык.

Трудностей добавляло то, что Юрий к тому времени совершенно не знал английского языка — и в школе, и в институте он изучал немецкий. Переводами в основном занималась жена Юрия, она же и придумала название Chameleon Clock.

Версия Chameleon Clock 1.0 вышла 7 июля 1998 года. Она работала только под Windows 95, не имела инсталлятора и даже справки. Добавив инсталлятор, Юрий стал распространять через интернет-архивы версию 1.01. Первая продажа была 3 августа, через неделю после выхода версии.

Юрий (с помощью жены) быстро написал справочную систему, исправил пару ошибок и выпустил еще одну версию. Вместе с ней в первый месяц получилось 17 продаж. Увеличению популярности программы очень помог известный интернет-архив Download.com — первая же версия часов попала в его список рассылки Shareware Dispatch, где публикуется информация только об избранных новинках рынка программного обеспечения.

Выходили все новые версии, и вскоре продажи вышли на уровень 30 покупателей в месяц. Так продолжалось несколько месяцев подряд. Первый скачок популярности произошел после добавления ключевой возможности, которая до сих присутствует не более чем у 5% конкурирующих программ — это встраивание в Панель задач и полная замена стандартных часов Windows. Технически это не самая тривиальная задача, но результат оправдал все усилия, потраченные на ее решение. Одновременно цена программы была увеличена с 14,95 до 24,95$, и это только привело к подъему числа регистрации!

Следующий скачок уровня продаж был после увольнения со старой работы и перехода на работу с shareware (так называемое full-time shareware) — примерно через год после выхода первой версии. Больше времени стало уходить на техническую поддержку, продвижение программы, Web-сайт и тому подобные вещи. Как результат, количество регистрации в месяц еще больше увеличилось.

Еще один фактор, благоприятно повлиявший на высокий уровень продаж Chameleon Clock — тщательная проработка пользовательского интерфейса. По оценкам Юрия, до 70%(!) времени, затраченного на работу над Chameleon Clock, ушло только на интерфейс. Зато теперь многие пользователи, по словам Юрия, присылают ему письма примерно с таким содержанием: "После того, как увидели Вашу программу, уже не хочется работать со стандартными часами Windows". Я могу подтвердить это впечатление от Chameleon Clock: после того, как я установил эту программу в рамках обычного тестирования программ из каталога SoftList, я уже не мог терпеть вид нормальных часов Windows — это при том, что я всегда был равнодушен ко всяким украшательствам типа обоев для рабочего стола или скинов для WinAmp! Пришлось приобрести регистрацию Chameleon Clock — тем более, что для российских пользователей она стоит всего 100 рублей.



Commercialcc



Commercialcc

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

Коммерческие программы в основном распространяются на физических носителях — дисках CD-ROM или дискетах, в "фирменной" упаковке (поэтому такие программы часто называют "коробочными"), снабжаются печатным руководством пользователя и гарантированной технической поддержкой. Коммерческие программы — наиболее массовый тип программного обеспечения, к которому принадлежат такие "монстры", как Microsoft Windows, Microsoft Office, Microsoft Visual Studio, Adobe Photoshop, CorelDRAW, Borland Delphi и многие другие. Именно коммерческим программам пока принадлежит наибольшая часть рынка программного обеспечения.

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



Demo



Demo

Демонстрационные программы представляют собой ограниченные по функциональным возможностям версии коммерческих и shareware-программ, а иногда — просто видеоролики, своеобразные презентации программ. Предназначены они для ознакомительных целей: если пользователю программа понравилась, он может произвести оплату и получить полную версию продукта. Наиболее широко распространена практика применения demo-версий в игровой индустрии: почти каждая новая игра выходит одновременно в виде полной "коробочной" версии и в виде варианта, включающего несколько начальных уровней, который можно бесплатно скачать через Интернет.



Donationware



Donationware

Такие программы распространяются бесплатно и их регистрация не требуется, однако разработчик программы в лицензионном соглашении или документации указывает, что если пользователю программа нравится, то он может (именно может, а не обязан) выслать автору небольшое вознаграждение. Размер вознаграждения либо определен четко, либо оставлен на усмотрение пользователя - "кто сколько может". Иногда размер вознаграждения указывается даже так: "Пришлите мне столько денег, чтобы их хватило на ящик пива!". Для таких случаев придумали даже отдельный термин: "beerware" (от англ, beer - "пиво").

К сожалению, как показывает практика, пользователи очень вяло реагируют на такие просьбы и очень редко высылают деньги разработчикам программ. Некоторые авторы, чтобы хоть как-то стимулировать пользователей зарегистрировать программу, пытаются разжалобить их, указывая такие, например, подробности: "Мне нужно кормить шестерых детей, пожалуйста, не дайте им умереть от голода!"

Donationware привлекало авторов программ в то время, когда программистам-одиночкам было крайне затруднительно самостоятельно принимать платежи от пользователей. Сегодня, с распространением Интернета и появлением десятков компаний-регистраторов, берущих на себя все хлопоты по обслуживанию платежей любых видов, способом donationware свои программы распространяют в основном те авторы, для которых разработка программ — это хобби или развлечение.

Из наиболее известных donationware-программ можно назвать замечательный просмотрщик и редактор графических файлов Irfan View (http:// www.irfanview.com) Ирфана Скилжана (Irfan Skiljan) из Австрии. В лицензионном соглашении Ирфан пишет: "Irfan View распространяется как freeware, но только для частного, некоммерческого использования (это означает -для использования дома). [...] Если вам нравится эта программа, пожалуйста, зарегистрируйтесь, послав 10$ или 15DM (пожалуйста, только наличными) по адресу [...]". Как видите, регистрация программы на таких условиях маловероятна, т. к. почтовые службы многих стран, в том числе и России, запрещают пересылку наличной валюты в почтовых отправлениях. Кроме того, для юридических лиц существуют дополнительные трудности, связанные с ограничениями на операции с наличной валютой.



Download com — один из самых крупных



Рисунок 1.2. Download.com — один из самых крупных интернет-архивов shareware-программ




Eserv



Eserv

Eserv (http://www.eserv.ru) — готовое решение для полноценного доступа к Интернету из локальной сети (через один модем или выделенное соединение). Включает почтовый сервер (SMTP, РОРЗ и IMAP4.1), сервер новостей (NNTP), Web-сервер (с поддержкой CGI, виртуальных серверов, виртуальных каталогов, Web-интерфейсом ко всем серверам комплекта), FTP-сервер (с поддержкой виртуальных каталогов и докачки), proxy-серверы и т. д. Ведущий разработчик пакета — Андрей Черезов.

В конце 1996 года компания "Етайп" (http://www.enet.ru/win/etype/), интернет-провайдер в Калининграде, искала программное средство, которое позволяло бы ее корпоративным клиентам решить вопрос организации внутриофисной почты и прозрачного объединения внутренней почтовой системы с интернет-почтой. Требовались следующие возможности:

использование одной программы как для интернет-, так и для внутри-офисной почты; простота администрирования; удаленное администрирование; работа ПО под Windows; возможность доставки интернет-почты через обычное dial-up-подключение (без выделенного канала); возможность присвоения каждому пользователю индивидуального интернет-адреса для работы с внешней электронной почтой; приемлемая стоимость; русскоязычная поддержка.

Ни один из рассмотренных вариантов решений на базе имеющихся на рынке программного обеспечения не смог удовлетворить сразу всем критериям, поэтому было решено создать свой продукт. На написание первой бета-версии программы ушло всего около пяти дней, и она вышла в свет 25 декабря 1996 года. Тогда Eserv включал в одном модуле РОРЗ, SMTP и HTTP-серверы, SMTP/POP3-коннекторы и dial-up-звонилку, а его размер был всего около 70 Кбайт.

Версия 1.0 появилась в феврале 1997 года, к тому моменту существовало уже много бета-тестеров, среди которых имелись в том числе администраторы двух местных банков, которые были довольны возможностями программы. Цена Eserv была установлена в 60$ (с НДС — 72$) и первая продажа состоялась уже марте. Тот, самый первый, покупатель предложил включить в Eserv и news-сервер, что и было сделано.

На калининградской компьютерной выставке BitExpo, проходившей в апреле 1997 года, компания "Етайп" представляла уже не только свои провайдерские услуги, но и Eserv. Стендовые машины были подключены к Интернету, на одной из них работал Eserv/1.1. Другие участники выставки просились подключиться к Интернету через стенд "Етайп"... Тут же родилась идея включить в Eserv прокси-сервер. Вечером первого дня выставки Андрей Че-резов написал прокси-сервер, и следующие дни еще несколько стендов работали в Интернете — через Eserv.

После выставки к лету 1997 года Eserv вышел на объемы продаж в несколько копий в месяц, к осени — 10 копий в месяц. При этом Eserv почти нигде не рекламировался, он был размещен только на двух зарубежных архивах -bhs.com и tucows.com (их тогда было очень мало) и на единственном российском -- ntutils.quarta.ru. Tucows дал Eserv средненький рейтинг 4 "коровы", и этот рейтинг Eserv/1.1 так и сохранился за ним пожизненно (периодически только меняют номер версии на сайте). Сайт Eserv тогда состоял из одной невзрачной страницы www.enet.ru/win/cherezov/e-serv.html. Чуть позже Web-мастер компании "Етайп" Олег Дулецкий сделал более симпатичный сайт, темы которого были использованы и в Web-интерфейсе Eserv. Несколько копий Eserv в 1997 году было продано в Германию.

Конкуренции тогда никакой не ощущалось — единственным прокси-сервером для Windows был WinGate, из почтовых серверов были только сверхдорогой MS Exchange 4.x и NT Mail. Оба они не умели вытворять с РОРЗ такие трюки, как Eserv, поэтому конкурентами не считались. Чуть позже появились VРорЗ, чешский WinProxy и Mdaemon, но Eserv тогда уже прочно стоял на ногах.

Интересно, что о продаже Eserv на Запад и даже вообще о продажах Eserv вне Калининграда в начале 1997 года никто и не задумывался. Расширить продажи Eserv предложил технический директор "Етайп" Виталий Воронин.

Незарегистрированная версия Eserv тогда ничем не отличалась от коммерческой, пользователи платили не за снятие каких-то ограничений, а просто в качестве "спасибо" за Eserv. Все ограничения, связанные с shareware, появились позже, к осени 1997 года.

Eserv был написан очень вовремя — многие тогда искали замену для DOS UUPC, и ничего подходящего, кроме Eserv, не было ни в России, ни на Западе. Поэтому пользователи рекомендовали Eserv друг другу, и популярность его быстро росла. Сайт тоже был популярен — в первой двадцатке соответствующей категории рейтинга Rambler (top100.rambler.ru/top100).

В октябре 1998 года начались продажи версии 2.0 (это была полностью переписанная с нуля намного более мощная версия, чем 1.6). К тому моменту было уже несколько сотен пользователей версий 1.x, почти все сразу стали приобретать апгрейды (за 20$) и было очень много новых пользователей. Цена на версию 2.0 была установлена в размере 90$ по результатам голосования пользователей на сайте.

Да, сообщество пользователей Eserv, виртуально обитающее в форуме сайта, внесло большую лепту в выработку как технических, так и "маркетинговых" решений в Eserv. Форум все эти годы нежно лелеялся и переносился с сайта на сайт вслед за Eserv. Сейчас там около 15 000 сообщений — настоящая "база знаний".

Уже к ноябрю 1998 года заказы на приобретение Eserv шли таким мощным потоком, что полуручная система продаж, существовавшая в "Етайп", перестала справляться с ним. Андрей Черезов в срочном порядке написал "электронный магазин", где счета выписывались полностью без участия людей, ключи на Eserv автоматически формировались на основе данных из оплаченных счетов, все документы для российских пользователей (счета-фактуры, накладные) тоже автоматически формировались в Web-интерфейсе. Все было автоматизировано, вплоть до печати адресов на конвертах, и все было доступно через Web-интерфейс персоналу компании и пользователям Eserv.

В 1999 году Eserv переехал на домен www.eserv.ru и получил новый дизайн. Большая база установленных Eserv/2.x и относительная сложность Eserv для пользователей (по сравнению с типичными shareware-продуктами, не требующими знания сетевых технологий) привела к некоторому замедлению работ над Eserv/3.0 по сравнению с планом — много времени отнимала поддержка. Сейчас ею занимается несколько человек. Тем не менее, Eserv/3.0 к моменту выхода этой книги, скорее всего, уже появится.



Freeware



Freeware

Это свободно распространяемые программы, за использование которых не нужно платить, благодаря чему "freeware" стало синонимом слова "бесплатно". Как это ни странно, сегодня, когда продажа программ является прибыльным бизнесом, число сторонников freeware даже среди серьезных компаний не уменьшается: бесплатная программа — прекрасный инструмент для продвижения новых технологий и продуктов. Например, успех формата документов PDF фирмы Adobe во многом обусловлен бесплатным распространением программы просмотра Acrobat Reader. Браузер Microsoft Internet Explorer, программа общения ICQ — все это примеры популярных бесплатных продуктов, имеющих очень сильные позиции по отношению к своим конкурентам.

Более того, некоторые shareware-продукты становятся бесплатными. Яркий пример -- знаменитый мультимедиа-проигрыватель WinAmp (http:// www.winamp.com). Первоначально он был shareware-программой стоимостью в десять долларов, а после того, как сайт winamp.com стал привлекать миллионы посетителей, разработчики, получая солидные доходы от рекламы, решили сделать свой продукт бесплатным, еще больше увеличив его популярность.



Freeware и другие



Freeware и другие

Говоря об индустрии программного обеспечения, помимо shareware, упоминают и другие типы программ. Вкратце расскажу о них.



Учебник по созданию shareware программ



ГЛАВА 1.

Что такое shareware?

Shareware — это тип программного обеспечения, обусловленный особенностями распространения таких программ. В русском языке этот термин интерпретируется как "условно-бесплатное программное обеспечение". Такая длинная формулировка, естественно, не совсем удобна для частого применения, поэтому термин "shareware" используется и в русскоязычной литературе. Употребляется еще одно наименование этого типа программного обеспечения -"пробное" (trial).

Основной принцип shareware — "попробуй, прежде чем купить" (try before you buy). Программа, распространяемая как shareware, предоставляется потребителям бесплатно — пользователь платит только за время загрузки файлов по Интернету или за носитель (дискету или CD-ROM). В течение определенного срока, составляющего обычно тридцать дней, он может пользоваться программой, тестировать ее, осваивать ее возможности. Если по истечении этого срока пользователь решит продолжить использование программы, он должен зарегистрироваться, заплатив автору определенную сумму. В противном же случае пользователь обязан прекратить использование программы и удалить ее со своего компьютера.

Такой способ распространения программ очень удобен для" пользователя, особенно в сравнении с остальными методами дистрибуции программного обеспечения. Ведь если вы приобретаете в компьютерном магазине коробку с нужной программой или заказываете ее у компании-дистрибьютора, у вас практически всегда нет возможности тщательно протестировать работу программы. Максимум, на что вы можете надеяться — на то, что продавец продемонстрирует вам программу, установленную на его собственном компьютере. Естественно, о том, чтобы в течение месяца пользоваться программой, убедиться в ее нормальной работе на имеющейся конфигурации оборудования или, например, на всех компьютерах в вашей организации, и лишь потом оплатить ее, не может быть и речи.

Для программ, распространяемых по принципу "попробуй, прежде чем купить", все совсем иначе. Убедившись в том, что программа надежно работает в установленной на компьютере пользователя версии операционной системы, не конфликтует с "железом", например, традиционно "капризными" драйверами видеокарты и звуковой платы, удостоверившись, что заявленные разработчиком функции действительно присутствуют и работают без ошибок, пользователь оплачивает программу.

Эта особенность распространения программ никак не сказывается на уровне предоставляемого сервиса и технической поддержки. Пользователь по своему желанию может заказать экземпляр программы на нужном носителе (дискете или компакт-диске), получить консультацию относительно работы с программой по телефону или электронной почте. Регистрация программы может быть сделана по телефону, факсу, обычной почте, e-mail, со страниц Web-сайта. Оплата производится любым известным способом — банковским или почтовым переводом, кредитной картой, чеком и т. п. При наличии уважительной причины оплативший программу пользователь может без проблем получить свои деньги обратно.

Для разработчиков программного обеспечения индустрия shareware также очень привлекательна. В результате стремительного развития сети Интернет программы, предлагаемые их авторами для распространения, почти мгновенно становятся доступны миллионам пользователей по всему миру. Для того чтобы начать реализацию своих программ по принципу shareware, требуются минимальные затраты, не сравнимые с начальными вложениями ни в один бизнес. Всю сложную работу, требующую больших технических мощностей и специальных лицензий, например прием заказов и платежей, создание и отправка копий программы на дискетах и компакт-дисках, возьмут на себя сторонние компании — всего лишь за относительно небольшие комиссионные. Также для shareware не имеет значение место проживания или социальное положение человека. Житель европейской столицы и провинциального российского городка, студент и уже сформировавшийся профессионал — все они имеют примерно одинаковые шансы добиться успеха. Собственно, программа, которая будет продаваться, и доступ в Интернет -вот две главные составляющие, требующиеся для shareware.

Помимо принципа "попробуй, прежде чем купить", shareware включает в себя принцип свободного, т. е. бесплатного, распространения незарегистрированной версии программы — например, через Web-сайты, РТР-архивы, BBS и т. п. Однако авторы shareware-программ обычно разрешают включать свои продукты в сборники программного обеспечения на CD-ROM, распространяемые за плату, т. к. выпуск программы на CD-ROM увеличивает аудиторию пользователей программы.

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

Высокую эффективность shareware подтверждает факт безбедного существования множества компаний и индивидуальных программистов, занимающихся исключительно созданием и поддержкой shareware-программ. Некоторые из них имеют годовые обороты в сотни тысяч и даже миллионы долларов -например, ACD Systems, производитель известной программы просмотра изображений ACDSee, или WinZip Inc., продающая одноименный и очень популярный, особенно в нашей стране, архиватор.

Не случайно в последнее время все больше крупных компаний (среди них -корпорации Microsoft, Symantec, Adobe), ранее распространявших свои программные продукты только в "коробочных" вариантах, которые можно было приобрести в компьютерных магазинах, выпускают shareware-версии с ограничением по времени работы. Например, Microsoft бесплатно распространяет 120-дневные версии операционной системы Windows 2000 и пакета Microsoft SQL Server 2000.

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

Кроме того, многие пользователи (особенно представляющие интересы крупных компаний) больше доверяют программам, продающимся в "коробочных вариантах". Они привыкли, что за такими программами стоит крупный и надежный поставщик и квалифицированная служба технической поддержки. Невысокая цена shareware-программы в данном случае является скорее отрицательным фактором: по мнению такого пользователя, качественный продукт не может стоить дешево.

Тем не менее, блестящие перспективы shareware мало у кого вызывают сомнение: загрузка программ из Интернета и последующая их оплата в режиме online идеально вписываются в системы электронной коммерции, за которыми, как известно, будущее мировой торговли. Механизмы shareware

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

Итак, отличительные признаки shareware-программы состоят в следующем:

оплата только после определенного периода ее бесплатного использования в ознакомительных целях; распространение незарегистрированной версии программного продукта без каких-либо ограничений; относительно невысокая цена.

Главная страница официального сайта SIC



Рисунок 1.3. Главная страница официального сайта SIC




Главное окно программы FlashGet



Рисунок 1.1. Главное окно программы FlashGet, демонстрирующей рекламный баннер


Так как загрузка новых рекламных баннеров осуществляется по Интернету с серверов соответствующих рекламных служб, то adware — это в основном такие программы, для работы которых требуется соединение с Интернетом — например, браузеры (Opera), download-менеджеры (ReGet, FlashGet), программы дозвона или ускорители соединения с Интернетом.

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



Главное окно ReGet с открытым окном новой закачки



Рисунок 1.4. Главное окно ReGet с открытым окном новой закачки


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

В том же году принято еще одно очень важное решение: выпустить ReGet со встроенным рекламным модулем. Начиная с версии 1.5, ReGet распространяется в двух вариантах: ReGet Pro, который требует регистрации с первого запуска, и ReGet Free, который не требовал регистрации, но показывал рекламные баннеры, т. е. эта версия была adware (см. разд. "Freeware и другие" данной главы). После этого продажи, как и ожидалось, резко упали, но за счет обширной пользовательской аудитории это с лихвой компенсировалось выручкой от показов рекламы.

В январе 2000 года ReGet стал продаваться и на российском рынке. Цена для российских пользователей была установлена в 210 рублей, что является относительно небольшой суммой для такой сложной программы.

В настоящее время, по оценкам компании ReGet Software, аудитория ReGet исчисляется сотнями тысяч человек.



Homepageware



Homepageware

Эти программы напоминают adware. Пользователь не обязан оплачивать регистрацию, но незарегистрированная копия программы при каждом своем запуске автоматически; меняет начальную страницу установленного в системе браузера на домашнюю страницу программы. Homepageware не очень распространено, видимо, потому, что такое варварское обращение с пользовательскими настройками очень раздражает. Кроме того, такая программа сегодня, во времена скандалов, связанных с нарушением приватности и распространением "троянских коней", вызывает подозрения — не производит ли она какие-либо еще более вредоносные действия?



История shareware



История shareware



Open Source



Open Source

Open Source — это развитие концепции public domain software, в которой учтены ошибки предыдущих поколений программистов. "Open Source" можно перевести как "открытый исходный код". Авторы, следующие этой концепции, прежде всего должны распространять свой продукт вместе с исходными текстами. Однако Open Source не ограничивается только условием предоставления исходных текстов программы. Open Source — это система требований к лицензии на программный продукт, которая называется The Open Source Definition (OSD) и представлена на сайте http:// www.opensource.org.

Так, лицензия на продукт не может запрещать распространение программы в составе сборников и коллекций программного обеспечения (как коммерческих, так и бесплатных), а также устанавливать комиссионные отчисления или другие платежи за право распространять программу. К программе обязательно должен быть приложен исходный код. Модифицированное программное обеспечение должно распространяться на тех же самых условиях, что и исходный продукт. Автор исходного продукта даже имеет право требовать, чтобы исходный код к будущим модификациям его программы распространялся без изменений, но в комплекте с соответствующими модифицирующими патчами (patches -- "заплатки").

Полный текст OSD можно прочитать по адресу www.opensource.org/osd.html.

Наиболее сильные позиции концепция Open Source традиционно имеет среди разработчиков программ для операционной системы Linux. Один из самых известных и успешных проектов Open Source — Web-сервер Apache (http://www.apache.org), установленный на большинстве интернет-серверов в мире. Так как этот продукт распространяется в виде исходных текстов, то очень быстро были созданы не только версии Apache для различных платформ, но и его интернациональные версии. Например, Russian Apache (http://apache.lexa.ru) учитывает многообразие русских кодировок текста и обеспечивает правильное отображение текста вне зависимости от типа кодировки, установленной на сервере или в браузере пользователя.

Однако и среди Windows-программ встречаются open source-продукты. Особенно много их среди VCL-компонентов для Borland Delphi и C++ Builder.



Отцыоснователи



Отцы-основатели

Более двадцати лет назад, еще до появления первого IBM PC в 1981 году, распространение платных программ было прерогативой компаний, разрабатывавших и продававших коммерческое программное обеспечение. Программисты-одиночки, писавшие программы для СР/М, Radio Shacks и Apple, распространяли их бесплатно среди групп пользователей и на BBS. Авторы и не думали брать за эти программы какие-то деньги: ведь программы были небольшие, не обеспечивались технической поддержкой и, по мнению разработчиков, не обладали какой-либо рыночной ценностью. Подругому, наверное, и не могло быть, т. к. BBS служили средой для обмена в том числе и пиратскими копиями коммерческого программного обеспечения.

С появлением персонального компьютера IBM PC ситуация не изменилась. Для новой платформы были написаны мощные по тем временам программы: MS DOS, текстовый редактор WordStar, электронная таблица VisiCalc, стоившие довольно дорого: например, цена VisiCalc составляла $200. Программисты-одиночки все также писали небольшие программы и распространяли их бесплатно.

В конце семидесятых годов прошлого века программист Джим Кнопф (Jim Knopf) (p. 1943), работавший в IBM, написал для компьютера Apple программу для печати почтовых этикеток Easy-File. Однако эта программа, по сути, представляла собой небольшую систему управления базой данных (СУБД) и допускала более широкое использование: например, сам Кнопф использовал ее для учета пользователей своей программы.

В 1981 году Кнопф продал свой компьютер Apple II и приобрел только что появившийся в продаже IBM PC. Естественно, он сразу же портировал на новую платформу свое детище (Easy-File была написана на Basic).

Как и многие программисты-одиночки в то время, он распространял свою программу бесплатно. Пользователи Easy-File также бесплатно получали письма (не e-mail, а обычной почтой) с уведомлениями о выходе новых версий. Однако рассылка почтовых отправлений стоила автору немалых денег, и в 1982 году он придумал способ компенсировать свои расходы.

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

Примечание
Примечание

Кнопф называл себя Джим Кнопка (Jim "Button"), т. к. "кнопф" по-немецки означает именно "кнопка", и под этим псевдонимом он получил всемирную известность. По его мнению, английское "Button" было более благозвучным и более удобным для маркетинговых целей, чем немецкое "Knopf".

Один из первых пользователей, получивших программу Easy-File, содержащую такую необычную по тем временам просьбу зарегистрироваться, тут же позвонил Кнопфу. Оказалось, что в то же время другой программист, Эндрю Флюгльман, написал коммуникационную программу PC-Talk и стал распространять ее примерно на тех же условиях, что и Кнопф: за техническую поддержку он просил 25$. Кнопф незамедлительно связался с Флюгль-маном, который был очень обрадован тем, что нашел, единомышленника. Коллеги выработали общую стратегию в продвижении своих продуктов: Кнопка назвал свою программу похоже — PC-File, были установлены одинаковые цены на регистрацию программ (25$=), а в документации Флюгльман и Кнопф ссылались на программы друг друга.

В то время мало кто разделял оптимизм Кнопфа и Флюгльмана относительно будущего их новой инициативы. Жена Кнопфа, например, прямо называла его "старым дураком" (old foolish man), т. к. трудно было представить, что хоть кто-то заплатит какому-то программисту-оди ночке деньги за его программу.

Путь распространения программ, избранный Флюгльманом и Кнопфом, оказался очень успешным. Довольно большое количество пользователей изъявили желание оплатить регистрации PC-Talk и PC- File.

Вскоре в популярнейшем компьютерном журнале PC-World появился обзор, в котором PC-File получил великолепные отзывы. Джим Кнопф вспоминает:

"Я со своей семьей проводил отпуск на Гавайях, когда журнал появился на прилавках. Реакция публики была ошеломляющей! Наша домработница была вынуждена забирать почту мешками. Когда мы вернулись домой, эти мешки устилали весь цокольный этаж, и нам приходилось с трудом пробираться среди них, чтобы спуститься в подвал. Мой сын, Джон1, работал днями и вечерами все лето, чтобы только разобрать содержимое этих мешков! Для каждого из нас жизнь уже не могла оставаться такой, как прежде!"

По мнению Кнопфа, потрясающий успех PC-File и PC-Talk был обусловлен следующими факторами:

относительно низкая цена программ по сравнению с аналогами, имевшимися в то время на рынке; возможность для пользователей попробовать программу в использовании, перед тем, как оплатить се регистрацию, что было исключено при продаже коммерческих программ; прежде реализация программ шла преимущественно через специализированные магазины. Инициатива Кнопфа и Флюгльмана была радикально новым маркетинговым ходом, и компьютерные издания с большой охотой писали о новом методе распространения программ, что привлекло к PC-File и PC-Talk огромное внимание публики.

Правда, при этом программисты не сразу решились сделать этот бизнес своим основным занятием: Кнопф, например, продолжал работать в IBM, получая в десять раз меньшую зарплату, чем доход, который приносила ему PC-File. Только в 1984 году он был вынужден покинуть IBM, т. к. не мог работать восемь часов днем, а затем еще четыре часа вечером (а также все выходные) посвящать своему "хобби".

Разработка, распространение и техническая поддержка программ, которыми занимались Кнопф и Флюгльман, по сути, и были тем, что сегодня называют shareware. Но тогда этого термина еще не существовало. Флюгльман называл это "freeware". Он даже зарегистрировал это слово как собственную торговую марку, и с этого момента никто не мог использовать термин "freeware" без разрешения автора PC-Talk.

Несмотря на это, Флюгльман потерпел неудачу. Дело в том, что он распространял PC-Talk вместе с исходными текстами, руководствуясь популярной с семидесятых годов прошлого века концепцией public domain software. Очень скоро он потерял контроль над своей программой, т. к. десятки программистов стали распространять собственные продукты, написанные на основе PC-Talk. Впоследствии Флюгльман перестал развивать и поддерживать PC-Talk, потеряв интерес к shareware-бизнесу.

А вот Джим Кнопф выбрал более успешный путь. Он продолжал работу над PC-File, число зарегистрированных пользователей программы росло. Уйдя в 1984 году из IBM, Кнопф основал собственную фирму. В 1987 году в его компании работало 18 человек, и она продавала 10 различных продуктов, а количество зарегистрированных пользователей составило более миллиона человек. Вскоре штат компании увеличился до 35 человек, а объем продаж достиг четырех с половиной миллионов долларов в год.

В 1983 году другой программист, Боб Уоллес (Bob Wallace) (p. 1949), создал текстовый редактор PC-Write и стал распространять его по более экзотичной для тех времен схеме. Регистрация стоила довольно дорого для небольших программ -- 75$, но после оплаты пользователь получал уникальный регистрационный номер, который выводился на заставке программы. Другой пользователь, желавший зарегистрировать свою копию PC-Write, сообщал Уоллесу регистрационный номер, выводившийся на стартовой заставке в его копии программы, т. е. номер человека, предоставившего ему программу. И тот, кто распространил PC-Write среди пользователей, получал от Уоллеса комиссионные. Так пользователи имели возможность не только компенсировать собственные деньги, затраченные на регистрацию программы, но и заработать в несколько раз больше. Например, Майк Качлахан (Mike Callahan), также известный как Dr. FileFinder, который сегодня является признанным экспертом в области shareware, в свое время заработал на регистрациях PC-Write около пятисот долларов.

Замечание 1
Замечание 1

Сегодня такие "партнерские программы" (affiliate programs) очень популярны. Многие авторы программ готовы заплатить до 50% владельцу того сайта, по ссылке с которого пользователь посетил Web-страницу shareware-программы и затем зарегистрировался.

Этот продукт так же, как и PC-File с PC-Talk, оказался очень успешным. Боб Уоллес открыл собственную компанию, QuickSoft, в которой впоследствии работало более 30 человек, а годовой оборот составлял два миллиона долларов. Кстати, именно Боб Уоллес впервые стал называть свою программу "shareware", хотя этот термин не сразу стал популярен.

Нельсон Форд (Nelson Ford), основавший в 1984 году компанию PsL, в это же время вел колонку о таких программах в одном популярном тогда компьютерном журнале (предположительно это был PsL News). Перед Фордом стояла проблема — как называть программы, о которых он пишет? Да, термин "freeware" был широко известен, но он являлся торговой маркой Флюгльмана и не мог использоваться в коммерческих целях. Пытаясь как-то выйти из этой затруднительной ситуации, употребляли сочетание "user supported software" - однако оно было слишком громоздким и к тому же двусмысленным: то ли "программы, поддерживаемые пользователем", то ли "программа с технической поддержкой пользователя".

Чтобы окончательно решить проблему, Форд объявил на страницах журнала конкурс на лучшее наименование этого типа программ. Тогда-то Боб Уоллес и предложил термин "shareware", которым он называл свою программу PC-Write. Уоллес, в отличие от Флюгльмана, не требовал каких-либо прав на термин shareware: по его словам, он увидел это слово в каком-то старом компьютерном журнале еще тех времен, когда о персональных компьютерах IBM PC никто и не думал.

В то время было еще много небольших программ и утилит (например, популярная программа LIST Вернона Берга (Vernon Buerg)), и эти три программы — PC-File, PC-Talk и PC-Write стали наглядным примером того, что написанные программистами-одиночками shareware-программы могут быть реальной альтернативой коммерческим продуктам. Вслед за ними на рынке shareware появилось много новых программ, и нет ничего удивительного в том, что их тоже ждал успех.

А чем сегодня занимаются отцы-основатели shareware? К сожалению, Эндрю Флюгльман скоропостижно скончался в 1987 году. В 1997 году он был посмертно награжден престижной премией "Shareware Industry Award" (см. далее разд. "Профессионалы shareware" этой главы). Термин "freeware", который был зарегистрирован на него, сегодня обозначает просто бесплатные программы. Джим "Кнопка" Кнопф пережил сердечный приступ в 1992 году, когда ему было 49 лет ("В таком нежном возрасте!" - сокрушался Джим) и, решив, что shareware доставляет ему слишком много тревог и волнений, продал свою компанию и ушел из большого бизнеса. В настоящее время он официально находится па пенсии. Боб Уоллес в 1991 году продал свою преуспевающую компанию QuickSoft и отошел от компьютерного бизнеса, посвятив себя написанию психоделических книг. В 2000 году за заслуги в деле становления shareware-индустрии имена Джима Кнопфа и Боба Уоллеса были помещены в Зал Славы (Hall of Fame) Ассоциации профессионалов shareware (см. разд. "Профессионалы shareware" данной главы).



Postcardware или Cardware



Postcardware, или Cardware

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



Профессионалы shareware



Профессионалы shareware

В середине восьмидесятых годов молодой рцнок shareware привлек тысячи программистов, многие из которых стремились во что бы то ни стало заработать как можно больше денег, причем как можно быстрее. Стремясь получить прибыль и столкнувшись с тем, что пользователи не очень активно регистрировали свои копии программ (что было не удивительно, учитывая многообразие представленных на рынке shareware-программ и наличие множества коммерческих дистрибьюторов), авторы стремились стимулировать пользователей оплачивать регистрации программ. Но сложными схемами, наподобие той, которую применял Боб Уоллес при распространении PC-Write, мало кто себя утруждал. В ход шли более простые и грубые приемы: например, лицензионные соглашения к программам составлялись в таком тоне, что пользователь заочно подозревался в намерении украсть программу, а некоторые авторы вообще писали, что наложили на пользователя проклятие, которое будет действовать до тех пор, пока не будет оплачена регистрация программы.

При этом авторы программ, буквально "выбивая" из пользователей деньги, зачастую не обеспечивали должный уровень поддержки. Программист мог обещать потенциальным покупателям что угодно — круглосуточную техническую поддержку, бесплатные будущие версии продукта, подписку на рассылку уведомлений о новых версиях, а после получения денег мог просто забыть о своем новом зарегистрированном пользователе, или, что еще хуже, вообще исчезнуть. Это привело к тому, что имиджу shareware как реальной альтернативе коммерческих продуктов был нанесен огромный урон. До сих пор почти все крупные корпорации, распространяющие некоторые свои продукты фактически как shareware (та же Microsoft, например), и даже некоторые небольшие компании, изначально ориентированные на рынок shareware, избегают использовать этот термин, применяя более нейтральные обозначения, например, "trial" или "try-before-you-buy".

Естественно, такое положение дел не могло устраивать тех авторов shareware, которые серьезно относились к своему бизнесу. Некоторые из них стали высказывать предложения о необходимости ликвидировать царящий в отрасли хаос и навести порядок на рынке shareware. В 1987 году в Хьюстоне (Техас, США) ведущие авторы shareware, среди которых были Джим Кнопф, Боб Уоллес, Том Смит (Tom Smith, автор популярной коммуникационной программы ProComm), а также представители крупнейших дистрибьюторов shareware (PC-SIG, PBL) и администраторы BBS, собрались на конференцию, посвященную решению этого вопроса. На этой конференции была создана Ассоциация профессионалов shareware — Association of Shareware Professionals (ASP, http://www.asp-shareware.org).

ASP - это некоммерческая организация, первоначально объединявшая профессиональных разработчиков shareware-программ, в которую позже стали приниматься и дистрибьюторы программного обеспечения. Руководит ASP Совет директоров, который непрерывно "заседает" в режиме online с 1987 года — что, скорее всего, является мировым рекордом. Первым председателем совета был избран Джим Кнопф.

ASP установила четкие правила для авторов shareware-программ: не ограничивать без меры функциональные возможности незарегистрированных копий программ, обеспечивать техническую поддержку покупателей, обращаться с пользователями с должным уважением и не оскорблять их. Логотип ASP, размещенный в программе, должен служить своеобразным знаком качества, подтверждающим надежность и солидность автора соответствующего программного продукта.

Правила были установлены и для компаний-распространителей программного обеспечения. Дистрибьюторы shareware-программ, являющиеся членами ASP, не должны вводить потребителей в заблуждение, называя shareware-программы "бесплатными", а также обязаны уважать права авторов программных продуктов.

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

ASP также защищает от посягательств индустрию shareware, и она, как мощная организация, обладает для этого значительно большими возможностями, чем программисты-одиночки. Так, в свое время ASP помешала компании PC-SIG зарегистрировать слово "shareware" как торговую марку. Под влиянием ASP Конгрессом США были внесены поправки в проект одного закона, первоначальная редакция которого была неприемлемой для успешного развития индустрии shareware.

Об ASP и преимуществах членства в этой организации рассказывается в разд. "Ассоциация профессионалов shareware " гл. 10.

Еще одно важнейшее явление в мире профессионалов shareware — ежегодная международная конференция Shareware Industry Conference (SIC, http://www.sic.org).

Осенью 1990 года, встретившись на крупной компьютерной выставке Comdex Fall, группа профессиональных участников рынка shareware, среди которых были уже упоминавшиеся ранее Боб Острандер и Майк Каллахан, Маршалл Маги (Marshall Magee), известный тем, что он первый из разработчиков shareware заработал на этом рынке миллион долларов, Рэнди

МакКлин (Randy MacLean) и Джим Перкинс (Jim Perkins) из компании FormGen, а также Парис Карахалиос (Paris Karahalios), глава компании Triolis, пришли к выводу, что профессионалам shareware нужна собственная конференция, без всей этой суеты и рекламной шумихи, которую сопровождают компьютерные выставки. На такой конференции авторы и продавцы shareware могли бы обмениваться опытом, сообща принимать важные решения, касающиеся будущего shareware, да и вообще просто общаться "вживую".

Через несколько месяцев, в июне 1991 года, благодаря деятельности Боба Острандера и финансовой поддержке его компании PBL, такая конференция состоялась в Индианаполисе (Индиана, США). Тогда она называлась "Летний shareware-семинар" (Summer Shareware Seminar, SSS), и на ней присутствовало около ста человек.

На этой конференции родилась концепция наград share ware-индустрии (Shareware Industry Awards, SIA). Майк Каллахан высказал идею учредить престижную Премию, которая привлекала бы внимание общественности к shareware, придала бы ей значение одной из ведущих отраслей в компьютерной индустрии (ведь в то время еще очень многие считали, что shareware -это удел одиночек и программистов-любителей). Этому, в частности, должна была способствовать и церемония награждения лауреатов Премии, которая бы стала аналогом церемонии вручения знаменитой премии в области киноискусства "Оскар". Инициатива Майка была поддержана его друзьями, идеологами SSS Острандером, МакКлином, Карахалиосом и Перкинсом.

Пятеро друзей основали компанию Shareware Industry Awards Foundation (SIAF), чтобы новая Премия получила официальный статус и была законодательно защищена. Они разработали порядок церемонии вручения Премии, дизайн самих наград, требования к претендентам, механизм голосования и прочие детали. Они решили, что будут принимать участие в работе SIAF по крайней мере три года, если не больше — до тех пор, пока Премия не укрепит свои позиции и дело можно будет передать новым людям. Первое вручение Премии состоялось уже на следующем SSS, в 1992 году, и, по общему мнению, совмещение конференции и церемонии вручения Премии было как нельзя более удачным.

После того как компания PBL, генеральный спонсор Summer Shareware Seminar, была приобретена корпорацией Ziff-Davis, SIAF в 1994 году взяла на себя расходы по проведению конференции, которая с этого момента стала называться Shareware Industry Conference.

После конференции 1994 года, когда стало ясно, что Премия окончательно укрепила свои позиции, в SIAF были приглашены новые специалисты, и почти все основатели компании оставили свою деятельность по подготовке и вручению Премии: сегодня только Майк Каллахан, "отец" Shareware Industry Awards, продолжает работать в совете директоров SIAF.

С каждым годом масштабы проведения Shareware Industry Conference росли, и сегодня SIC является самым значительным событием в shareware-ин-

дустрии (Рисунок 1.3). Премия Shareware Industry Awards вручается более чем по тридцати номинациям как лучшим shareware-продуктам, так и людям, чья деятельность содействовала развитию shareware-индустрии. В конференции ежегодно принимают участие крупнейшие участники рынка shareware — ведущие разработчики программного обеспечения, представители компаний-регистраторов и основных интернет-архивов программ, словом — вся элита shareware. Естественно, каждый из профессиональных участников рынка shareware старается во что бы то ни стало выкроить время в своем рабочем графике и прилететь на очередную Shareware Industry Conference.



Public domain software



Public domain software

Как и freeware, public domain программы также распространяются бесплатно. Однако в отличие от freeware, где автор программы сохраняет за собой все права на нее, разработчик public domain отказывается от своих авторских прав на соответствующую программу: такие программы распространяются вместе с исходными текстами и любой желающий может вносить в программу свои изменения и создавать на ее основе новые продукты.

К сожалению, концепция public domain software не оправдала себя. Основная цель public domain — свободное распространение и развитие программ без всяких ограничений - вскоре потеряла свое значение. Каждый мог взять исходные тексты программы, слегка модифицировать их, а затем распространять эту программу как собственную на коммерческой основе. Автор исходной программы, отказавшись от авторских прав на нее, не имел никакой возможности защитить свое творение.

Яркий пример — X Window, графическая оболочка для операционной системы Unix. Она была разработана компанией MIT и выпущена в свет, снабженная исходными текстами и лицензионным соглашением с очень мягкими условиями. Многие компании, выпускающие коммерческие (и часто очень дорогостоящие) дистрибутивы ОС Unix, включили X Window в свои продукты, естественно, не в виде исходных текстов, а в скомпилированном виде. Поэтому мало кто из пользователей Unix работал с действительно бесплатной X Window, а о свободном распространении и развитии новых вариантов оболочки, ввиду закрытости исходных текстов и наличия коммерческих лицензий, не могло быть и речи.

Примечание
Примечание

Стоит отметить, что компания MIT, разработчик X Window, предвидела такое развитие событий. Просто главной целью в проекте X Window было не "свободное развитие", а распространение продукта среди максимального числа пользователей Unix.



Распространение sharewareпрограмм



Распространение shareware-программ

В период зарождения freeware и shareware, в 1981 — 1982 гг., распространение программ было свободным и бесплатным: в основном это был обмен дискетами среди групп пользователей и копирование программ с BBS. В последнем случае пользователи оплачивали только счета телефонных компаний. Однако число пользователей росло, объемы библиотек и коллекций программ на BBS увеличивались, и их владельцы начали задумываться о том, чтобы как-то компенсировать свои затраты времени, сил и средств. Некоторые администраторы архивов и "сисопы" (системные операторы) BBS стали взимать с пользователей плату за доступ к своим коллекциям программного обеспечения.

В это время Ричард Петерсон (Richard Peterson) из Калифорнии опубликовал в популярном журнале PC Magazine рекламное объявление, где предлагал всем желающим дискету с коллекцией бесплатных и условно-бесплатных программ за шесть долларов. Программы были взяты с BBS одной из групп пользователей, которые, конечно же, возмутились. По их мнению, распространение программ за деньги было абсурдом. Однако очень многим пользователям из разных городов, которые не могли часами перекачивать программы с BBS, предложение Петерсона показалось очень привлекательным. Вдохновленный успехом своей инициативы, Петерсон основал первую компанию по коммерческому распространению дисков с бесплатными и условно-бесплатными программами — PC-SIG (Special Interest Group).

В 1984 году уже упоминавшийся ранее Нельсон Форд открыл компанию Public Software Library (PsL, http://www.pslweb.com), которая занималась распространением программ на дискетах по почте, а также на выставках. Эта компания стала издавать первый журнал о shareware — PsL News.

Примечание
Примечание

PsL News представляет собой журнал, содержащий обзоры программ, появляющихся на рынке. Он печатался с конца 1985 по март 1996 года, а затем был заменен на приложение, размещающееся на CD-ROM с shareware-программами, которое ежемесячно выпускает PsL.

В 1985 году Боб Острандер (Bob Ostrander) создал компанию Public Brand Software (PBS), которая так же, как и PsL, занималась распространением программного обеспечения по почте и на выставках и вместе с PsL была одним из главных дистрибьюторов shareware и freeware. В 1991 году PBS была приобретена компанией Ziff Davis Interactive и составила основу одного из крупнейших online-каталогов программ ZDNet (http://www.zdnet.com /downloads). Следующими из крупных дистрибьюторов появились фирмы Software Labs и Reasonable Solutions, а после них на рынок буквально хлынули сотни и тысячи мелких торговцев, мечтавших быстро разбогатеть на распространении дискет с программами.

Несмотря на то, что PsL, PBL и другие брали деньги не за сами программы, а за дискеты, содержащие соответствующие файлы (т. е. за доставку программ потребителю), их деятельность вызывала большое недовольство авторов распространяемых программных продуктов. Коммерческие дистрибьюторы программ наживали миллионы долларов, по сути, на чужом труде. Они не гарантировали выплату авторам комиссионных от проданных дисков с программами, да чаще всего и не стремились к этому. С другой стороны, брошенный дистрибьюторами клич "Расхватывайте бесплатные программы!" (Get Free Software!) и рекламные акции, которые подчеркивали бесплатность распространяемых продуктов, вводил пользователей в заблуждение, и они не стремились регистрировать свои копии shareware-программ. Многие авторы shareware, в том числе и знаменитый Джим Кнопф, прямо запрещали коммерческое распространение своих программ по каналам дистрибьюторов (правда, для PsL Джим все-таки сделал исключение).

С распространением World Wide Web многие дистрибьюторы программ на дисках и платные BBS открыли собственные Web-сайты и попытались вести свой бизнес по старым законам — например, взимая деньги с пользователей за доступ к сайту. Однако они обнаружили, что в Сети уже существует множество сайтов, которые размещают у себя программы и не берут со своих посетителей ни цента. В новых условиях многие дистрибьюторы, в середине восьмидесятых распространявшие программы на дискетах, не выдержали конкуренции с online-архивами ПО и закрылись. Сами интернет-каталоги программ, в свою очередь, часто не оправдывали ожиданий их создателей: затраты росли, а рекламные поступления не компенсировали вложенных капиталов. Некоторые архивы оказались поглощенными более крупными архивами, другие, например BestZips, просто прекратили свое существование.

Замечние

Чтобы выжить, коммерческие дистрибьюторы программ и интернет-архивы программного обеспечения перенимали друг у друга удачные приемы ведения бизнеса: дистрибьюторы заводили у себя бесплатные архивы программного обеспечения, а интернет-архивы стали периодически выпускать на CD-ROM сборники программ, опубликованных у них, и продавать их. Грань между этими двумя видами бизнеса почти стерлась.

По мере того, как дешевели высокоскоростные модемы и услуги провайдеров, Интернет становился доступен все большему количеству пользователей, а также привлекал крупных коммерческих участников. В ноябре 1995 года корпорация CNet открыла сервер Shareware.com, 23 октября 1996 года она же запустила проект Download.com, который сегодня является одним из самых авторитетных интернет-архивов программного обеспечения (Рисунок 1.2). Появились Web-сайты, посвященные бесплатным и условно-бесплатным программам, и у других компаний. С этого времени основным каналом распространения shareware-программ является Интернет. Однако коммерческие дистрибьюторы программ, несомненно, занимают почетное место в истории shareware, т. к. миллионы пользователей именно через них узнали о shareware-программах и во многом благодаря им shareware завоевало огромную популярность во всем мире.



Развитие индустрии shareware



Развитие индустрии shareware

Помимо образования Ассоциации профессионалов shareware и Shareware Industry Conference, в истории shareware было еще несколько важных этапов, о которых нельзя не рассказать.

В 1987 году была создана компания Apogee, первый производитель shareware-игр. Ее основатель, Скотт Миллер (Scott Miller), придумал оригинальный способ распространения игровых программ: игра разделялась на несколько эпизодов или уровней, в первый из которых пользователь мог поиграть бесплатно, а остальные становились доступными только после регистрации. Одна из самых популярных shareware-игр, Wolfshtein 3D компании ID Software, а также более поздние ее же хиты Doom и Quake были выпущены именно по этой схеме. Компания Apogee, кроме этого, знаменита еще и тем, что первая начала распространять и рекламировать игры других разработчиков, а также тем, что была первой из компаний, открывших собственную BBS для поддержки своих пользователей. В 1989 году система PsL запустила первый процессинговый центр по приему и обработке платежей по кредитным картам и заказов, сделанных по телефону, факсу, электронной и обычной почте. Эти услуги оказывались shareware-авторам без взимания какой-либо дополнительной платы, а лишь за относительно небольшие комиссионные. Множество независимых shareware-программистов, до этого не имевших возможности принимать платежи самостоятельно или имевших большие затруднения с этим, теперь смогли улучшить качество обслуживания своих покупателей и одновременно посвящать больше времени совершенствованию своих продуктов. В последующее время, особенно с распространением Интернета в 1997—1998 годах, появилось множество компаний, позволяющих обслуживать заказы, сделанные по телефону, почте, факсу и т. д., а также принимать платежи по кредитным картам. Об особенностях работы с такими компаниями-регистраторами рассказывается в гл. 10. Годы 1991 — 1993 знаменательны тем, что в этот период продажи программ на гибких дисках практически прекратились: дискета как носитель файлов с архивами программ оказалась вытеснена стремительно набиравшим популярность диском CD-ROM (с 1994 года во всехифупных магазинах США новые компьютеры продавались только с установленными CD-ROM-дисководами). В 1996 году, как уже упоминалось, был открыт сайт корпорации CNet Download.com и еще несколько крупных online-архивов программного обеспечения, и Интернет стал основным каналом распространения shareware-программ.

ReGet



ReGet

ReGet (http://www.reget.com)— один из самых известных так называемых download-менеджеров, т. е. программ, обеспечивающих комфортную загрузку файлов с FTP- и HTTP-серверов. Автор программы — Владимир Романов.

В 1996 году Владимир Романов работал инженером службы поддержки фирмы "Поликом Про" (Санкт-Петербург). Одной из его обязанностей была регулярная загрузка новых версий программного обеспечения с сервера компании Microsoft, который тогда не поддерживал докачку — т. е. возобновление загрузки файла при разрыве связи или остановки процесса загрузки по каким-либо другим причинам. Отсутствие докачки при загрузке больших файлов доставляло Владимиру много хлопот, и когда, наконец, в очередной версии Microsoft Internet Information Server поддержка докачки появилась, Владимир решил написать программу, которая использовала бы эту возможность, что и было сделано в течение месяца (Рисунок 1.4).

Первоначально RegGet имел только консольный интерфейс и назывался WWW Reget. Еще через два месяца появилась версия с графическим интерфейсом, и в конце февраля 1997 года программа была представлена на суд общественности. Владимир не питал особых надежд на какой-либо коммерческий успех своего детища, поэтому ReGet разрабатывался только в свободное от основной работы время и распространялся исключительно по каналам некоммерческой сети FIDO.

Все переменилось после встречи Владимира Романова со Станиславом Гришиным, работавшим тогда региональным торговым представителем московского отделения Microsoft. Станислав сразу разглядел коммерческий потенциал ReGet и предложил план по постепенному превращению ReGet из freeware в shareware. Первым шагом в этом плане было создание официального сайта ReGet с регистрацией для него собственного домена -www.reget.com.

Появление программы в Интернете было с интересом встречено аудиторией. Многие каталоги программного обеспечения разместили у себя ReGet. Благодарные пользователи предлагали Владимиру помощь в переводе интерфейса программы на различные языки. Сначала появилась японская, затем — французская и немецкая версии.

В это время Владимир Романов был внезапно уволен с работы — директор компании случайно наткнулся на страницу, где Владимир разместил свое резюме с пожеланием гораздо более высокой, чем была, зарплаты. У него появилось много свободного времени, и он решил полностью сосредоточиться на развитии ReGet. Программа была практически переписана заново, в нее добавилось множество новых функций. Было решено наконец-то перевести ReGet из разряда свободно распространяемых программ в shareware с 30-дневным ограничением (бесплатная версия осталась только для русскоязычных пользователей). Владимир Романов и Станислав Гришин зарегистрировали оффшорную компанию ReGet Software LLC и от ее имени начали продавать ReGet на западном рынке.



Shareware в России



Shareware в России

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

Свою историю shareware в нашей стране ведет только с начала 1998 года. К этому времени в стране установилось относительное экономическое и политическое спокойствие (кризис 17 августа 1998 года был еще далеко) и, самое главное, Интернет — главная движущая сила shareware — для россиян уже перестал быть диковинкой.

Замечание 2
Замечание 2

Конечно, в нашей стране shareware-программисты работали и до 1998 года — например, компания "Етайп" из Калининграда довольно успешно продавала свой продукт Eserv как в России, так и за рубежом. Однако таких примеров shareware-бизнеса было очень немного, и shareware не было заметным явлением в области информационных технологий в России.

23 марта 1998 года вышел в свет еженедельник "Компьютерра" № 1 1 (239), в котором "тема номера" так и называлась — "Shareware". В этом номере была опубликована статья "Искусство Shareware" Александра Каталова, директора московской компании "Элком" (http://www.elcomsoft.com), в которой рассматривались все этапы процесса начала собственного shareware-бизнеса — от выбора идеи для будущей программы и ее написания до заключения договоров с компаниями-регистраторами и технической поддержки пользователей. Статья была написана очень увлекательно и сопровождалась множеством примеров из собственной практики автора.

Примечание
Примечание

Статья в "Компьютерре" была не первой публикацией о shareware в российской прессе. Но именно в ней впервые была описана вся (естественно, насколько это было" возможно в рамках нескольких журнальных полос) технология shareware-бизнеса. Впервые читателю доходчиво объяснили, что shareware — это не что-то бесконечно далекое и недоступное "простому советскому программисту", а вполне реальная возможность для каждого разработчика программ, серьезно относящегося к своему делу.

Через неделю, 30 марта 1998 года, в продаже появился следующий номер "Компьютерры", где тема shareware была продолжена. В статье "Защита shareware-программ" брат Александра Каталова, Владимир, технический директор "Элкома", очень интересно и профессионально рассказал о различных аспектах снабжения программы shareware-ограничениями и их зашиты от взлома.

Отклик на статьи в этих двух номерах "Компьютерры" был вполне сравним с историческим обзором PC-File Джима Кнопфа в журнале PC-World. Поч-

товые ящики Александра и Владимира Каталовых оказались забиты письмами от программистов не только из России, но из бывших республик СССР и даже от наших соотечественников из дальнего зарубежья. И авторы статей в "Компьютерре", что удивительно, находили время очень подробно отвечать на все эти письма.

Примечание
Примечание

Я сам, наверное, никогда не забуду, как в ответ на письмо с парой вопросов, к своему удивлению, получил подробнейший ответ с массой ценной информации, текст которого вполне "тянул" на небольшую статью.

Воодушевленные таким вниманием и поддержкой со стороны "самого Ката-лова" многие программисты стали превращать свои программы, написанные" для себя", в shareware-продукты и помещать их -в Интернете.

Примерно в то же время — в марте 1998 года — Александр Каталов открыл интернет-архив Download.ru (http://www.doanload.ru). Уникальность этого архива состоит в том, что он предназначен в первую очередь не для посетителей, которые, потребляя коммерческую рекламу, для остальных подобных сайтов являются их "кормильцами", а для shareware-авторов только из России и республик бывшего СССР. Если на какой-нибудь крупный shareware-архив типа TuCows программу начинающего автора, скорее всего, просто не возьмут, то на Download.ru такие программы не только принимались, но и авторам программ оказывалась поддержка, причем не только моральная. Александр Каталов, например, не только отвечал на вопросы авторов программ советами, но и одалживал им деньги на регистрацию домена или оплату хостинга (с условием возврата "как сможешь" - - т. е., почти безвозмездно). Он же предоставлял бесплатно место на сервере своей компании под домашние страницы программ и почту, помогал с получением денег от регистраторов, содействовал в решении других проблем при общении с западными хостинговыми, рекламными и прочими компаниями. На Download.ru, помимо русской части сайта, имелась и английская версия, служившая для продвижения "наших" программ на Запад.

Почти одновременно с Download.ru открылся еще один российский shareware -архив - ListSoft.ru (http://www.listsoft.ru). Его автор, системный администратор из Санкт-Петербурга Дмитрий Турецкий, до этого вел в Интернете лист почтовой рассылки с описаниями новых программ (из-за этого архив и получил название "ListSoft"). Ценность рассылки состояла в том, что все публикуемые в нем программы тестировались лично Дмитрием. Читатели могли быть уверенными, что продукты, упоминаемые в рассылке, действительно работают и их возможности соответствуют тем, которые заявляют их авторы. К марту 1998 года архив рассылки уже включал несколько сотен программ, и оформление его в полноценный интернет-каталог было вполне закономерным шагом. Через некоторое время ListSoft обзавелся и английской версией (http://www.listsoft.com), что сделало его еще более привлекательным для shareware-авторов.

Еще через полгода (11 ноября 1998 года) открылся архив, имеющий похожее название — SoftList (http://www.softlist.ru), созданный при поддержке крупнейшего российского интернет-портала List.ru (администратором сайта с первого дня его работы является автор этой книги). На SoftList также была создана английская версия (http://www.softlist.net), так что у shareware-авторов появилась еще одна возможность рекламировать свои программы одновременно и в России, и за границей.

Незадолго до появления "Компьютерры" со статьями Каталовых произошло еще одно важное для российского shareware событие — 17 февраля 1998 года была открыта почтовая конференция SwRus (Shareware Russia). Инициаторами ее создания были автор Delphi-компонентов для доступа к ресурсам компьютера Виктор Ижикеев и разработчик пакета серверов Eserv Андрей Черезов (см. разд. "Успешные российские shareware-проекты" данной главы), которые к этому времени уже имели опыт продаж своих продуктов на Западе и в России. Своими знаниями они решили поделиться и с другими разработчиками. Первоначально конференция работала под управлением Eserv, установленного на офисном компьютере Андрея Черезова, затем, после нескольких переездов, она стала обслуживаться сервером Yahoo Groups. Всю информацию о SwRus можно найти по адресу http://www.swrus.com. Конференция является бесплатной, однако анонимное участие в ней не допускается. В конференции также есть модератор, пресекающий обсуждения, не соответствующие тематике и правилам SwRus.

Популярность конференции росла довольно быстро -- число сообщений было настолько велико, что у SwRus появились "дочки" - самостоятельные конференции, посвященные отдельным вопросам shareware: программированию, защите, созданию сайтов для размещения программ, регистрации программ в интернет-архивах. Также была создана конференция swrus-talks — для любителей просто поболтать на разные темы.

Участники SwRus точно так же, как и их иностранные коллеги за десять лет до этого, стали проводить своеобразные съезды shareware-разработчиков, которые их участниками любовно называются "сврусовками". Там программисты и все, кто просто имеет отношение к shareware, общаются между собой, обмениваются опытом, знакомятся с теми, кого они до сих пор знали только по электронным сообщениям.

Примечание
Примечание

Так как термин "shareware-программа" не очень удобен для частого употребления, то для этой категории стали применять ироничное и задорное "шаровара", а сами российские разработчики shareware стали называть себя "шароварщиками".

Говоря о таком интенсивном развитии shareware в России, следует обратить внимание на то, что все это касалось только разработчиков программ. Российские же пользователи все еще не были потребителями shareware. В ос-

новном программы покупали организации, и, естественно, их в первую очередь интересовали деловые, например, бухгалтерские или финансовые, программы. Для обычных, так называемых "домашних" пользователей shareware-программы были недоступны: владельцев международных пластиковых карт типа Visa и MasterCard было очень мало, а цена даже в 20$ для большинства населения была непомерно высокой. Некоторые российские shareware-программисты пробовали устанавливать льготные цены специально для российских пользователей (исчислявшиеся, к тому же, в рублях). Однако деятельность на российском рынке приносила крошечный доход, т. к. единственный вид платежа, который авторы могли самостоятельно принимать, был почтовый перевод, который не очень-то удобен как для разработчиков программ, так и для пользователей. Проще было махнуть рукой на российский рынок и спокойно получать сотни и тысячи долларов в месяц от продаж своих продуктов на Западе.

Замечание 3
Замечание 3

Из-за того, что объем российского рынка shareware долгое время был очень невелик, "сврусовки" российских shareware-разработчиков не выросли в такое грандиозное мероприятие, как, например, упоминавшаяся ранее Shareware Industry Conference.

Тем не менее, некоторые участники рынка shareware пытались изменить такую неблагоприятную ситуацию на рынке.

В середине 2000 года фирмы МКРсофт и ТФМиК при поддержке Download.ru и ListSoft открыли первую в России регистрационную службу ShaReg (http://www.shareg.com), предназначенную для обслуживания российских пользователей. Теперь стало возможным оплатить программу не только кредитной картой, но и квитанцией Сбербанка, банковским или почтовым переводом, переводом через систему WebMoney.

Авторы программ, регистрирующиеся в системе ShaReg, теперь уже могли не думать о проблеме получения денег от пользователей — все хлопоты взял на себя новый сервис. И если до этого мало кто из российских разработчиков shareware всерьез рассматривал российский рынок, то после открытия ShaReg количество специальных русских версий программ, продающихся по льготной цене 100—300 рублей резко увеличилось, их авторы стали активнее рекламировать свои программы в России.

Замечание 4
Замечание 4

Например, после открытия ShaReg многие программисты, ранее регистрировавшие свои программы только в английской части каталога SoftList, добавили свои программы и в российскую часть архива.

Кроме того, новое предприятие оказывало российским авторам shareware не только содействие по приему платежей от пользователей, но и различные

услуги по продвижению их программ на рынке: регистрацию программ в российских каталогах программ, баннерную рекламу, рассылку пресс-релизов в СМИ и т. п.

Служба ShaReg также позволила частично решить проблему оплаты регистрации shareware-программ зарубежных разработчиков, которые в большинстве своем можно оплатить только при помощи кредитных карт. В данном случае российский регистрационный сервис становился посредником между пользователем, переводящим деньги любым принятым в Российской Федерации способом, и зарубежным банком, обслуживающим разработчика соответствующей программы.

Несмотря на то, что в России есть уже довольно много shareware-разработчиков (конференция SwRus в середине 2001 года имела более шестисот подписчиков), несколько крупных и множество мелких интернет-архивов программ, а также регистрационная служба, российский рынок shareware пока находится в стадии развития. Прошло еще очень мало времени, чтобы shareware в России стало тем, чем оно является в зарубежных странах.



TVicHw32 и TVicPort



TVicHw32 и TVicPort

TVicHw32 и TVicPort (http://www.entechtaiwan.com/tools.htm) — универсальные драйверы, позволяющие программисту получить доступ к аппаратным ресурсам компьютера без использования специальных пакетов типа Windows DDK. В комплект поставки входят DLL-библиотеки для программирования в Visual C++, VCL-компоненты для Delphi-программистов и ActiveX-компоненты.

Разработчик TVicHw32 и TvicPort, Виктор Ижикеев, никогда не думал писать shareware и занялся этим увлекательным делом почти случайно.

По роду основной деятельности Виктору приходится писать программы для управления аппаратурой связи, разрабатываемой и выпускаемой компанией "Компьютерная связь" города Уфы, совладельцем которой он является. В 1996 году компания начала переход на 32-разрядные операционные системы Windows 95 и NT. И тут Виктор с ужасом обнаружил, что все привычные ему языковые конструкции для доступа к аппаратным ресурсам (портам ввода/вывода, физической памяти, прерываниям, DMA) напрочь исчезли из всех его любимых компиляторов. Даже ассемблер не позволял написать пользовательское приложение, содержащее функции доступа к аппаратуре. Оказалось, что доступ к аппаратуре под Win32 возможен только из специальных программ драйверов, выполняемых на уровне ядра операционной системы.

В результате лихорадочного поиска выхода из этой затруднительной ситуации высветились два возможных решения:

Купить за 600$ подписку на MSDN Library Professional, включающую необходимую документацию и инструментарий (Driver Developer Kit, DDK) для написания собственных драйверов устройств. Купить за те же деньги уже готовые универсальные (generic) драйверы, продаваемые американской фирмой Blue Water Systems.

Извечная проблема: купить рыбу, чтобы поесть один раз, или удочку, чтобы наловить рыбы в любое время. После недолгих колебаний была выбрана "удочка", и Виктор купил подписку на MSDN.

Не стоит описывать здесь мучения Виктора, связанные с почти полным незнанием английского языка, т. к. он всегда и везде изучал немецкий. Но в итоге драйверы Виктор написал и отладил, они до сих пор успешно используются в продукции его фирмы. Но Виктора не оставляла мысль — а если бы драйверы, продаваемые Blue Water Systems, стоили не шестьсот долларов, а сто? Каков тогда был бы выбор? По словам Виктора, он все равно бы купил MSDN. Но ведь другие могут думать иначе, и Виктор решил — попробую продавать!

Для претворения этой идеи в жизнь Виктор сделал следующее:

Драйверы сами по себе никому не интересны, поскольку их не очень просто применять, особенно драйверы для Windows NT. Поэтому для удобства использования Виктор написал к ним "обертку" в виде VCL-компонента для 32-разрядной версии Borland Delphi. К компонентам были добавлены тестовые примеры использования драйверов для решения самых разных задач доступа к аппаратным средствам. Не забивая особенно голову проблемами защиты от нелегального использования, Виктор вставил в драйверы так называемые nag screens — экраны напоминания о необходимости зарегистрировать программу (попросту говоря — купить). Больше ничего другого, кроме этих "экранов ворчания" для защиты своего продукта Виктор никогда не использовал. Таким образом, это была демо-версия созданных компонентов и драйверов. Написал с грехом пополам минимальную документацию в виде простого текстового файла и "содрал" у какого-то другого shareware-продукта лицензионное соглашение. Придумал цену — 99$. Виктору казалось, что это хорошая цена, поскольку он сам за эту цену аналогичный продукт точно бы купил (железная логика!). Написал адрес для платежей, указал реквизиты предварительно открытого в одном из банков Уфы валютного счета и придумал ужасную английскую, как ему казалось, транскрипцию своей фамилии Ижикеев — Ishikeev. Теперь Виктор изменить ничего не может и продолжает существовать под этой "фамилией". Запаковал в ZIP-архив, отослал на один-единственный shareware-архив, это был польский сайт, гордо именовавший себя Delphi Super Page, и стал ждать.

Это было в июне 1996 года. Первой покупки Виктор ждал долго, больше месяца, все более и более разочаровываясь в своей никчемной, как ему начало казаться, идее. Но — восторг и изумление! — Виктор получил по почте чек от первого покупателя. И не откуда-то, а из самой NASA — Национального аэрокосмического агентства США! Виктор и члены его семьи с любопытством и радостью рассматривали со всех сторон этот диковинный документ из далекой страны, пришедший в красивом конверте, отпечатанный на голубом бланке с водяными знаками и заветной цифрой 99$.

С чувством "глубокого удовлетворения" Виктор пришел в банк, располагающийся в новом сияющем многоэтажном здании, оборудованном по последнему слову техники. И... весь персонал валютного управления этой суперсовременной организации сбежался посмотреть на чек, выданный американским банком. Они видели подобный документ первый раз в жизни! После долгих консультаций между собой, по телефону с руководством банка, с работниками других банков, в том числе московских, чек был принят на инкассо. Деньги Виктор получил через месяц. С учетом комиссии банка он стал обладателем суммы в 89,42$. Почему именно столько, Виктор так до сих пор и не понял, но все равно ему было очень приятно.

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

Виктор, конечно же, отослал по e-mail полную версию пакета покупателю, описал ситуацию и попросил прислать факс с указанием того, что эту сумму он прислал в качестве благотворительного пожертвования. Австрийский студент выполнил просьбу Виктора и прислал факс. Это замечательный документ, который Виктор хранит до сих пор... В банке долго веселились, прочитав текст, который гласил: "Прекратите издеваться над человеком! Отдайте Виктору деньги, потому что он хороший парень!".

Деньги зачислить на счет отказались, потребовав написать бумагу, что Виктор просит переслать деньги назад, отправителю платежа. Виктор, конечно же, отказался подписывать такой документ, ведь это были его честно заработанные деньги! И началось... Из банка звонили каждый день, умоляя написать такую бумагу. Виктор быстренько сообразил, что без его согласия они вернуть адресату деньги не могут, и твердо стоял на своем — свои деньги никому не отдам! Но звонки продолжались и, увы, пришлось сдаться. Деньги были возвращены австрийцу, чем тот был чрезвычайно удивлен и раздосадован. К чести его надо сказать, что он все-таки заплатил деньги Виктору спустя некоторое время.

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

Но некоторое время спустя, а именно в конце 1996 года, Виктор познакомился в Интернете с. замечательным человеком по имени Эшли Оалдана (Ashley Saldanha), американцем, живущим на Тайване, владельцем фирмы EnTech Taiwan (http:/ww\v.entechtaiwan.com) и автором очень популярной программы PowerStrip, значительно расширяющей возможности видеокарт. Знакомство с этим человеком радикально изменило представления Виктора о жизни вообще и о shareware-бизнесе в частности.

Эшли увидел программу Виктора в Интернете и заинтересовался, поскольку он тоже был занят переводом своих программ под Win32 и нуждался в средствах доступа к аппаратуре. Драйверы Виктора не полностью решали его проблемы, и Эшли заказал ему написание других, специально для его программы PowerStrip (они с незначительными изменениями работают до сих пор).

Эшли просветил Виктора, что вовсе не нужно и даже вредно брать деньги непосредственно от покупателей. Оказалось, что уже давно существуют фирмы, которые специализируются на приеме мелких платежей за shareware, аккумулируя их и высылая накопленные суммы авторам. Конечно, эти фирмы удерживают комиссионные с каждой продажи, но, с другой стороны, экономятся значительные средства, теряемые ранее на обработке многих мелких сумм. И еще важный момент — эти фирмы заключают с тобой договор, который ты можешь отнести в банк, сняв всякие проблемы перевода денег непосредственно на твой валютный счет.

С одной из таких американских фирм-регистраторов, WinTech Inc., держателя сайта Virtual Software Store (VSS), Эшли заключил от имени Виктора договор (это было важно, т. к. английский язык, как было сказано выше, Виктор знал тогда плохо), заплатил первоначальный взнос, и shareware-бизнес обрел под собой, наконец, твердую почву. В дальнейшем Виктор заключил договора еще с несколькими фирмами-регистраторами, которых оказалось на удивление много. Но VSS была первой и потому Виктор до сих пор пользуется ее услугами, несмотря на довольно высокий уровень комиссионных в 25%.

Собственно, дальше и рассказывать особо нечего. Бизнес потек на удивление гладко, Виктор периодически выпускал новые версии программы, слегка рекламировался. Надо сказать, что он никогда не уделял много внимания продвижению своих продуктов и это, по его словам, большая ошибка. Как говорит Виктор: "В свое оправдание могу сказать только, что не имел для этого достаточно времени, работая над shareware только в свободное от основной работы время. Кроме того, продажа программистских инструментов требует очень большого объема технической поддержки пользователей, значительно большей, чем при продаже "обычных" прикладных или развлекательных программ. Но, похоже, судьба распорядилась так, что я перейду на full-time shareware business, поэтому в ближайшем будущем я намерен значительно больше времени и средств уделять маркетинговым усилиям".



Успешные российские sharewareпроекты



Успешные российские shareware-проекты



Зачем вам нужно shareware



Зачем вам нужно shareware

Немного рассказав об общих принципах shareware, его истории и тенденциях развития, я предвижу вопрос, которым, возможно, задались некоторые из читателей: "А стоит ли программисту вообще заниматься shareware?"

Действительно, есть ведь множество других способов заработать деньги в области создания и распространения программных продуктов. Например, по сравнению со всеми хлопотами по самостоятельному написанию, рекламе и поддержке компактных shareware-программ, имеющих относительно малую цену и большое количество конкурентов, гораздо более предпочтительным выглядит участие в крупных проектах по заказам корпоративных клиентов. Это, на первый взгляд, сулит хорошую материальную и, что немаловажно, моральную отдачу: приятно чувствовать себя создателем не "какой-то маленькой утилитки", а мощного программного комплекса, от которого зависит работоспособность большой корпорации с громким именем. А доход, получаемый по контрактам с-международными заказчиками, обычно выше, чем поступления от продаж даже довольно успешного shareware-продукта.

Однако на практике все предстает в несколько ином свете. "Отец" российского shareware Александр Каталов рассказывает об опыте работы его компании ElcomSoft с крупными иностранными заказчиками, среди которых -международные корпорации с офисами в десятках стран мира:

"Никакого удовольствия нам работа по контрактам не доставляла. По одному из них мы болтались восемь месяцев между Сингапуром и Москвой, поначалу было интересно, но после шестого полета туда и обратно ведущий специалист проекта буквально взвыл, еще один парень вообще решил уволиться. Заказ мы успешно выполнили, но они начали просить, чтобы еще пару человек приехали в Сингапур на полгодика(!) обеспечивать внедрение и сопровождение. Мы отказались, хотя и получили бы за это время денег больше, чем со всех наших shareware-продуктов за первый год работы. Но зато сегодня shareware в месяц приносит нам больше, чем тот "упущенный" полугодовой контракт!"

Да, в shareware-бизнесе разработчик, как говорится, "сам себе хозяин". Естественно, развитие программ зависит не только от самого автора, но и, например, от пожеланий пользователей, однако с ними работать гораздо интереснее, чем с многостраничным контрактом и. техническим заданием, от условий которых нельзя отступить ни на шаг. Что касается командировок с утомительными трансокеанскими перелетами, то, пожалуй, единственное место на планете, где shareware-разработчику нужно обязательно побывать — это ежегодная Shareware Industry Conference.

Для начинающего программиста shareware-бизнес — еще и отличный путь для поднятия собственного профессионального уровня. Ведь на перенасыщенном рынке программного обеспечения плохие продукты просто никто не покупает. Разработчику волей-неволей приходится постоянно осваивать новые технологии: интеграцию с Интернетом, взаимодействие с Microsoft Office, СОМ-объекты, технологию NET, очередную версию Windows — список можно продолжать бесконечно. Не обойтись без профессионального владения английским языком и знания традиций и делового этикета разных стран - - для общения с пользователями и представителями зарубежных компаний (регистраторов, каталогов программ и т. д.).

Большинство программистов в нашей стране (как, впрочем, и во всем мире) являются штатными сотрудниками достаточно крупных фирм и организаций. Почти всегда имеется "потолок" размера заработной платы, при этом часто не очень высокого уровня. Доходы от shareware-бизнеса могут многократно превышать среднюю зарплату программиста в Москве, не говоря уже о провинции. Вспомните Джима Кнопфа, которому его программа PC-File приносила денег в десять раз больше, чем работа в IBM! Вот, для сравнения, классификация уровня ежемесячных доходов современных shareware-разработчиков, составленная Виктором Ижикеевым:

100—1000$ — начинающие shareware-разработчики или продажи не очень удачного продукта. Чтобы заработать меньше 200$, надо сильно постараться. 1000...3000$ — приличный уровень среднего шароварщика, на который обычно выходят через год-два. 3000...10 000$ — удачные, по нашим меркам, продукты. 10 000$ — наиболее успешные продукты типа WinAmp, WinZip, ACDSee, Paint Shop Pro, ставшие своеобразной классикой shareware.

Но, как часто случается, деньги — еще не все. "Тщеславие — мой любимый порок" - говорил персонаж Аль Пачино в фильме "Адвокат дьявола". Shareware — это уникальная возможность сделать себе имя и стать известным всему миру. Вспомним того же Джима Кнопфа: разве смог бы он получить всемирную известность, оставаясь всего лишь штатным программистом IBM?

Кроме того, shareware — отличный шанс начать собственный бизнес. Начальные затраты минимальны, к тому же не нужно бросать свою основную работу: никто не мешает писать программу в обеденные перерывы, а обрабатывать регистрационные письма и переписку с пользователями по вечерам. Если по каким-либо причинам дело не заладится, можно опять сосредоточиться на основной работе. Но если деятельность на рынке shareware пойдет успешно, то можно стать профессиональным shareware-автором, т. е. заниматься исключительно разработкой и распространением своих программ. По мере увеличения объемов продаж и количества пользователей потребуется нанять специалистов для технической поддержки пользователей или управления финансами — словом, нужно будет уже регистрировать собственную компанию.

Примеров успешных shareware-проектов в России предостаточно. В следующем разделе я расскажу о пяти из них.



Borland Delphi



Borland Delphi

Как и Microsoft Visual C++, Borland Delphi позволяет компилировать свои проекты в исполняемые файлы, не требующие каких-либо внешних runtime-библиотек. Их размер, хотя и превышает размер файлов, созданных при помощи Visual C++", все-таки остается довольно компактным, что выгодно отличает Delphi от своего основного конкурента — Visual Basic. Единственное, где нужно быть осторожным, - - это написание резидентных утилит: для этой категории программ объем файла даже в 300—500 Кбайт может оказаться слишком большим и, возможно, придется прибегать к дополнительным хитростям для его уменьшения.

Увы, но усиленно рекламируемая возможность Delphi легко создавать ActiveX-компоненты на практике почти бесполезна: генерируемые компилятором файлы имеют огромный размер и разочаровывающе низкую скорость работы.

А вот "родная" для Delphi технология — Visual Component Library (VCL) -совсем другое дело. Существует огромное число компонентов, причем многие, даже из самых мощных, распространяются совершенно бесплатно.

Трудностей с отладкой проектов, содержащих VCL, в отличие от использования ActiveX, не существует: большинство из имеющихся на рынке компонентов снабжаются исходными текстами, и программист имеет возможность самостоятельно устранить ошибки (а они в VCL встречаются не так уж редко). Кроме того, открытость исходных текстов позволяет разработчику расширить функциональность компонента, а если имеющийся компонент слишком громоздок и имеет неоптимальную структуру, то можно включить в свою программу только фрагменты его кода.

Примечание
Примечание

Часто можно даже не затруднять себя самостоятельным исправлением ошибок в компонентах: число существующих VCL-компонентов так велико, что при обнаружении ошибки бывает достаточно попробовать аналогичный компонент другого производителя. Например, при переходе с Windows 98 на Windows ME в работе компонента, который я использовал для извлечения информации о версии ЕХЕ- и DLL-файлов, стали иногда происходить сбои. После того как я заменил ненадежный компонент его аналогом, нормальная работа программы возобновилась.

Все перечисленные достоинства и недостатки свойственны и другой системе разработки приложений компании Inprise — C++ Builder.



Что еще нужно помнить



Что еще нужно помнить

Главное правило начинающего шароварщика — писать свою программу нужно очень быстро. Современный ранок программного обеспечения очень динамичен: на нем постоянно появляются новые продукты, а существующие расширяют свои возможности. Если вы протянете с выпуском своей программы несколько месяцев, то, когда, наконец, решитесь представить ее публике, вполне может оказаться, что она уже мало кому нужна.

Особенно следует поторопиться, если вы хотите попасть "в струю", т. е. направление, которому посвящена ваша программа, стало популярным совсем недавно (например, как в свое время — утилиты для работы с МРЗ). Вероятно, довольно большое число разработчиков уже пишут программы, аналогичные вашим, и тот, кто первый появится на рынке, "снимет" все "сливки".

Как следствие, от написания первой строки кода до появления первой рабочей версии программы должно пройти 1—2 месяца. Многие разработчики почему-то боятся объявить свою программу финальной версией и бесконечно оттягивают начало продаж своего продукта, выпуская все новые бета- и предварительные версии и предоставляя их ограниченному числу пользователей. Делать этого, по указанным выше причинам, не стоит: ваша программа должна появиться на массовом рынке как можно быстрее.

Помимо этого, на работу нужно настроиться очень серьезно. После прочтения истории shareware и рассказов об успешных российских shareware-проектах (см. гл. 1), у кого-то из читателей, возможно, сложилось впечатление, что стоит выпустить на рынок хоть какую-нибудь программу — и регистрации благодарных пользователей посыпятся, как из рога изобилия. Увы, сегодня все обстоит несколько иначе. Вам придется конкурировать как минимум с несколькими, а может быть, и с десятками соперников, многие из которых находятся на рынке уже не один год и знают, как именно нужно продвигать конкретный продукт. Да и большинство пользователей не платят деньги за первую встреченную программу, а обязательно посмотрят несколько продуктов и выберут самый лучший.

Поэтому если вы действительно хотите добиться серьезного успеха, то установка на результат должна быть бескомпромиссной. Мало просто написать продукт — ваш продукт в своей категории должен быть самым лучшим в мире. Если пишете HTML-редактор — стремитесь сделать его лучше, чем HomeSite. Разрабатываете менеджер файлов — пусть он видится вам лучшим, чем FAR и Windows Commander, вместе взятые. Закладываться нужно на 200%, перепрыгивать через голову, тогда что-то получится. Этот принцип действительно помог многим российским шароварщикам стать лидерами на рынке shareware.



Delphi Basic или С



Delphi, Basic или С

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



Учебник по созданию shareware программ



ГЛАВА 2.

С чего начинать



Какую программу писать



Какую программу писать

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

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

Дело в том, что программа обязательно должна быть интересной вам самим, вы сами должны ей постоянно пользоваться. Если вы, скажем, пишете собственный файловый менеджер, но при этом предпочитаете применять FAR (http://www.rarsoft.com), например, потому что у него и встроенный FTP-клиент есть, и файлы он копирует без ошибок, то будьте уверены: долго ваш проект не проживет. Очень скоро вы потеряете к нему всякий интерес и забросите его поддержку.

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

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

В качестве примера программы, первоначально написанной "для себя" и выигравшей от того, что автор использовал ее постоянно, могу привести свой собственный shareware-продукт — Actual Startup (http://www.actualsystem.com /startup/), утилиту для управления списком программ, запускаемых при старте Windows (такие программы еще называют "менеджерами автозагрузки"). В один прекрасный день мне окончательно надоело то, что буквально каждая вторая программа, устанавливаемая на моем компьютере (например, Netscape Communicator, Microsoft Office, игра Heroes of Might and Magic III), без всякого моего разрешения норовит добавить в автозагрузку вызов своего собственного модуля. Нет проблем — к этому моменту на рынке существовало несколько менеджеров автозагрузки (среди них были и бесплатные), кроме того, аналогичная утилита входила и в состав Windows 98. Однако ни у одной из найденных мною программ не было функции периодической проверки списка запускаемых программ на предмет появления в нем новых "членов", а постоянно просматривать автозагрузку "вручную" было неэффективно. Поэтому я написал собственную программу — Actual Startup. Она не только позволяла просматривать и управлять списком программ, запускаемых при старте системы, но и незамедлительно сообщала о добавлении в него новых пунктов.

Почти сразу после того, как Actual Startup был выставлен на обозрение публики, я стал получать от пользователей сообщения о странной и очень раздражающей ошибке: моя утилита при каждой проверке докладывала о появлении в автозагрузке одних и тех же программ, хотя они вовсе не являлись новыми в списке! .В течение нескольких месяцев(!) я не мог обнаружить причину ошибки. Я запрашивал у пользователей детальную информацию о работе программы, тестировал Actual Startup на разных компьютерах под всеми существующими 32-разрядными версиями Windows, но к решению проблемы не приблизился ни на шаг (нет худа без добра: попутно я нашел еще несколько довольно неприятных ошибок и заодно изучил особенности программирования для разных версий Windows).

Однажды, в очередной раз переустановив Windows, я инсталлировал в числе многих программ и мультимедийный проигрыватель WinAmp. Actual Startup добросовестно сообщил мне, что в автозагрузку был добавлен новый сервис — WinAmpAgent. В отличие от предыдущих установок WinAmp, я на этот раз решил не удалять Agent из списка запускаемых при старте системы программ. И - о, чудо! — через минуту моя утилита опять сообщила о "новой" программе в автозагрузке. Причина загадочной ошибки наконец-то была найдена: оказывается, некорректную работу программы вызывало наличие кавычек в команде, которой запускался WinAmp Agent. Ошибка была устранена в течение двадцати минут, но кто знает, сколько еще времени понадобилось бы на решение проблемы, если бы я не пользовался постоянно своей программой, и сколько регистрации я бы потерял из-за этого!

И все же, какую программу стоит писать? Существует мнение, что продать можно любой продукт, лишь бы он был качественно сделан, и с этим соглашаются многие профессиональные шароварщики. На современном рынке программного обеспечения пользуются спросом самые разные продукты: от крошечных вспомогательных утилит для Windows до сложных научных и инженерных пакетов. Для shareware подходит почти любая программа, особенно если она не повторяет функции, предоставляемые широко распространенными . продуктами типа Microsoft Windows или Microsoft Office, или выгодно дополняет их. Существует много ниш на рынке программного обеспечения, не занятых крупными компаниями: они или не заинтересованы в том количестве пользователей, которое это направление может дать, или считают такие программы несерьезными, или по разным другим причинам. Зайдите на любой более-менее крупный интернет-каталог программ, и вы увидите, насколько разнообразные программные продукты покупают пользователи во всем мире.

Главное, чтобы программа, которую вы хотите написать, пригодилась не только вам, а была бы востребована и другими пользователями. Разумеется, не всегда в этом можно быть уверенным. И в таком случае нужно руководствоваться следующим правилом: "Не пишите программу, не имеющую аналогов на рынке".

На первый взгляд, это утверждение многим кажется абсурдом. Ведь на продукт, находящийся вне конкуренции, спрос гораздо выше! Но в индустрии shareware дело обстоит несколько иначе. Мне известно довольно много примеров того, как проект по разработке уникальной, не имеющей аналогов на рынке программы прекращался из-за того, что вместе с конкурентами у программы отсутствовали и покупатели. С другой стороны, многие продукты, имеющие довольно большое число соперников, продаются просто замечательно. Более того, некоторые разработчики shareware рассказывали мне, что после появления на рынке сильных конкурирующих программ продажи их собственных продуктов даже возросли!

Дело в том, что конкуренты, как это ни странно, подготавливают вам благоприятную почву для вхождения на shareware-рынок. В интернет-каталогах программного обеспечения уже созданы соответствующие тематические категории, а абсолютно новая программа попадет в лучшем случае в раздел "Miscellaneous" (Разное), который традиционно посещается меньше других. Компьютерные журналы часто публикуют тематические обзоры программ -например, я писал для популярного журнала "Мир Интернет" (http:// www.iworld.ru) обзоры Web-редакторов, интернет-ускорителей, FTP-клиентов, утилит для поиска в Сети и др. Всякие же экзотические программы попадали в лучшем случае в краткий и общий "Обзор утилит", часто я вообще не решался что-либо писать о них, т. к. не был уверен, что они будут интересны для читателей журнала.

В каждой категории программ есть свои лидеры: например, среди архиваторов — WinZip, offline-браузеров — Teleport Pro, а файловых менеджеров — FAR (http://www.rarsoft.com). Однако многие пользователи все равно не довольствуются их возможностями и постоянно ищут более новые программы. Например, в конференциях, посвященных программному обеспечению, можно найти много обсуждений "Web-редакторов, лучших, чем HomeSite (http://www.allaire.com)", или "FTP-клиентов, лучших, чем CuteFTP (http:// www.cuteftp.com)". А если какой-либо продукт начинает активно рекламироваться, то он косвенно продвигает и все ее аналоги: пользователи начинают интересоваться этим классом программ, скачивать их из Интернета, пробовать, сравнивать возможности. Даже на страницах журналов иногда появляются обзоры типа "Выбираем замену Outlook Express". Вот и получается, что деятельность конкурентов может принести пользу и вам.

Наметив примерную тематику программ, посмотрите, что уже создано другими разработчиками: наверняка у вас появится множество новых идей. Вряд ли какая-либо программа может удовлетворить потребности большинства пользователей на 100%: одна, например, имеет более красивый интерфейс, другая - какую-нибудь интересную функцию, третья отличается меньшим объемом дистрибутива и высокой скоростью работы, четвертая продается по очень привлекательной цене. Просмотреть продукты, имеющиеся на рынке, выделить лучшие их черты и воплотить их в своей программе — так поступили авторы многих удачных shareware-проектов. Вспомните, например, как Владимир Каталов, прежде чем начать работу над своим Advanced Disk Catalog, сначала протестировал около двадцати уже существовавших программ этой тематики (см. разд. "Успешные российские shareware-проекты" гл. 1).

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

Кроме того, у крупных компаний по разработке программного обеспечения совсем другие возможности: большой штат сотрудников и такие бюджеты, что программистам-одиночкам и не снились. А вот конкурировать с такими же, как и вы, shareware-разработчиками или даже небольшими shareware-компаниями вполне можно. Ведь здесь, в России, накладные расходы несколько меньше, чем за рубежом, а кроме того, вас вполне может устроить такой доход, который никогда не будет приемлем для иностранного разработчика или, тем более, целой компании.

Однако, к "монстрам" из мира программного обеспечения все-таки стоит присмотреться. Есть такое "правило рыбы-прилипалы": чтобы набрать большую скорость, нужно всего лишь прицепиться к днищу идущего корабля. В индустрии shareware это означает то, что для продвижения собственной программы можно использовать популярность лидирующего на рынке продукта.

Классический пример — всевозможные подключаемые модули, или плагины (от англ, plug-in), которые поддерживают многие популярнейшие программы - например, уже упоминавшиеся WinAmp, Adobe Photoshop, FAR. Плагины традиционно являются предметом повышенного интереса со стороны многочисленной аудитории "основных" продуктов. Не случайно на их Web-сайтах заведены разделы, содержащие ссылки на плагины, что, кстати, является бесплатной и очень эффективной рекламой. А корпорация Microsoft даже периодически проводит конкурсы среди расширений пакета Microsoft Office! Если же написанный вами дополнительный модуль окажется особенно удачным, его, возможно, даже включат в дистрибутив "основного" продукта — вы сами можете представить, насколько увеличится число пользователей вашей программы!

Кроме того, в Интернете существуют специализированные архивы плагинов, например, есть довольно много ресурсов, посвященных модулям для Adobe Photoshop. Программа, опубликованная на таком сайте, привлекает гораздо большее внимание действительно заинтересованной в ней аудитории по сравнению с каким-нибудь крупным общетематическим архивом типа Download.com, где продукт может просто затеряться.

Внимание!

Некоторые разработчики недовольно заявляют: "Зачем это я своим продуктом буду продвигать какой-то там Photoshop". Такая точка зрения является совершенно неправильной: на самом деле все происходит с точностью наоборот.

Еще один пример грамотно задуманной "прилипалы" это поддержка программой какого-нибудь популярного формата файлов.

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

Еще можно упомянуть такие хрестоматийные примеры, как успех кодировщиков и плейеров МРЗ-файлов, появившихся, как только формат МРЗ стал завоевывать популярность, или большой интерес к программам работы с файлами Adobe Acrobat (PDF).

Если вы хотите посвятить себя разработке игр, следует учитывать, что для shareware-рынка имеет смысл разрабатывать небольшие игры — логические, карточные, или, например, ремейки классических хитов типа "Тетриса" или "Арканоида". Большие проекты вроде сложной стратегической или ролевой игры начинать бесполезно — слишком велики расходы на разработку и издание продукта такого рода. В этой ситуации более разумно обратиться в одно из специализированных агентств по изданию игр — но это уже совсем другая тема.

В случае, если вы имеете хорошие навыки создания приложений для Web-серверов, например, CGl-скриптов, владеете языками С, Perl или РНР, то вы можете заняться shareware и в этой области. Рынок программ для Web-серверов очень привлекателен: во-первых, продуктов на нем в десятки раз меньше, чем на рынке программ для Windows, а значит, менее жесткая конкуренция; во-вторых, спрос очень велик, ведь количество Web-сайтов в мире огромно и растет с каждым днем; в-трстьих, заказать нужный CGI-скрипт в специализированной компании по разработке Web-сайтов для большинства покупателей не по карману, т. к. это стоит слишком дорого — несколько тысяч долларов. Это зажигает зеленый свет перед независимыми Web-программистами, которые могут продавать свои продукты за гораздо более низкую цену. Наибольшим спросом на рынке пользуются, конечно, сложные CGI-скрипты для коммерческого применения: показа рекламы на сайте, ведения online-торговли, работы с базами данных. Также популярны форумы с расширенными возможностями (например, функцией администрирования и ведения различных тематических конференций), системы быстрого обновления содержимого сайта, сбора и анализа статистики посещений и т. п.

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

Тем не менее такие случаи достаточно редки, и у вас гораздо больше шансов "раскрутить" собственный продукт, чем продать его кому-нибудь другому. Например, один из российских программистов пару лет назад написал несколько довольно неплохих shareware-программ и стал активно заниматься их продвижением, надеясь, что его заметят и возьмут на работу в какую-нибудь крупную компанию. Выгодных предложений устроиться на работу так и не поступило, а вот shareware-бизнес пошел так хорошо, что он зарегистрировал собственную фирму и уже сам принимает людей на работу.

И наконец, последний вопрос относительно тематики будущей программы: стоит ли писать shareware для каких-либо операционных систем, кроме Windows 9x и 2000? Скорее всего, нет. Раньше можно было делать проекты под OS/2, у нее были десятки миллионов инсталляций в мире, особенно много в Европе. Но сейчас это количество снижается и новых версий данной операционной системы не предвидится.

Под Unix писать shareware особого смысла нет — там традиционно большая часть программ распространяется бесплатно, в том числе и на условиях Open Source (см. разд. "Freeware и другие" гл. 1).

Несколько отдельно стоит разработка shareware-программ под Windows СЕ, PalmOS и прочие платформы для карманных компьютеров-"наладонников". Писать для них можно на обычном персональном компьютере. Сейчас в связи с бурным развитием данной отрасли компьютерной индустрии, эта платформа имеет шанс "приобрести такое же значение, как и ее "старший брат". Пользователи карманных компьютеров неплохо покупают игры, записные книжки, компактные почтовые клиенты и другие подобные программы. Если у вас есть возможность отлаживать такие программы, то стоит попробовать...



Microsoft Visual Basic



Microsoft Visual Basic

Разработка и распространение shareware-программ в системе Microsoft Visual Basic, при всей простоте самого языка программирования и удобстве среды разработки, сопряжена с некоторыми довольно серьезными трудностями.

Для работы любой программы, созданной в Visual Basic, требуется runtime-библиотека "весом" более мегабайта. Например, при использовании версии 5.0 требуется библиотека msvbvm50.dll, а версии 6.0 - библиотека msvbvm60.dll. Корпорация Microsoft относительно недавно стала поставлять эти библиотеки в составе операционных систем семейства Windows, и автор никогда не может быть полностью уверен, что у пользователя уже есть необходимая для работы программы библиотека. Приходится включать злосчастную DLL в дистрибутив своей программы, потому что предлагать вместо этого скачать ее со страницы разработчика слишком рискованно: многие пользователи будут разочарованы и просто не станут тратить лишнее время, предпочтя поискать продукт другого автора. Как следствие, архив с даже самой простой утилитой будет "весить" около полутора мегабайтов! Например, совсем недавно в конференции SwRus (см. разд. "Shareware в России" гл. 1) как раз шло массовое веселье по поводу обсуждения скромной утилиты, которая всего лишь показывала пользователю его IP-адрес. Увы, скромным в программе был только набор возможностей: объем ее дистрибутива был 1,4 Мбайта!

Другой недостаток shareware-программ, написанных на Visual Basic, — необходимость использования при работе над более-менее сложными проектами

ActiveX-компонентов, которые для этой системы разработки являются единственным способом серьезного увеличения функциональных возможностей программы. Активно продвигаемая корпорацией Microsoft технология на самом деле доставляет shareware-автору немало хлопот.

Несмотря на статус "дополнительной библиотеки" вроде DLL, ActiveX-компонент является, по сути дела, самостоятельным приложением, который, как и любой программный продукт, неминуемо содержит ошибки, проявляющиеся в самый неподходящий момент! Также вполне возможны ситуации, когда нормально функционирующий ActiveX отказывается работать при переходе на другую версию Windows. При этом найти ошибку автору компонента несколько сложнее, чем в случае отладки "обычного" приложения: когда ActiveX-компонент используется третьими разработчиками при написании их программ, возникают такие ситуации, которые автор компонента просто не может предвидеть и создать в процессе отладки. Более того, при подключении к проекту нескольких ActiveX-компонентов вполне может оказаться, что они конфликтуют между собой — в моей практике, по крайней мере, было несколько таких случаев. Что самое неприятное — исправить ошибку никак нельзя, т. к. компоненты поставляются без исходных текстов, только в скомпилированном виде. Иногда возникают трудности даже с отладкой программы из-за багов, возникающих где-то внутри двоичного файла ActiveX: можно довести себя до белого каления, пытаясь выяснить, почему программа не работает, хотя на соседнем компьютере такой же конфигурации оборудования и установленного программного обеспечения все, как говорится, Ok. Писать же автору компонента и просить исправить ошибку часто бывает бесполезно, т. к. он, как уже говорилось выше, может оказаться не в состоянии воссоздать ситуацию, возникшую у пользователя, и локализовать ошибку.

Кроме этого, включение в проект ActiveX-компонентов способно увеличить размеры дистрибутива программы вне всяких разумных пределов. Помимо наличия плохо оптимизированной внутренней структуры самих компонентов, некоторые автору непонятно зачем объединяют несколько ActiveX в один довольно объемный файл. Характерный пример — компонент Windows Common Controls из состава Visual Basic, включающий стандартные элементы управления Windows 95 (ToolBar, StatusBar, TabControl и др.). Поэтому при добавлении хотя бы одного из этих элементов, например кнопочной панели инструментов, объем дистрибутива сразу увеличивается на 650 Кбайт. А ведь еще нужно добавить специализированные DLL-библиотеки из состава Visual Basic для поддержки технологии OLE (основы ActiveX) — а это еще несколько сотен килобайтов!

Примечание
Примечание

Можно, конечно, обойтись без ActiveX-компонентов, программируя на чистом Windows API. Однако при этом теряется единственное преимущество Visual Basic, из-за которого его в основном используют, — высокая скорость и простота разработки.

Многие возлагали надежду на то, что корпорация Microsoft решит проблему необходимости использования громоздких DLL-библиотек и ActiveX-компонентов с помощью своей новой технологии .NET. Однако, по свидетельству бета-тестеров Visual Basic NET, размеры DLL-библиотек в этой системе увеличились еще больше и достигли "чудовищной" величины. А значит, несмотря на то, что Microsoft будет распространять NET-библиотеки в составе своей 64-разрядной операционной системы Windows XP, Visual Basic останется не очень привлекательным средством для разработки shareware-продуктов. Конечно, на рынке присутствуют программы, написанные на Visual Basic, но многие из них просто неконкурентоспособны из-за слишком большого размера дистрибутива.

К сожалению, особого смысла создавать с помощью Visual Basic ActiveX-компоненты для shareware-рынка нет, т. к. аудитория у них будет несколько ограничена. Причиной этого является то, что для работы такого ActiveX-компонента требуется runtime-библиотека из состава соответствующей версии Visual Basic. Поэтому его применение в проектах под Visual C++ и Borland Delphi нерационально. То же самое можно сказать о использовании такого ActiveX в проекте, созданном в другой версии Visual Basic: например, при добавлении компонента, созданного в версии 5.0, в проект, разрабатываемый в редакции 6.0, в дистрибутив готового продукта нужно будет включать и msvbvm50.dll, и msvbvm60.dll (суммарный объем — более 2,5 Мбайт).

Вот где позиции Visual Basic очень сильны — это в области создания дополнений для Microsoft Office: как известно, диалект VB - Visual Basic for Applications (VBA) — является языком программирования Office. В составе Office, начиная с версии 2000, наконец-то появилась полноценная интегрированная среда разработки, напоминающая обычный Visual Basic, позволяющая комфортно создавать и отлаживать приложения для Microsoft Office.

Поэтому, на мой взгляд, Visual Basic хорошо подходит в основном для разработки продуктов по конкретным заказам, (где имеется возможность протестировать программу на компьютерах заказчика, а ее окончательную версию записать на компакт-диск и принести лично или прислать по почте), а также дополнений к Microsoft Office. При использовании Visual Basic для разработки shareware-программ будьте готовы к тому, что у многих ваших конкурентов козырей будет больше, чем у вас — не случайно большинство продуктов на рынке shareware написаны все-таки на Visual C++, Borland Delphi или C++ Builder.



Microsoft Visual C++



Microsoft Visual C++

Одно из основных достоинств Microsoft Visual C++ - относительно небольшой размер ЕХЕ-файла, генерируемого встроенным компилятором при так называемой статической компиляции, т. е. ЕХЕ-файла, для работы которого не требуется дополнительных runtime-библиотек. По этому показателю система опережает своих основных конкурентов - Borland Delphi и Borland C++ Builder. Как следствие, дистрибутивы программных продуктов, созданных с помощью Microsoft Visual C++, отличаются небольшим размером, что делает их более привлекательными для пользователей, загружающих программы через Интернет.

Компактность генерируемых компилятором файлов делает Microsoft Visual C++ наиболее эффективным средством и для разработки DLL-библиотек и ActiveX-компонентов, для которых небольшой размер является основным требованием. Кроме того, в этой области проявляется еще одно достоинство Microsoft Visual C++, почти незаметное при разработке "обычных" приложений — высокая скорость работы двоичного кода, созданного компилятором системы.

Еще один плюс — переносимость приложений, написанных на C++ (правда, без использования библиотеки MFC), на другие платформы. Конечно, сейчас наибольшую часть рынка shareware занимают программы для MS Windows, однако у операционных систем Linux и BeOS неплохой потенциал, и если в будущем вы решите сделать версию своего продукта и для других платформ, это будет не так уж и сложно. А для некоторых программ, например сетевых средств, написание версии для Linux может понадобиться уже в начале разработки Windows-версии.

Пожалуй, единственный недостаток Visual C++ для shareware-программиста, особенно новичка в этой области, обусловлен, как это ни странно, тем, что эта система является стандартом де-факто в сфере профессиональной разработки программного обеспечения. Дело в том, что среди всевозможных библиотек и дополнительных компонентов для Microsoft Visual C++ бесплатных продуктов относительно немного. Серьезные печатные руководства и подписка на CD-ROM с документацией также стоят недешево. Впрочем, для многих программистов этот недостаток таковым и не является — все зависит от характеристик разрабатываемой программы, а также квалификации и требований самого shareware-автора. Возможно, вам хватит и обширной документации и множества примеров исходных текстов, размещенных в Интернете, а также информации из тематических конференций.



Выбор названия программы



Выбор названия программы

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

Первое, что приходит на ум начинающему шароварщику, — это назвать программу как-нибудь кричаще и вызывающе — с использованием слов "best", "great", "cool" и т. п. Например, совсем недавно мне встретился анонс продвинутого менеджера интернет-закладок. Автор программы назвал свое детище... конечно же, "SuperCool Bookmark".

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

Другим минусом всех этих "super", "cool" и им подобных является то, что программу с таким названием практически невозможно найти в Интернете с помощью поисковых систем. В ответ на запрос типа "+super +cool" поисковая машина выведет сотни тысяч ссылок, и ссылка на вашу программу будет далеко не в первой тысяче. Это очень важно, т. к. поисковые системы являются одним из основных ресурсов, приводящих к вам новых пользователей (см. гл. 9, 10).

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

В качестве примера могу привести download-менеджер FlashGet (http:// www.amazesoft.com). Первоначально автор, Кевин Ху (Kevin Hou), назвал свою программу JetCar (в дословном переводе с английского - "реактивный автомобиль"), избрав в качестве эмблемы красную гоночную автомашину. Номер версии еще не достиг 1.0, a JetCar пришлось переименовать во FlashGet, чтобы он более явно ассоциировался с классом download-ме-неджеров, лидерами в котором являются продукты с похожими названиями — ReGet и GetRight, — отражающими назначение программы (в данном случае — получение (англ, get) файлов с интернет-серверов).

Более того, нужно постараться избежать любой двусмысленности в названии продукта. Тут мне, к сожалению, приходится обратиться к своему опыту. Два года назад, подбирая название для собственной программы (менеджера автозагрузки Windows), я без особых колебаний остановился на слове "RunServices". Во-первых, так называется один из ключей системного реестра Windows, где хранятся параметры команд, автоматически запускаемых при старте операционной системы, а во-вторых, "services" в названии программы намекало на некоторую техническую "продвинутость" целевой аудитории продукта: На практике оказалось, что такое название больше подходит для менеджера процессов наподобие Диспетчера задач в Windows NT и Windows 2000. Среди невольно введенных в заблуждение оказался даже обозреватель одного из крупнейших архивов программного обеспечения Tucows (http://www.tucows.com). Он совершенно неправильно написал, что RunServices будто бы "позволяет просмотреть, какие приложения и DLL в настоящий момент запущены на вашем компьютере. Вы можете затем закрыть или временно отключить приложения, съедающие ценные ресурсы". В таком некомпетентном обзоре в большей степени, конечно, виноват сам обозреватель Tucows (естественно, в своей заявке я указал четкое описание функций программы), однако, если бы RunServices называлась более понятно, например, "Startup Manager", я уверен, возможностей для возникновения таких недоразумений было бы гораздо меньше. Поэтому я решил переименовать свою программу в "Actual Startup".

Пытаясь придумать оригинальное название своей программы, некоторые авторы искажают написание обычных слов, заменяя в них одну-две буквы. Вот и появляются программы, зовущиеся, например, "AllPicturez". Этот прием нельзя назвать удачным, по крайней мере, я не могу припомнить среди успешных shareware-проектов продукт с названием такого рода. Ведь если для некоторых нас такое название может звучать необычно, то для зарубежных пользователей это просто безграмотное написание слов, которое, как известно, не добавляет положительных эмоций.

Замена буквы "s" на "z" - особенно большая ошибка: так традиционно любят "отмечаться" хакеры и крякеры, взламывающие системы защиты или ворующие различную ценную информацию (примеры такого хакерского "словообразования" вы наверняка встречали в Интернете - "warez", "filez", "rulez", "toolz" и т. п.). Поэтому, скорее всего, пользователь решит не скачивать и тем более не приобретать программу с таким названием из-за опасений получить на свой компьютер "троянского коня" или отдать номер своей кредитной карточки в руки нечестных людей. Пожалуй, исключение из этого правила составляют программы, работающие в области безопасности системы, подбора паролей, удаленного администрирования и т. п. Разработчиками и пользователями таких продуктов очень часто являются бывшие или действующие хакеры, поэтому здесь встретить понимание аудитории гораздо легче. Но, с другой стороны, среди пользователей этой категории программного обеспечения много полицейских участков, частных детективных агентств, есть даже департаменты ФБР и ЦРУ — т. е. те, кто хакеров не любит, а наоборот, борется с ними всеми доступными способами. Поэтому я бы не советовал вам экспериментировать со всякими "Terminalz" или "Serverz" - - незачем так рисковать понапрасну: английский язык, хотя и не так "велик и могуч", как русский, но оригинальное название для своей программы вы сможете подобрать и без такого "творчества".

Удачным противопоставлением бездумному коверканью терминов может служить искусная игра слов. Например, в свое время мне очень понравилось название InSite, которое звучит так же, как и английское "insight" (означающее "проницательность" и "интуиция"), и одновременно идеально подходит для применения в области Web-технологий.

Существует еще один момент, который может помочь вам в раскрутке своей программы. На некоторых крупных shareware-архивах, например, уже упоминавшихся Download.com и Tucows, список программ сортируется не по дате поступления в каталог, а по алфавиту. Как следствие, наибольшее внимание посетителей архива получают программы, названия которых начинаются на "А", "В", "С" и другие буквы, идущие в начале латинского алфавита.

Многие авторы, конечно, это знают, и поэтому используют различные "хитрости", чтобы название программы начиналось на "А". Например, одно время существовала повальная мода добавлять к названию слово "advanced" (продвинутый). В качестве иллюстрации можно привести результат поиска этого слова в каталоге SoftList (http://www.softlist.ru/cgi-bin/search.cgi?query=advanced), содержащий несколько десятков программ с названиями, начинающимися с "Advanced". В конце концов появление новых продуктов с такими названиями стало вызывать у пользователей иронию — если существует, например, "Advanced System Tweaker", то где же тогда "обычный" System Tweaker? К тому же новые программы с "продвинутыми" названиями частенько на самом деле оказывались маломощными поделками, компрометируя слово "advanced" в названии программы. Поэтому на смену "advanced" пришли другие слова, например, "active" (эффективный, действенный), "actual" (современный, реальный, подлинный). Некоторые поступают еще проще, поставив в начале названия неопределенный артикль "а".

Более гибкое решение — добавление в начало названия программы инициалов разработчика или аббревиатуры названия компании, например, ACDSee, ASPack, AYPad и т. п. В этом случае, помимо лучшей позиции в алфавитном списке программ, гораздо легче добиться уникальности названия. Почему это важно — читайте ниже.

Примечание
Примечание

Конечно, не стоит думать, что продукт, название которого начинается, например, на "Q" или "W", заранее обречен на провал. Просто, начиная такой проект сейчас, когда shareware-рынок перенасыщен, будет чуть-чуть сложнее достичь популярности. К тому же, подавляющее большинство архивов программного обеспечения сортируют списки продуктов все-таки не по алфавиту, а по дате поступления программ в каталог.

Помимо каталогов программ, большая часть аудитории узнает о shareware-программах через поисковые системы. Многие поисковые механизмы при индексировании Web-страниц и выполнении поисковых запросов посетителей специальные символы и знаки препинания либо игнорируют, либо интерпретируют как элементы синтаксиса собственного языка запросов. Учитывая эту особенность сетевых поисковых машин, нужно стремиться не использовать в названии программы специальных символов или знаков препинания, например дефисов, знака "плюс", вопросительных или восклицательных знаков. Последний вариант, однако, довольно распространен — вспомните широко известные CorelDRAW!, The Bat! и др. Например, название популярного в России и за рубежом пакета серверов E-serv было заменено на Eserv исключительно в целях улучшения "находимое™" программы в поисковых системах.

Кстати, об инициалах в названии программы. Некоторые авторы идут еще дальше — включают в название программы свое имя или фамилию. Это — ошибка, потому что, как свидетельствует практика, программа, называемая именем автора, у пользователей прочно ассоциируется с любительским творчеством, отсутствием поддержки и т. п. Давно прошли те времена, когда программы расхватывались, как горячие пирожки, a "Norton Commander" звучало более солидно, чем "Microsoft Windows". Потенциальные покупатели сегодня разборчивы и осторожны, — они гораздо охотнее доверяют продуктам, продающимся от лица компании.

Это, конечно же, не означает, что, прежде чем начинать продажи, вам нужно будет обязательно зарегистрировать собственную фирму. Вполне достаточно просто придумать себе псевдоним и выступать, к примеру, не как Alexey Ivanov, а как AV Software. Вместо "software" подходят и другие термины, ассоциирующиеся с современными наукоемкими технологиями: research, labs, technology, tools, products, works и т. п.

Естественно, такой подход слишком уж прост, и лучше взяться за дело более творчески, т. к. яркое название вашей программы легче запомнится пользователями и сделает раскрутку вашего проекта более эффективной. Юрий Герасимов, автор программы Chameleon Clock (см. разд' "Успешные российские shareware-проекты" гл. 1), выбирая название для бранда, от имени которого он будет распространять свой продукт, даже выработал целую методику:

"Сначала придумывается несколько возможных групп-направлений. Вплоть до самых диких, т. к. первое правило мозгового штурма — ничего не критиковать в процессе генерации идей. В моем случае это были скины, desktop-программы, красивые программы, слоган "Time to change" (Время перемен) и даже "место, где живет Chameleon Clock".

Затем под каждую группу пишется списочек всевозможных названий: у меня их было более сотни.

После этого — мучительный процесс отбора 3—7 лучших названий в каждой группе, сопровождающийся проверкой занятости соответствующих интернет-доменов в зоне .com, консультациями на предмет "нравится/не нравится" с друзьями, с женой, коллегами, родственниками и т. п.

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

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

В моем случае интересным вариантом, от которого многие просто пищали, был сайт www.lizardtree.com (место, где живет Chameleon Clock) — вплоть до того, что просили отдать это имя, если я сам его использовать не буду (я не сделал ни того, ни другого). В ряду других вариантов был сайт www.shapesoft.com, и один из покупателей, голливудский консультант, преддожил переделать его в сайт www.softshape.com как более благозвучный и даже сексуальный, и сам предложил слоган "Software doesn't have to be ugly" (Программное обеспечение не должно быть уродливым). Тут пришла моя очередь пищать — Happy End".

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

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

Замечание 1
Замечание 1

При этом из-за разницы в культурных традициях вариант, который российский программист вряд ли выберет в качестве названия для своего продукта, окажется вполне благозвучным для зарубежного пользователя. Например, американцы очень уважают змей, которые считаются символом мудрости, и название, включающее английское "snake", может быть неплохим вариантом, однако мало у кого из россиян змеи вызывают положительные эмоции. А слово "maniac" в США в первую очередь обозначает увлекающегося человека, фаната, а не извращенца, как в России.

В крайнем случае, спросите совета у профессионального и квалифицированного переводчика, работавшего за рубежом, или посмотрите в библиотеке самый обширный англо-русский словарь, напечатанный в течение нескольких последних лет. Такие словари учитывают особенности современного английского языка и обычно содержат и сленговые словоформы.

Что касается проверок, не используется ли выбранное вами название уже кем-то другим: если вы не сделаете этого, может оказаться, что выбранное вами название не только занято, но и официально зарегистрировано в качестве торговой марки. А это через некоторое время обязательно приведет к конфликту с владельцем прав на нее, и вам придется в лучшем случае спешно переименовывать свою программу или сайт, а в худшем — сильно страдать материально. Кроме того, многие пользователи, занимаясь поиском вашей программы в Интернете, будут натыкаться на сайт "тезки". Скорее всего, вашу программу также не возьмут и серьезные каталоги программного обеспечения, чтобы избежать путаницы из-за множества программ с одинаковыми именами.

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

Проверка, не является ли выбранное название чьей-то зарегистрированной торговой маркой. Сделать это можно по адресу http:// www.nameprotect.com. Проверка, не используется ли название кем-то другим. Для этого можно воспользоваться одной из крупнейших поисковых систем AltaVista (http://www.altavista.com). Введите в поле образца для поиска интересующее вас слово (если вы проверяете сочетание слов, то обязательно в кавычках и только строчными буквами) и нажмите кнопку Search (Поиск). Если в результате запроса ничего не было найдено или было найдено несколько ссылок, к предмету поиска не относящихся, то этот этап можно считать пройденным. Проверка, не зарегистрирован ли соответствующий домен в зоне .com (это можно сделать, например, по адресу http://www.domainsearch.ru) (О доменах и их регистрации см. гл. 9).

Если все три этапа были пройдены успешно — выбранное вами название можно считать пригодным для использования.



Учебник по созданию shareware программ



ГЛАВА 3.

Немного об авторском праве

Авторское право на компьютерные программы — это такая обширная тема, что ей можно было бы посвятить всю эту книгу целиком. Но, учитывая специфику тематики книги, в этой главе я вкратце расскажу о наиболее актуальных для shareware-разработчика вопросах авторского права.



Какие права есть у программиста



Какие права есть у программиста

Авторские права делятся на две группы: личные неимущественные и имущественные авторские права. Личные неимущественные права, как следует из их названия, связаны с личностью автора, не могут отчуждаться или передаваться по договору. Они могут принадлежать только автору. Личные неимущественные авторские права охраняются бессрочно.

Автором программы, как уже упоминалось в предыдущем разделе, признается физическое лицо, в результате творческой деятельности которого эта программа создана. Если программа создана совместной творческой деятельностью двух и более физических лиц, то независимо от того, состоит ли программа из частей, каждая из которых имеет самостоятельное значение, или является неделимой, каждое из этих лиц признается автором такой программы. В случае если части программы имеют самостоятельное значение, каждый из авторов имеет право авторства на созданную им часть.

Автору программы принадлежат следующие личные неимущественные права:

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

Замечание 3
Замечание 3

Неотчуждаемость и непередаваемость личных неимущественных прав дает основание такому распространенному заблуждению, что лишь эти права и являются "авторскими", т. к. они могут принадлежать только автору. На самом деле объем правомочий, охватываемых понятием "авторское право", гораздо шире — в него входят и имущественные права.

Вторая группа авторских прав — имущественные. Такие права, после создания программы принадлежащие ее автору, могут передаваться по договору, и в результате этого обладателями таких прав могут становиться как частные лица, так и организации.

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

выпуск программы в свет; воспроизведение программы (полное или частичное) в любой форме, любыми способами; распространение программы. Это право в индустрии shareware нарушается чаще всего, когда кто-то начинает распространять чужие программы без разрешения правообладателя; модификацию программы для ЭВМ или базы данных, в том числе перевод программы с одного языка на другой. Это право также нарушается достаточно часто — например, когда пользователи из неанглоговорящих стран переводят интерфейс программы на свой родной язык, изменив DLL- или ЕХЕ-файлы программы. Впрочем, авторы относятся к таким самодельным модификациям своих программ лояльно (если, конечно, других изменений, например взлома защиты, нет) — ведь это только повышает популярность программы.

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

Замечание 4
Замечание 4

Среди пользователей распространено мнение, что программу в некоммерческих целях можно использовать бесплатно — это якобы разрешают статьи Закона об авторском праве и смежных правах. Это — всего лишь неудачная попытка оправдать использование пиратских копий программ "домашними" пользователями. Разрешения бесплатного использования программ в некоммерческих целях в законодательстве нет, только автор вправе решать, на каких условиях можно пользоваться его программой.

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

Использование программы осуществляется также по письменному договору с правообладателем. Естественно, при массовом распространении программ физически невозможно с каждым пользователем отдельно заключать договор. В этом случае допускается применение особого порядка заключения договоров, например путем изложения типовых условий договора на передаваемых экземплярах программ.

Таким особым порядком заключения договора на использование программы является лицензионное соглашение.



Лицензионное соглашение



Лицензионное соглашение

Лицензионное соглашение (License Agreement, также End-User License Agreement (EULA) — лицензионное соглашение для конечного пользователя), прикладываемое к копии программы, является юридическим документом, определяющим, условия, на которых владелец прав на программу разрешает ее использование. По сути дела, это двусторонний письменный договор между правообладателем и пользователем, договор, имеющий упрощенный порядок заключения: под ним не ставятся подписи его участников. Такое лицензионное соглашение считается заключенным, если пользователь устанавливает, копирует или осуществляет доступ или иным образом использует программу. Если пользователь не согласен с условиями лицензионного соглашения, то он обязан прекратить использование программы и удалить ее файлы со своего компьютера. Объем прав, предоставляемых лицензионным соглашением, называется лицензией.

Для shareware-программ, которые распространяются в виде файла инсталлятора, лицензионное соглашение обычно выполняется в виде текстового файла license.txt и/или раздела в справочной системе. Для того чтобы пользователь мог сразу ознакомиться с его условиями, и в дальнейшем лицензионное соглашение было всегда под рукой, рекомендуется:

включить показ текста лицензионного соглашения в инсталлятор программы, чтобы пользователь не смог продолжить установку, не нажимая кнопку Согласен. Большинство современных пакетов для создания инсталляционных программ позволяют организовать эту функцию; при инсталляции программы создавать папке соответствующей программы в меню Пуск не только ярлык к файлу программы, но и к файлу license.txt. Можно также включить кнопку Лицензия для просмотра лицензионного соглашения в окне О программе (About).

Замечание 5
Замечание 5

Кто-то из читателей, возможно, с иронией отнесется к тому, сколько внимания уделяется мной лицензионному соглашению. Тем не менее, лицензионное соглашение является действительно значимым юридическим документом, уважаемым не только официальными лицами, но и обыкновенными пользователями, особенно в странах Западной Европы и Северной Америки, которые являются основными легальными потребителями shareware-программ.

Большинство shareware-разработчиков особенно не утруждают себя самостоятельным составлением лицензионного соглашения к своим программам. Они просто копируют текст лицензионного соглашения к какому-нибудь известному и успешному продукту, справедливо рассудив, что условия такого соглашения выработаны профессиональными юристами, отражают сложившуюся в отрасли практику и "проверены временем". С юридической точки зрения в таком заимствовании нет ничего противозаконного: тексты юридических документов не защищаются авторским правом, и их можно копировать и изменять совершенно свободно.

Тем не менее, даже если вы копируете лицензионное соглашение из дистрибутива какого-либо другого продукта, внимательно прочитайте его текст. Возможно, он не совсем подойдет именно вашему продукту. Иногда доходит до смешного: автор программы предлагает своим пользователям перевести ее интерфейс на разные языки в обмен на бесплатную регистрацию, в лицензионном же соглашении (позаимствованном у другого shareware-продукта) написано, что перевод программы запрещен.

Учтите, что грамотное лицензионное соглашение к shareware-программе должно содержать следующие основные положения.

Во-первых, в самом начале лицензионного соглашения должен быть указан правообладатель программы, т. е. обладатель имущественных прав на нее. Так как распространение даже тех программ, написанных всего одним человеком и продвигаемых им же, все равно лучше всего производить от лица "фирмы", т. е. под псевдонимом, то в качестве правообладателя в лицензионном соглашении должно быть указано название этой "фирмы".

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

Чем, например, плохи лицензионные соглашения ко многим "коробочным" продуктам, например, той же Microsoft Windows? Из их содержания совершенно не понятно, что программа должна быть куплена в магазине за определенную сумму. Такое лицензионное соглашение уже предоставляет пользователю право на использование программы, вне зависимости от того, каким образом в его руки попал соответствующий продукт. Из-за этого, например, к ответственности за незаконное использование "коробочных" программных продуктов практически невозможно привлечь "частного" пользователя. Обвинению довольно сложно доказать, что пользователь знал, чем отличается его диск с нелицензионной версией Windows от так называемых "упрощенок", т. е. версий "коробочных" продуктов, выпускаемых в простом оформлении, без коробки и печатной документации, в виде обычного компакт-диска, который к тому же продается по цене, примерно эквивалентной стоимости пиратского диска.

Другое дело — грамотно составленное лицензионное соглашение к shareware-программе. Вот, например, выдержки из текста файла license.txt, прилагаемого к известному файловому менеджеру FAR (http://www.rarsoft.com), в переводе с английского:

"Каждый может использовать это программное обеспечение в течение тестового периода продолжительностью в 40 дней. Если вы захотите использовать FAR после этого 40-дневного тестового периода, вы ОБЯЗАНЫ зарегистрироваться.

Зарегистрировавшись, пользователь получает неэксклюзивную лицензию использовать FAR на одном компьютере в любых законных целях".

И, чтобы у пользователя не возникло ложного впечатления, что он уже зарегистрировался, например, заполнив какую-нибудь опросную форму на сайте или приняв участие в online-голосовании, сообщается:

"Чтобы зарегистрироваться, Вы должны заполнить регистрационную форму и отослать ее вместе с регистрационной платой на один из авторизованных регистрационных сайтов (см. файл far_site.txt после установки программы)".

Разработчики архиватора WinZip (http://www.winzip.com) пошли еще дальше: они составили для своей программы два отдельных лицензионных соглашения — для незарегистрированных и зарегистрированных пользователей.

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

Одно из основных прав, предоставляемых пользователю, — право использования программы. Перечислить все то, что подразумевается под словом

Неэксклюзивность лицензии означает, что права, предоставляемые по ней пользователю, правообладатель может предоставить и кому-либо еще.

"использовать", невозможно, поэтому обычно в лицензионном соглашении также перечисляют такие действия, которые пользователю с продуктом производить запрещается. Например, может быть запрет изменять, дизассемб-лировать программу, сдавать ее в аренду, распространять зарегистрированную версию и т. п. А в лицензии на архиватор RAR (http://www.rarsoft.com), например, указывается: "Вы не можете использовать, копировать, эмулировать, клонировать, сдавать в аренду, давать напрокат, продавать, изменять, декомпилировать, дизассемблировать, передавать лицензированную программу или ее часть иначе, чем это описано в данной лицензии".

Для некоторых типов программного обеспечения могут указываться и специфические виды использования. Например, лицензии на компоненты и библиотеки для разработки программ могут включать разрешение использовать эти библиотеки и компоненты для разработки различных категорий программ — в зависимости от стоимости регистрации. Например, лицензия, приобретенная за 30$, может разрешать использование продукта для разработки только freeware и shareware-программ, а лицензия за 100$ может допускать разработку любого программного обеспечения, в том числе и коммерческого ("коробочного").

Кроме этого, в лицензии должно быть указано, на каком количестве компьютеров может быть установлена зарегистрированная пользователем программа. Большинство соглашений такую информацию содержит — кроме того, уже при заполнении регистрационной формы на сайте компании-регистратора пользователю предлагается выбрать, на сколько именно компьютеров он хочет приобрести лицензию — 1,3, 5, 10, 20 и т. д. Некоторые программы не имеют лицензий на несколько компьютеров: если такую программу планируется применять, например, в локальной сети предприятия или компании, то нужно купить соответствующее количество "однопользовательских" лицензий. Однако такой порядок не всегда удобен. Например, многие пользователи спрашивают разработчиков shareware-программ: а что делать, если требуется работать с программой и на домашнем компьютере, и на переносном? Ведь было бы несправедливо заставлять пользователя приобретать еще одну лицензию на программу. Мне нравится, как этот вопрос решен в лицензионном соглашении к WinZip: "Эта копия WinZip может быть либо использована одним лицом, которое работает с данным программным обеспечением на одном или нескольких компьютерах, либо установлена на одном компьютере (рабочей станции), к которому не одновременно имеют доступ несколько человек, но не оба варианта сразу".

При определении объема прав, передаваемых пользователю, всегда существует вероятность, что составитель лицензионного соглашения забыл указать какие-либо права, которые он передает или, наоборот, не передает пользователю. Также возможна ситуация, когда по истечении некоторого времени могут появиться новые возможности использования программы, которые обусловлены закономерным развитием науки и техники. В результате этого может получиться так, что пользователь, руководствуясь принципом "что не запрещено, то разрешено", будет использовать программу способом, против которого обладатель прав обязательно возражал бы. Для того чтобы исключить возникновения такой коллизии, во многих лицензионных соглашениях записывается следующее положение: "Любые другие права, не указанные явно в настоящем Соглашении, принадлежат [наименование правообладателя]". Аналогичный смысл имеет уже процитированная выше фраза из лицензионного соглашения RAR: "Вы не можете использовать [...] лицензированную программу или ее часть иначе, чем это описано в данной лицензии".

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

К теме территориального распространения прав относится вопрос о том, что делать, если законы страны, где живет пользователь, противоречат условиям лицензионного соглашения. Думаете, это актуально только для тех нецивилизованных стран, где авторское право отсутствует, и разработчики программ никак не защищены? Вовсе нет, такая ситуация вполне возможна и в России. Например, по российскому законодательству пользователь может передать (например, продать) имеющуюся у него лицензионную копию программного продукта кому-либо еще, при условии, что он прекратит использование продукта и сотрет у себя на компьютере все соответствующие файлы. Лицензии на большинство приложений, рассчитанных на массового пользователя, это позволяют. Но не все. Например, однажды мне попалось в руки лицензионное соглашение к программе для научных расчетов, стоимость которой составляет ни много ни мало 30 000$. В нем был пункт, запрещающий передачу экземпляра программы третьим лицам без согласия компании-производителя.

Такие коллизии между условиями лицензионного соглашения и правилами, установленными законодательством, разрешаются достаточно просто: право пользования программой предоставляется только на условиях, описанных в лицензионном соглашении. Поэтому если пользователь не согласен с ним, то он обязан прекратить использование копии продукта, вернуть ее производителю и получить свои деньги обратно. Но, чтобы внести окончательную ясность, некоторые разработчики предусмотрительно записывают в лицензионном соглашении: "Если условия данного Соглашения противоречат законодательству Вашей страны, использование данного продукта запрещается".



Может ли ваш босс отнять у вас программу



Может ли ваш босс отнять у вас программу

Этот вопрос волнует многих начинающих shareware-разработчиков, так часто путь в shareware-бизнесе начинается с места штатного программиста в какой-нибудь компании, а первая shareware-программа нередко пишется в рабочее время и на оборудовании, принадлежащем работодателю.

Некоторые думают примерно так: "Да что я, зря все эти годы работал программистом за крошечную зарплату? Вон, в прошлом году закончил проект, из-за которого у меня начальник немало крови попил, босс доволен остался, даже премию в два оклада выписал... Возьму-ка я ту программу, оформлю ее как shareware и буду продавать! Ведь автор-то — я!"

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

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

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

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

Для того чтобы закрепить взаимоотношения работодателя и автора при работе по какому-либо определенному проекту, работодатель может заключить с автором договор, в котором будут подробно расписаны условия работы. Чтобы увеличить заинтересованность своего сотрудника в результатах работы по созданию программного обеспечения, работодатель может определить размер выплаты автору в качестве вознаграждения, дополнительно к заработной плате, определенного процента с дохода или прибыли, полученной работодателем от реализации данной программной разработки.

А вот если программист пишет на рабочем месте программу без ведома работодателя, в свободное от выполнения основной работы время — например, какие-то утилиты "для себя", то все авторские права, в том числе и имущественные, в данном случае сохраняются за автором. Конечно, работодатели не одобряют такую деятельность, и лучше стараться не предавать ее огласке.



Нужно ли регистрировать или патентовать свою программу



Нужно ли регистрировать или патентовать свою программу

Согласно российскому законодательству о правовой защите программ для ЭВМ, а это в первую очередь Закон Российской Федерации о правовой охране программ для электронных вычислительных машин и баз данных №3523-1 от 23 сентября 1992 года, авторское право на компьютерные программы возникает в силу их создания. Для признания и осуществления авторского права на программу не требуется депонирования, т. е. сдачи экземпляра программы на хранение, регистрации, патентования или соблюдения иных формальностей. Такой упрощенный порядок признания прав автора программы применяется для более надежной их защиты, т. к. в случае необходимости регистрации программы авторские права оставались бы без охраны, если автор по каким-либо причинам не мог зарегистрировать свою программу.

Автором программы признается физическое лицо (т. е. конкретный человек, а не организация), в результате творческой деятельности которого эта программа создана.

Замечание 1
Замечание 1

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

Для оповещения о своих правах на соответствующую программу правообладатель может поместить в ней (обычно в диалоговом окне О программе (About), справочной системы и файле readme.txt) знак охраны авторского права (Рисунок 3.1), состоящий из следующих элементов:

Буквы С в окружности или в круглых скобках. Наименования (имени) правообладателя. Года первого выпуска программы в свет.

Так как shareware-программы в основном предназначаются для иностранного рынка, то знак охраны авторского права в них обычно пишется на западный манер:

Слово "Copyright" (что означает "авторское право"). Буква С в окружности или в круглых скобках. Год первого выпуска программы в свет и через средний дефис — год выпуска последней версии программы (естественно, если они не совпадают). Наименование (имя) правообладателя. Фраза "All rights reserved".

Примечание
Примечание

Иногда, при составлении уведомления об авторских правах на русском языке, в него включают перевод фразы "All rights reserved": "Все права защищены", или дословный перевод: "Все права зарезервированы". Нужно сказать, что применение и первого, и тем более второго варианта перевода является неправильным, т. к. смысл этой фразы означает примерно следующее: "Все права принадлежат правообладателю". Всеобщая же распространенность упомянутых выше лаконичных имеющих угрожающий оттенок переводов, обусловлена, видимо, желанием обладателей авторских прав более четко донести до публики смысл знака ©.

Таким образом, типичное объявление своих авторских прав на shareware-программу выглядит так:

Copyright © 1998-2002 AVSoftware. All rights reserved.



Окно About sharewareпрограммы



Рисунок 3.1. Окно About shareware-программы с информацией об авторских правах


Замечание 2
Замечание 2

Вопреки распространенному мнению, знак © не является указанием на то, что программа где-то зарегистрирована. Это — только оповещение об авторских правах.

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

Для этого грамотно должна быть оформлена заявка (см. "Правила составления, подачи и рассмотрения заявок на официальную регистрацию программ для электронных вычислительных машин и баз данных", утвержденные Приказом РосАПО от 5 марта 1993 г. № 7п). В заявку, помимо информации о программе и ее авторе, включаются материалы, идентифицирующие программу, в том числе реферат. После одобрения заявки программа включается в Реестр программ ЭВМ, сведения о ней публикуются в официальном бюллетене Роспатента, а автору выдается свидетельство об официальной регистрации.

Государственная регистрация, несмотря на свой официальный статус и внешнее сходство с процедурой патентования, не имеет и сотой доли значения последней и не предоставляет никаких дополнительных прав. Например, тех материалов, которые предоставляются на депозитное хранение в Российском агентстве по правовой защите программ для ЭВМ и баз данных, недостаточно для проведения технической экспертизы при разрешении возможного спора об авторстве той или иной программы. Регистрация в основном нужна только тогда, когда планируется передача авторских прав на программу, и лицу, передающему права, требуется официальное подтверждение своих полномочий, чтобы предъявить его своему партнеру. Поэтому регистрация программ на практике — не очень частое явление.

А можно ли запатентовать свою программу, чтобы она была так же надежно защищена, как, например, и изобретения? Согласно п. 3 ст. 4 Патентного закона компьютерные программы и алгоритмы не относятся к числу патентоспособных изобретений, т. е. патентование программ не допускается.

Вопрос о том, нужно ли ввести в Российской Федерации патентование программ - очень дискуссионный. Большинство из российских ученых считают, что патентование компьютерных программ является нецелесообразным по многим причинам. Например, программы и так уже охраняются авторским правом, и эта охрана возникает в момент создания программы. А вот для того, чтобы защитить программу патентом (при этом о.бъем прав, представленных правообладателю, будет такой же, как и в случае защиты авторским правом), нужно заполнить заявку, соблюсти определенные формальности, заплатить относительно крупные пошлины. Если по какой-то причине срок уплаты пошлины будет пропущен, то патентная охрана прекращается. Авторское же право на программу действует в течение всей жизни автора и еще пятьдесят лет после его смерти, что является, учитывая скорость морального старения компьютерных программ, практически вечностью. Кроме того, возможны коллизии и злоупотребления, вызванные наличием дублирующих друг друга способов охраны программ для компьютеров.

Противоположная точка зрения тоже имеет сторонников, т. к. патентование программного обеспечения допускается в иностранных государствах. Однако, изучая практику по этому вопросу, существующую за рубежом, можно предположить, что патентование в обозримом будущем вряд ли коснется shareware-программ. Например, в США, Великобритании и Европе, в Европейском патентном ведомстве, участниками которого являются 19 стран Европы: Германия, Австрия, Франция, Бельгия, Испания, Италия и др., патентуются такие программы, при использовании которых уже известное аппаратное обеспечение приобретает новые свойства. Естественно, такого рода программы имеют слишком высокую стоимость разработки и достаточно специфическую область применения, чтобы быть распространяемыми на shareware-рынке.



Фрагмент файла с переводом интерфейса



Рисунок 4.4. Фрагмент файла с переводом интерфейса программы Intranet Chat на русский язык. Каждой форме соответствует отдельная секция, каждому элементу управления — отдельный ключ


В заключение я хотел бы обратить ваше внимание на излишнюю торжественность, которая сопровождает процедуру смены языка интерфейса в некоторых программах. После того, как пользователь выберет новый язык интерфейса, программа сообщает ему, что для того, чтобы сделанное изменение вступило в силу, нужно перезапустить программу. Их авторам так и хочется сказать: "Не делайте из своей программы культа!" (см. разд. "Поменьше эгоизма" данной главы). Ведь существует достаточно большое количество shareware-продуктов, язык интерфейса которых меняется прямо "на лету", без перезапуска самой программы. Все, что нужно для этого — немного времени программиста, потраченного на реализацию соответствующих функций.



Учебник по созданию shareware программ



ГЛАВА 4.

Как работает правильная программа



Инсталлятор архиватора WinZip



Рисунок 4.3. Инсталлятор архиватора WinZip запрашивает согласие пользователя на изменение системных настроек и рабочей среды, в том числе и на добавление ярлыков в меню Пуск и на Рабочий стол




Мудрое хранение настроек



Мудрое хранение настроек

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

В Windows существует два стандартных метода хранения конфигурационных данных приложений: INI-файлы и системный реестр.

Примечание
Примечание

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

INI-файлы были основным способом хранения параметров программ еще в Windows 3.1. Системный реестр, также существовавший в ней, почти не использовался (Windows NT 3.51, активно работавшая с реестром, была распространена не очень широко). Вследствие этого программисты писали свои программы так, чтобы они сохраняли свои конфигурационные данные только в INI-файлах.

С выходом Windows 95 ситуация изменилась. Корпорация Microsoft провозгласила системный реестр основным хранилищем настроек не только самой операционной системы, но и всех ее приложений. Соответственно, разработчикам программ для Windows рекомендовалось использовать для сохранения параметров своих продуктов системный реестр, а не INI-файлы.

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

Основное достоинство реестра, по мнению некоторых экспертов, — относительная сложность повреждения информации, хранящейся в нем, из-за действий неопытных пользователей. Да, конечно, в каталоге Windows есть утилита regedit.exe, с помощью которой можно делать с реестром почти все, что угодно, однако начинающему пользователю до нее добраться гораздо сложнее, чем до INI-файла, для модификации которого достаточно просто дважды щелкнуть по нему мышью. Кроме того, Windows автоматически создает резервные копии системного реестра, и в случае его неосторожного повреждения может самостоятельно восстановить его. Если же пользователь случайно удалит или переименует INI-файл, то никто, кроме самой программы, не позаботится о ее нормальном функционировании.

На практике INI-файлы вовсе не так беспомощны. Функции чтения INI-файлов в современных системах программирования устроены таким образом, что удаление или некорректная модификация INI-файлов почти всегда не оказывает какого-либо отрицательного влияния на работу программы. А уж если включить в нее несколько строк кода, с помощью которых будет проверяться корректность чтения параметров из INI-файлов, то надежности работы программы на этом участке ничего не будет угрожать.

В то же время INI-файлы как средство хранения настроек программы обладают значительными преимуществами.

Во-первых, это касается скорости чтения и записи параметров. По мере того, как пользователь устанавливает все новые и новые программы, файл системного реестра на его компьютере разрастается до размера в несколько мегабайтов. Конечно, доступ к настройкам, хранящимся в INI-файле, объем которого обычно составляет несколько килобайтов, осуществляется гораздо быстрее. А т. к. чтение и запись настроек во время сеанса работы программы происходит довольно часто, разница в скорости может сэкономить немало времени.

Замечание 1
Замечание 1

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

Во-вторых, программы, хранящие свои конфигурационные данные в INI-файле, а не в реестре, гораздо удобнее в использовании, если на компьютере присутствуют несколько версий Windows — например, большинство пользователей, устанавливая Windows 2000, сохраняют возможность загрузки Windows 98 или Windows ME — как говорится, "на всякий случай". Так как любая версия Windows работает со своим файлом системного реестра, то под каждой версией Windows программу, использующую реестр, нужно настраивать отдельно, что сильно раздражает. А вот если параметры хранятся в INI-файлах, то пользователь даже и не будет замечать, что в прошлый раз он работал с этой программой под другой версией Windows.

Описанное здесь преимущество INI-файлов также способно сэкономить много времени и при переустановках операционной системы, которые, как вы знаете, не редкость (некоторые даже рекомендуют переустанавливать систему регулярно, раз в два-три месяца — так сказать, для профилактики). После того как Windows инсталлирована заново, программы, хранящие свои конфигурационные данные в INI-файлах, даже не нужно переустанавливать и настраивать (если, конечно, они не копируют в каталог Windows\System собственные DLL-библиотеки). Это особенно полезно, если в настройках программы хранится большое количество важной информации. Например, файловый менеджер FAR размещает в системном реестре, помимо параметров собственной работы, логины и пароли доступа к FTP-сайтам. Если об этом забыть и не скопировать настройки программы из реестра при помощи поставляемого с FAR командного файла SaveSettings.bat, то при переустановке Windows вся эта информация будет просто потеряна.

А вот что в системном реестре организовано лучше — это работа с конфигурациями для разных пользователей. Достаточно просто сохранять параметры работы программы не в ветви HKEY_LOCAL_MACHINE, а в HKEY_CURRENT_USER, и Windows при старте будет автоматически загружать нужный набор параметров для соответствующего пользователя.

Для INI-файлов такого стандартного средства не существует. Однако можно легко решить эту проблему. Например, с помощью функций Windows API можно получать логин, под которым вошел в систему текущий пользователь, и все настройки для него хранить в файле вида <имя_пользователя>.ini. А если ваша программа функционально достаточно сложна, то можно написать для нее целый менеджер пользовательских профилей, наподобие входящего в Windows 2000 — опытные пользователи наверняка это оценят и будут уважать вашу программу еще больше.



Не делайте из программы культа



Не делайте из программы культа

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

Я имею в виду в первую очередь такую, казалось бы, мелочь, как так называемый splash screen ("всплывающий экран"), т. е. заставку, появляющуюся при старте программы. Конечно, разговор об оформлении продукта больше подходит для гл. 5 "Пользовательский интерфейс", однако сплэш-скрин — характерный пример не только неправильного подхода к проектированию интерфейса программы, но и неправильного подхода к созданию всей программы в целом.

В больших продуктах вроде Microsoft Windows 2000 или Adobe Photoshop, запуск которых даже на мощных компьютерах длится заметное время, стартовая заставка имеет вполне практическую цель: развлекать пользователя во время запуска и показывать ход процесса загрузки приложения. Вместе с тем в больших программах сплэш-скрин не держится на экране ни на мгновение больше необходимого. Например, Microsoft Word 2000 грузится на моем новом компьютере за полторы секунды, и я даже не могу толком рассмотреть промелькнувшую на экране заставку. Однако многих авторов небольших по сравнению с "монстрами" shareware-программ такая ситуация, когда пользователь не успевает рассмотреть на заставке название программы, ее версию, имя автора и адрес сайта, не устраивает. И они специально замедляют загрузку программы, вставляя паузу в несколько секунд, и при этом не предоставляют никакой возможности отключить показ заставки!

Однако нужно обратить внимание на то, что заставка, висящая несколько секунд при старте программы, является мощнейшим источником раздражения пользователей. Не случайно одним из стандартных способов стимуляции пользователей регистрировать shareware-программы является показ при старте приложения экрана с напоминанием о необходимости регистрации, которое нельзя закрыть в течение нескольких секунд (так называемый nag screen). (См. гл. 6.)

Совершенно недопустимым, на мой взгляд, является принудительный показ стартовых заставок в программах, которые предназначены для их ежедневного запуска в начале работы компьютера — антивирусов, часов, утилит управления устройствами компьютера и т. п. Ежедневное созерцание появляющихся один за другим экранов с логотипами программ может вывести из себя кого угодно. Например, я отказался от использования прилагавшейся к моей новой материнской плате утилиты мониторинга ASUS Probe именно из-за надоедливого сплэш-скрина. То же я мог бы сказать и об антивирусе Antiviral Toolkit Pro, чью заставку с раскрытым зонтом я уже терпеть не могу, если бы без эффективной антивирусной защиты можно было обойтись. И зачем только разработчики обрекают легальных пользователей, купивших их программу, на такие страдания?

Вред сплэш-скринов, замедляющих запуск приложений, как глобального дефекта программы, а не просто неудачного элемента интерфейса, подчеркивает, например, Лу Гринзоу, авторитетный специалист в области разработки приложений. Он также обращает внимание на то, что каждая программа, показывающая пользователю стартовую заставку, обязательно должна иметь возможность ее отключения1.



Не трогайте системные файлы и настройки



Не трогайте системные файлы и настройки

В первую очередь нужно обратить внимание на недопустимость изменения системных файлов и пользовательских настроек без разрешения пользователя. Вам наверняка встречались программы, уже во время установки которых становится ясно: их авторы не допускают и мысли о том, что на компьютере пользователя будут работать какие-либо иные приложения. Поведение программ, считающих себя "пупом всей системы", очень разнообразно. Они изменяют файлы autoexec.bat и config.sys, заменяют системные DLL, позволяют устанавливать себя только в одну папку, причем часто — исключительно в корневой каталог диска С:, добавляют ярлыки в верхний уровень меню Пуск (а не в подменю Программы) и на Рабочий стол. Изменяют ассоциации файлов, делают стартовой страницей установленного в системе браузера домашнюю страницу разработчика программы, при каждом запуске добавляют себя в секцию автозагрузки и многое другое (Рисунок 4.2). При всем разнообразии поведения их объединяет одно: все это они проделывают, даже не спросив разрешения пользователя.



Относитесь к пользователю с уважением



Относитесь к пользователю с уважением

При работе с некоторыми программами никак не удается отделаться от ощущения, что их авторы делают тебе одолжение — слишком уж лаконичны и порой даже грубы сообщения, выдаваемые их программами. Характерный пример — сообщение, с которым у многих пользователей ассоциируется операционная система Microsoft Windows и которое стало объектом большого количества шуток и анекдотов: "Программа выполнила недопустимую операцию и будет закрыта. Если ошибка будет повторяться, обратитесь к разработчику".

У вашей программы гораздо больше шансов понравиться потенциальным покупателям и обойти своих конкурентов, если вы будете относиться к своим пользователям с уважением и элементарной вежливостью. Для этого нужно не так уж много:

делайте сообщения, выдаваемые вашей программой, более-менее информативными; сопровождайте сообщения об ошибках словом "извините", показывая, что вам жаль, что ваша программа, даже если в данном случае и не по своей вине, вынуждена расстроить пользователя; если от пользователя требуется совершить какие-то действия, то не забудьте о слове "пожалуйста", чтобы ваше требование выглядело просьбой, а не приказом. А если можно предположить, что выполнение вашей просьбы для пользователя будет сопряжено с ощутимыми затратами времени или денежных средств (например, в случае необходимости скачать из Интернета какой-либо дополнительный компонент), также скажите "извините", чтобы выразить свое сожаление по этому поводу.

Многие российские разработчики shareware следуют этому -правилу буквально во всем. Например, даже если пользователь в окне регистрации программы вводит код, приобретенный ранее по украденному номеру кредитной карточки, то в ответ выводится вежливое сообщение о причинах того, почему программа не может быть зарегистрирована, и рассказывается о том, как приобрести программу легальным путем. Поддаться порыву обозвать пользователя вором и процитировать ему Уголовный кодекс было бы неразумно, т. к. пользователь, возможно, просто не знает, как нужно регистрировать программы и думает, что случайно попавшийся ему в Интернете ключ является вполне законным средством. Если вежливо объяснить ему, в чем дело — не исключено, что он оплатит регистрацию (в практике такие случаи не редкость), а в дальнейшем будет рекомендовать программу всем своим друзьям и знакомым. А вот если он будет оскорблен — еще одного пользователя можно будет считать потерянным.

Да, вежливость shareware-авторов чаще всего обусловлена не альтруизмом, а желанием заработать больше денег. Однако пользователей это не особенно волнует, и они охотно оплачивают регистрации программ, работа с которыми приносит удовольствие.



Поменьше эгоизма



Поменьше эгоизма

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

Естественно, пользовательская аудитория таких эгоистичных программ не отличается многочисленностью. Ведь на рынке существует большое количество программных продуктов, авторы которых руководствуются принципом "Пользователь всегда прав". Итак, какие правила нужно соблюдать для того, чтобы у пользователей остались наилучшие впечатления от работы с вашей программой?



Продуманная локализация



Продуманная локализация

Рано или поздно любой shareware-разработчик, размышляя о том, как увеличить аудиторию своей программы, решает перевести интерфейс продукта, кроме английского, и на другие иностранные языки. О том, как это может повлиять на успех shareware-проекта будет рассказано в гл. 10, а сейчас я хотел бы поговорить о технических аспектах реализации этой задачи.

Классический пример нерационально выполненной локализации - это операционная система Windows, версии которой для разных языков не только откомпилированы заново, но и имеют различия на уровне ядра. Куда проще было бы и для самой Microsoft, и для пользователей, по крайней мере, европейских и латиноамериканских стран, сделать одну международную версию на базе существующей паневропейской редакции. Включить в эту версию поддержку национальных раскладок клавиатуры и кодировок текста и приложить к ней файлы со списком всех текстовых строк на разных языках, которые можно было бы подключать во время загрузки системы. Это облегчило бы жизнь, кстати, и shareware-разработчиков, которым тогда не приходилось бы, например, оставлять в конференциях такие полные отчаяния сообщения:

"Люди, есть ли у кого-нибудь Windows 98 Second Edition 4.10.222.A с немецкой локализацией, причем именно с тремя двойками? Очень срочно нужно, наша программа у клиента глючит под ней, а у нас именно такой нет. Не дайте погибнуть сайт-лицензии! (дорогостоящая лицензия на большое число пользователей — С.Ж.)"

Конечно, реализовывать локализацию своей программы так, как это делает Microsoft, было бы неразумно. Можно убить огромное количество времени, компилируя версию для каждого языка, создавая для них отдельные инсталляторы и закачивая их на сервер провайдера. А уж о том, что бы зарегистрировать все национальные версии в интернет-каталогах программного обеспечения, не может быть и речи.

Конечно, shareware-разработчики подходят к локализации своих программ более рационально. Строки, используемые в программе — сообщения, меню, подписи к элементам управления, подсказки и пр., хранятся в отдельных файлах. Эти файлы обычно называются так же, как и язык, на котором выполнены хранимые в нем строки, а чтобы отличать их от других файлов данных, им присваивают какое-нибудь специальное расширение — например, Ing (от англ. Language — язык).

Немаловажный вопрос — какую структуру должны иметь языковые файлы. Некоторые программисты используют для хранения строк двоичные файлы, например, DLL. Однако в этом случае появление переводов интерфейса программ на иностранные языки только замедляется (а это как раз и не входит в интересы разработчика). Дело в том, что основную часть переводов будут делать пользователи этих же программ, являющиеся жителями соответствующих стран, например, в обмен на бесплатную регистрацию. А ведь далеко не каждый пользователь обладает соответствующей квалификацией и программными средствами, позволяющими самостоятельно отредактировать ресурсы, хранящиеся в двоичных файлах.

Конечно, ради перевода интерфейса известных и популярных программ, например WinZip, Teleport Pro, Opera, многие готовы как следует покопаться в ресурсах DLL. Например, в каталоге SoftList опубликовано довольно большое количество "патчей" для перевода интерфейса многих популярных программ на русский язык. Но, заметьте, в основном переводят именно известные программы, которые являются мировыми бестселлерами.

Скромные shareware-программы тоже становятся объектом самодеятельного творчества благодарных пользователей. Например, один российский разработчик рассказывал, что его программу китайцы самостоятельно перевели на китайский язык — сам он узнал об этом случайно, анализируя статистику посещений своего сайта. При этом пользователем из Китая была проделана серьезная хакерская работа, потому что исходный ЕХЕ-файл программы был специальным образом упакован, а ресурсы — зашифрованы. Но, что удивительно — все shareware-ограничения были оставлены, ссылки на страницу регистрации и сайт разработчика также не были изменены. Но такие "подвиги" пользователей относительно "середнячков" shareware-рынка — скорее исключение, чем правило.

Гораздо выгоднее хранить варианты перевода интерфейса в обычных текстовых файлах, имеющих формат INI-файлов. Такие файлы пользователи легко могут редактировать сами. Достаточно приложить к программе образец языкового файла с английскими строками — и любой, кто имеет навыки работы с текстовым редактором, может сделать на основе этого образца такой же файл для своего родного языка.

Замечание 2
Замечание 2

Учтите, что отдельный файл с переводом интерфейса на английский язык — это не более чем образец для новых переводов, непосредственно программа не должна этот файл использовать. Английский вариант интерфейса должен быть жестко "прошит" в программу — это обеспечит ее корректную работу в том случае, если какие-то строки в языковом файле (или даже сам этот файл) отсутствуют.

Существуют даже специальные ActiveX- и VCL-компоненты, предназначенные для реализации многоязычного интерфейса программы. Но, я думаю, что пользоваться ими особого смысла нет. Включение таких компонентов в проект лишь неоправданно увеличит его размер, ведь с технической точки зрения реализация интерфейса на разных языках — достаточно тривиальная задача. Стандартные функции, имеющиеся в современных системах программирования, а также их "основа" -- функции API Windows замечательно справляются с чтением секций и ключей INI-файлов, не доставляя разработчику никаких хлопот.

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

Подписи к элементам управления, находящимся на этой форме, соответствует ключ, который называется так же, как и элемент управления (Рисунок 4.4). В результате при открытии формы запускается цикл, в котором опрашиваются все элементы управления, расположенные на форме, и соответствующие им текстовые строки считываются из языкового файла.



Программа WinZip поместила свои



Рисунок 4.2. Программа WinZip поместила свои ярлыки в верхний уровень меню Пуск без всякого разрешения пользователя


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

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

Некоторые разработчики полагают, что иногда спрашивать разрешение пользователя на модификацию каких-либо системных настроек не требуется. Например, если программа хранит свои данные в файлах не с каким-либо распространенным расширением вроде txt или html, а с экзотическим, предположим, fgh или hjk, то можно безбоязненно зарегистрировать их в системе на собственную программу, не запрашивая разрешение пользователя. Однако программных продуктов на рынке очень много, и вполне может оказаться, что избранные разработчиком расширения fgh или hjk уже используются другой программой. Более того, пользователь предпочитает открывать эти файлы именно с ее помощью. Это один из примеров того, что программа и ее инсталлятор должны обязательно запрашивать разрешение пользователя на замену системных файлов, модификацию настроек операционной системы и рабочего окружения пользователя (Рисунок 4.3).



Размер имеет значение



Размер имеет значение

После прочтения разд. "Delphi, Basic или С" гл. 2, где я уделил повышенное внимание размеру исполняемых файлов, генерируемых компиляторами современных систем программирования, некоторые из читателей, возможно, решили, что я являюсь сторонником тотального минимализма и рекомендую оптимизировать каждый байт кода. Нет, это не так — затраты времени и сил на такую кропотливую работу могли окупиться разве что лет десять назад, когда ни один серьезный программист не мог обойтись без знания ассемблера, а 64 Кбайт (да, вы прочитали правильно, килобайтов, а не мегабайтов) оперативной памяти казались огромным пространством. Я считаю, что размер файла программы должен быть не минимальным, а адекватным ее возможностям, т. е. соответствовать набору функций, предоставляемых пользователю.

"Стоп!" - скажут опытные программисты. — Не имеет значения, каков размер файла программы, важно, каков размер данных, используемых программой!" Абсолютно верно. Программа, ЕХЕ-файл которой имеет объем, например, всего 300 Кбайт, будучи запущенной, займет в оперативной памяти в несколько раз больше места. Дополнительное пространство в памяти "отъедают" переменные и их массивы, используемые программой, но больше всего занятых ресурсов приходится на всевозможные DLL-библиотеки, ведь для реализации почти любой функциональной возможности у Windows заготовлена специальная DLL (табл. 4.1).

Все эти DLL совместно используются разными Windows-приложениями, и когда ваша программа запускается, чаще всего большинство нужных библиотек уже "сидят" в памяти. Именно поэтому стандартный Диспетчер задач в Windows NT и Windows 2000 показывает какие-то дикие цифры — по несколько мегабайтов занимаемой оперативной памяти на каждый запущенный процесс, в том числе и на крошечные вспомогательные утилиты.

Таблица 4.1. Назначение DLL-библиотек в Windows 2000

Назначение библиотеки

Название файла

Объем файла, Кбайт

Работа с системным реестром Windows

advapi32.dll

64

Элементы управления Windows 9x

comctl32.dll

564

Стандартные диалоги (Открыть файл, Печать т. п.)

comdlg32.dll

172

Поддержка мультимедиа

devcon32.dll

352

Графическая библиотека Windows

gdi32.dll

152

Функции ядра Windows

kernel32.dll

460

Поддержка MFC (для приложений на VC++)

mfc42.dll

972

Сетевые функции

mpr.dll

56

Менеджер аудиосжатия

msacm32.dll

100

Поддержка WebCheck

msidle.dll

28

Runtime-библиотека Visual C++

msvcrt.dll

260

Сетевые функции

netapi32.dll

20

Поддержка NT API

ntdll.dll

20

Поддержка ActiveX

ole32.dll oleaut32.dll

772 582

Поддержка RPC

rpcltc1.dll rpcrt4.dll

28 332

Функции оболочки Windows

shell32.dll

1368

Поддержка меню, окон и т. п.

user32.dll

68

Поддержка мультимедиа

winmm.dll

64

Однако для shareware размер именно файла программы, а особенно ее дистрибутива, имеет очень большое значение.

В первую очередь это обусловлено, конечно же, тем, что основной средой для распространения программ является Интернет. Несмотря на то, что пропускная способность каналов связи постоянно растет, около половины пользователей испытывают трудности с загрузкой файлов объемом более чем 1 Мбайт. Да-да, примерно 50% пользователей прекращают процесс закачки больших файлов, не дождавшись его завершения (по мере того, как увеличивается размер файла, который требуется загрузить, процент неудачных закачек, естественно, растет). Виной тому, конечно, не зловредность пользователей, а то, что многие из них не применяют специальные программы для загрузки файлов типа ReGet, GetRight, GolZilla и пр., а предпочитают скачивать даже многомегабайтовые файлы, просто щелкая мышью по ссылкам в браузере. Вследствие этого имеет смысл поместить на странице загрузки файла программы рекомендацию все-таки использовать down-load-менеджеры для закачки (Рисунок 4.1).



Рекомендация применения downloadменеджеров



Рисунок 4.1. Рекомендация применения download-менеджеров в разделе "Download" сайта ActualSystem.com


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

Очень важно и то, что большой размер файла программы может сильно ударить по карману... самого автора программы. Видите ли, для того чтобы выйти на более-менее приличный уровень продаж, нужно добиться, чтобы вашу программу скачивало как можно больше людей — ведь, по статистике, регистрацию программного продукта оплачивают не более 1—2% из загрузивших его пользователей. Предположим, что вашу программу скачивают 100 человек в день, что позволяет надеяться на скромный уровень в 1—2 продажи в день, а объем ее дистрибутива составляет 2 Мбайт. В этом случае ежедневный исходящий трафик с вашего сайта составит 200 Мбайт, а месячный -- 6 Гбайт. В то же время, большинство хостинг-провайдеров включают в тарифы за 10—20$ в месяц ограничение месячного трафика на уровне 3—5 Гбайт. Поэтому вам придется переходить на более дорогостоящий тариф, что будет довольно разорительно в случае, если ваши прогнозы на количество регистрации не оправдаются, — например, большую часть из этих ста закачек могут приходиться на долю уже зарегистрированных пользователей, которые имеют право на бесплатное получение будущих версий программы.

Размер файла программы, а также ее дистрибутива, является очень важным параметром, по которому пользователи оценивают качество программы. Это в первую очередь относится к вспомогательным утилитам, которые в полном смысле должны являться "небольшими" — как по функциональным возможностям, так и по размеру файла. Непомерно "раздутые" программы вызывают только отрицательные эмоции, в том числе и откровенные насмешки и издевательства. Прочитайте, например, форменную "порку", которую устроили на сайте "BloatBusters" программе Solar Winds DNS Resolver no адресу radsoft.net/bloatbusters/sw_dns.htm. Скромная по набору функций утилита, которая всего лишь возвращает имя компьютера по его IP-адресу

(и наоборот), имеет дистрибутив объемом в 3,5 Мбайт(!). Авторы обзора тут же написали похожую программу, ZIP-архив которой занимает на диске компьютера... 9 Кбайт.

Для утилит важен еще и такой аспект. Многие из них предназначаются для постоянной работы на компьютере пользователя. Как правило, таких утилит (их называют резидентными) у каждого пользователя несколько. Это — антивирус, программы для управления звуковой картой и видеоадаптером, часы, утилита системного мониторинга, программа проверки почты и т. п. Естественно, неразумно выделять каждой из них даже по 2 Мбайт оперативной памяти — так никаких новейших модулей RAM не напасешься. Поэтому если утилита, которую решил попробовать пользователь, имеет ЕХЕ-файл размером в мегабайт или два, то это уже наводит на грустные мысли.

К сожалению, многие из авторов не осознают того, что пользователи сегодня, когда shareware-рынок перенасыщен программами, гораздо более разборчивы, чем хотя бы пару лет назад, когда хороших продуктов было не так много. Например, автор одной из программ для хранения паролей в анонсе своего продукта восторженно пишет (цитирую в переводе с английского): "Она такая маленькая, — 2,1 Мбайт, — что требуется всего 4 минуты на скорости 56 Кбайт, чтобы скачать ее!". Я не знаю, чего такого можно было написать в такой дистрибутив, если аналогичная утилита, написанная на Delphi, в архиве будет иметь объем, в десять раз меньший. Вероятно, всему виной (как и в случае с упомянутым выше 3,5-мегабайтовым DNS Resolver) громоздкие DLL-библиотеки и ActiveX-элементы.

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

Могу привести еще один пример большого значения размера программы для пользователей. Одно время, в списках программ на SoftList.ru не указывались размеры их дистрибутивов — эта информация была только на страницах с подробными данными о конкретной программе (откуда можно было и скачать ее). Посетители каталога буквально завалили меня просьбами указывать размер файла программ и в списках — чтобы не тратить времени зря, переходя на страницы с подробной информацией о программе и тут же возвращаясь обратно, едва только увидев, сколько мегабайтов им предстоит скачать. То есть продукты, размер которых был слишком велик, пользователей уже не интересовали.

Как же можно уменьшить размер файлов программы? Это тема для специализированных справочников по программированию. Тем не менее, я хотел бы обратить внимание на очень распространенную ошибку shareware-разработчиков: использование слишком громоздких компонентов — как ActiveX, так и VCL. Постарайтесь не брать для своего проекта первый найденный в Интернете компонент, а поищите и попробуйте его альтернативы.

Например, компания TurboPower (http://www.turbopower.com) распространяет два очень похожих пакета компонентов для Delphi и C++ Builder -SysTools и Orpheus. Компоненты из пакета Orpheus используют один общий, довольно большой файл заголовков и описаний процедур и функций. Поэтому добавление одного-единственного компонента из этого пакета сразу увеличивает ЕХЕ-файл программы на 500 Кбайт. А вот библиотека SysTools организована более рационально, и добавление компонентов из этого пакета совсем немного увеличивает исполняемый файл проекта.

Но, как это ни странно, небольшой размер программы иногда может и отрицательно сказаться на ее продвижении. Например, один из российских разработчиков shareware, распространявший свой продукт по цене в 1000$, рассказывал, что фирма-регистратор, услугами которой он хотел воспользоваться для приема платежей, отнеслась к нему с большим подозрением — и все из-за того, что дистрибутив его программы был размером всего 650 Кбайт. Другой пример — сложные по своему назначению программы, такие как графические редакторы, инженерные пакеты, мультимедийные продукты: здесь пользователи больше доверяют объемным, в несколько мегабайтов, программам, т. к., по распространенному мнению (которое, впрочем, не лишено смысла), мощный пакет не может быть объемом всего в несколько сотен килобайтов. Именно поэтому я и говорю не о том, что программа обязательно должна быть как можно более компактной, а о том, что ее размер должен быть адекватным ее функциональным возможностям.