Выбрать главу

Инструменты программирования. Суперсложные системы программирования, профессиональные компиляторы и многое другое. Для программистов это – инструмент номер один, а вот домашнему пользователю чаще всего они не нужны. Хотя многие современные системы программирования настолько просты и «визуальны», что позволяют создавать приложения, конструируя их из готовых блоков.

Системы автоматизированного проектирования(CAD). Эти программы (например, AutoCAD) тоже частенько ставят на домашние машины – по незнанию, видимо, ибо рисование профессиональных блок-схем занятие трудное и на игру не похожее.

Математические и научные программы – вотчина ученых и продвинутых инженеров.

Коммерческий статус программ

Помимо тематического деления программ существует еще одна классификация. Связана она со способом распространения программы и теми условиями, приняв которые, потребитель получает возможность оной воспользоваться. Ну и, разумеется, с ее стоимостью... То, что программы бывают платные и бесплатные, знает каждый пользователь. Но мало кто догадывается, сколько именно модификаций «платного» и «бесплатного» напридумывали хитрые авторы программ!

Бесплатное программное обеспечение (freeware). Первоначально по принципу freeware распространялись небольшие утилиты или бесплатные дополнения к известным коммерческим пакетам. Однако сегодня по принципу freeware иногда распространяются и довольно серьезные пакеты известных производителей, включая Microsoft.

К freeware программам иногда относят и приложения, распространяющиеся по принципу OpenSource (открытых исходников) – например, операционную систему Linux и приложения для нее. Однако это не совсем верно: постулаты OpenSource подразумевают возможность изменения кода программы самим пользователем (на что идут далеко не все авторы freeware-программ). А распространение таких продуктов не обязательно должно быть бесплатным – так, в мире существует множество «коммерческих» версий той же Linux. Однако чаще всего freeware и OpenSource идут рука об руку.

Условно-бесплатное программное обеспечение (shareware). Самая массовая группа программ, в которую входят практически все утилиты, а часто – и весьма серьезные, умелые программные пакеты. Как правило, shareware-программы распространяются в виде полнофункциональных версий, ограниченных либо по времени работы, либо по количеству запусков. По истечении отведенного вам на тестирование срока (как правило – от 15 до 45 дней) программа либо просто перестает запускаться, либо утрачивает часть своих функций, превращаясь в менее функциональную freeware-версию. В самом благоприятном для вас случае программа полностью сохраняет работоспособность, однако время от времени надоедает вам настоятельными призывами заплатить – так поступает, например, популярный файловый менеджер Windows Commander.

Если вы все-таки решитесь приобрести программу и перечислите на счет автора некую сумму, то в обмен вы получите специальный цифровой код (ключ), который необходимо ввести в специальное регистрационное окошко программы. В качестве варианта может быть выслан специальный «ключевой» файл, который необходимо скопировать в папку с установленной программой.

«Рекламно-оплачиваемые» программы (adware). Расцвет этого вида программ пришелся на конец 90-х годов – сегодня их популярность значительно снизилась. Принцип adware подразумевает, что платит за программу не пользователь, а рекламодатель, которому взамен дается пространство для размещения информации о своих продуктах – в виде баннеров или всплывающих окошек. А пользователи вынуждены эту рекламу смотреть, а иногда – еще и щелкают по особо понравившимся картинкам, отправляясь прямиком на сайт фирмы-рекламодателя... Отдача от этих путешествий не слишком велика, однако и пара клиентов может принести, например, интернет-магазину сотни долларов прибыли, 10– 15 из которых он с охотой выплатит программисту.

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

Коммерческое программное обеспечение (commercialware). За эти программы всегда надо платить, и чаще всего – довольно значительные суммы. Сюда относятся все крупные программные пакеты известных производителей и ряд утилит. Программы этого типа можно приобрести в красивых коробках или без оных в любом компьютерном супермаркете. Однако сегодня все чаще и чаще программные продукты продаются через сеть Интернет. Купить их можно либо на сайтах производителей программ, либо – в больших интернет-магазинах программного обеспечения. Получить товар вы можете двумя способами. Большие программы в виде тех самых красочных коробок с компакт-диском или документацией доставляются вам на дом курьерской службой или по почте, а мелкие программы вы можете скопировать прямо с сайта Интернет. При этом, как и в случае с shareware-программами, вы получаете урезанную (Demo) или ограниченную по времени работы (Trial) версию. Trial, как и shareware-программу, можно превратить в полнофункциональный вариант с помощью регистрации, а вот с демоверсией такой фокус не пройдет, поскольку в ней некоторые функции отсутствуют изначально. Например, в текстовом или графическом редакторе вы не сможете сохранить внесенные вами изменения.

OEM-версии. Специальные варианты обычных коммерческих программ, поставляющиеся по сниженной цене вместе с готовыми компьютерами. Например, стоимость Windows в OEM-поставке может быть в несколько раз дешевле «коробочной» версии.

«Условно-платные» программы (donation ware). Автор такой программы намекает, что, в принципе, он не отказался бы от пары-другой монет за свое детище, но платить он никого не принуждает и функциональность программы не ограничивает. Появится желание – заплатите, не появится... Ну что ж, на нет и суда нет! Понятно, что таких «альтруистов наполовину» среди программистов немного. А честных плательщиков среди пользователей – и того меньше.

«Открыточные» версии (cardware). Весьма экзотический вид программ, в качестве вознаграждения за пользование которыми вас просят отправить автору красивую почтовую открытку.

Версии программ

Программы, как известно, пишут живые люди. А люди имеют привычку ошибаться. А в программах ошибки встречаются, пожалуй, чаще, чем во всех остальных видах человеческой деятельности вместе взятых. Причин для этого много, но основная – сложность современных компьютеров: ни один человек не может отследить все команды, выполняемые компьютером при работе программы, – уж очень там много всего задействовано. Я даже не говорю о диком разнообразии всевозможных железок, настроек и установленных программ, с которым встречается творение любого программиста, вышедшее «в свет». Ну и, разумеется, про ошибки самого программиста – как в алгоритме, так и в его реализации – тоже забывать не стоит...

Для того чтобы понять, откуда берутся ошибки реализации, можно взять типичный пример – деление на ноль. Допустим, вы решили написать программу, которая будет считать среднюю скорость роста человека (не знаю зачем, но допустим). Пользователь вводит дату своего рождения и свой рост, а программа вычитает из сегодняшнего числа дату рождения, подсчитывает ваш возраст в днях и делит рост на число ваших дней. Такая программа будет прекрасно работать для вас и ваших родственников, но если вы ее «выпустите в люди», то обязательно найдется кто-то, кто в качестве дня рождения введет сегодняшнее число. И готово – возраст ноль дней, попытка деления на ноль и программа вылетает с ошибкой. Разумеется, это самый простой пример. В реальной жизни все сложнее и зависит не только от данных, вводимых пользователем (которые можно, а точнее, нужно проверять перед использованием в программе), но и от установленных системных файлов, драйверов и кучи других вещей, предсказать которые невозможно, а их влияние на работоспособность программы – совсем не очевидно. Как правило, ошибки «первого типа» вычисляются и исправляются очень легко, в течение 10 минут. «Второй тип» – сложнее, но он затрагивает относительно небольшое число пользователей. Обычно исправление подобных ошибок приводит к изменению второй или третьей цифры в номере версии (или же, автор вообще не меняет версию, а просто выкладывает обновленный файл).