Коммерческий статус программ
Помимо тематического деления программ существует еще одна классификация. Связана она со способом распространения программы и теми условиями, приняв которые, потребитель получает возможность оной воспользоваться. Ну и, разумеется, с ее стоимостью… То, что программы бывают платные и бесплатные, знает каждый пользователь. Но мало кто догадывается, сколько именно модификаций "платного" и "бесплатного" напридумывали хитрые авторы программ!
Бесплатное программное обеспечение (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 программы практически поставлены вне закона.
Коммерческое программное обеспечение (commercial ware). За эти программы всегда надо платить, и чаще всего, довольно значительные суммы. Сюда относятся все крупные программные пакеты известных производителей и ряд утилит. Программы этого типа можно приобрести в красивых коробках или без оных в любом компьютерном супермаркете. Однако сегодня все чаще и чаще программные продукты продаются через сеть Интернет. Купить их можно либо на сайтах производителей программ, либо в больших интернет-магазинах программного обеспечения. Получить товар вы можете двумя способами. Большие программы в виде тех самых красочных коробок с компакт-диском или документацией доставляются вам на дом курьерской службой или по почте, а мелкие программы вы можете скопировать прямо с сайта Интернет.
При этом, как и в случае с shareware-программами, вы получаете урезанную (Demo) или ограниченную по времени работы (Trial) версию. trial, как и shareware-программу, можно превратить в полнофункциональный вариант с помощью регистрации, а вот с демоверсией такой фокус не пройдет, поскольку в ней некоторые функции отсутствуют изначально. Например, в текстовом или графическом редакторе вы не сможете сохранить внесенные вами изменения.
OEM-версии. Специальные варианты обычных коммерческих программ, поставляющиеся по сниженной цене вместе с готовыми компьютерами. Например, стоимость Windows в OEM-поставке может быть в несколько раз дешевле "коробочной" версии.
"Условно-платные" программы (donation ware). Автор такой программы намекает, что, в принципе, он не отказался бы от пары-другой монет за свое детище, но платить он никого не принуждает и функциональность программы не ограничивает. Появится желание – заплатите, не появится… Ну что ж, на нет и суда нет! Понятно, что таких "альтруистов наполовину" среди программистов немного. А честных плательщиков среди пользователей – и того меньше.
"Открыточные" версии (cardware). Весьма экзотический вид программ, в качестве вознаграждения за пользование которыми вас просят отправить автору красивую почтовую открытку.
Версии программ
Программы, как известно, пишут живые люди. А люди имеют привычку ошибаться. А в программах ошибки встречаются, пожалуй, чаще, чем во всех остальных видах человеческой деятельности вместе взятых. Причин для этого много, но основная – сложность современных компьютеров: ни один человек не может отследить все команды, выполняемые компьютером при работе программы, – уж очень там много всего задействовано. Я даже не говорю о диком разнообразии всевозможных железок, настроек и установленных программ, с которым встречается творение любого программиста, вышедшее "в свет". Ну и, разумеется, про ошибки самого программиста как в алгоритме, так и в его реализации тоже забывать не стоит…
Для того чтобы понять, откуда берутся ошибки реализации, можно взять типичный пример – деление на ноль. Допустим, вы решили написать программу, которая будет считать среднюю скорость роста человека (не знаю зачем, но допустим). Пользователь вводит дату своего рождения и свой рост, а программа вычитает из сегодняшнего числа дату рождения, подсчитывает ваш возраст в днях и делит рост на число ваших дней. Такая программа будет прекрасно работать для вас и ваших родственников, но если вы ее "выпустите в люди", то обязательно найдется кто-то, кто в качестве дня рождения введет сегодняшнее число. И готово – возраст ноль дней, попытка деления на ноль и программа вылетает с ошибкой.
Разумеется, это самый простой пример. В реальной жизни все сложнее и зависит не только от данных, вводимых пользователем (которые можно, а точнее, нужно проверять перед использованием в программе), но и от установленных системных файлов, драйверов и кучи других вещей, предсказать которые невозможно, а их влияние на работоспособность программы совсем не очевидно.
Как правило, ошибки "первого типа" вычисляются и исправляются очень легко, в течение 10 минут. "Второй тип" – сложнее, но он затрагивает относительно небольшое число пользователей. Обычно исправление подобных ошибок приводит к изменению второй или третьей цифры в номере версии (или же автор вообще не меняет версию, а просто выкладывает обновленный файл).
Если вы видите, что вместо версии 2.1 появилась, скажем, 2.11, то имеет смысл заглянуть на сайт программы и посмотреть, не появилось ли там описание изменений, чтобы понять, нужно оно вам или нет. Ну а если программа небольшая, то можно просто скачать обновленную версию…
Другая штука – это внесение новых функций в программу. Ведь после выхода программы автор получает какое-то количество писем от пользователей с просьбами добавить или изменить что-то в программе, советами по ее совершенствованию и тому подобное. Если много людей просят что-то одно, то автор часто прислушивается к их мнению и дописывает соответствующую функцию. Кроме того, он и сам может придумать что-то новое и интересное и встроить в программу. Обычно подобные изменения приводят к увеличению второй цифры в номере версии, то есть вместо 1.1 появляется 1.2.
Такие обновления в большинстве случаев документируются и их описание помещается в файл history txt или WhatsNew txt. К такой версии стоит приглядеться повнимательнее – есть большая вероятность того, что там появилось что-то такое, чего вам не хватало…
Обнаруженные ошибки или неоптимальные куски в алгоритме программы, как правило, оказываются самыми неприятными для автора, так как они требуют переписывания больших кусков кода или даже всей программы "с нуля". В то же время, их исправление приносит наибольшую пользу тем, кто этой программой пользуется – значительно увеличиваются возможности программы, скорость ее работы, часто меняется внешний вид, появляется много новых функций… С другой стороны, при этом может измениться формат хранения данных, что потребует каких-то специальных действий при переходе на новую версию; может измениться название программы, ее цена и какие-то другие вещи, которые потребуют от пользователя внимательного изучения документации (что, в общем-то, никогда не мешает). Подобные "глобальные" изменения обычно приводят к увеличению первой цифры версии программы, то есть из 1х она превращается в 2.0. К сожалению, правила изменения версий нигде не описаны и не формализованы; то, что я описал – это "усредненное описание". Многие авторы в качестве номера версии используют дату выхода программы. Кто-то не использует "минорные" версии вообще, увеличивая номер на единицу при любом самом маленьком обновлении. Кто-то меняет программу, не меняя версии. Иногда встречаются случаи, когда версия меняется, но отсутствует какое-либо упоминание о сделанных изменениях. Все в руках авторов…
Работая над программой, ее автор может выкладывать в Сеть не только окончательные, но и предварительные версии! Каждая из них имеет свое собственное обозначение:
Альфа (alpha) – самая первая версия программы, черновой набросок. Статус "альфы" гарантирует вам, что скачанная программа установится и даже запустится, однако ее дальнейшие действия непредсказуемы. Чаще всего "альфа-версия" напичкана ошибками, как сдобная булочка изюмом, многие из ее возможностей и функций просто не работают. Вот почему пользоваться "альфой" могут лишь самые нетерпеливые и отчаянные экспериментаторы, выполняя таким образом роль тестеров. Остальным же стоит дождаться появления более стабильной и надежной версии – "беты".
Бета (beta) – уже вполне пригодный к употреблению продукт. Грубые ошибки убраны, базовые задачи программа выполняет успешно. Остались лишь маленькие недоделки, которые могут исчезнуть уже в следующих "бетах". В статусе "беты" многие программы пребывают большую часть жизни – вспомним хотя бы проигрыватель WinAmp, почтовую программу The Bat! и ряд других программ, "бетовость" которых не мешает пользоваться ими миллионам пользователей.
После того как ошибки, обнаруженные в альфа– и бета-версиях программ, исправлены, а функции добавлены, наступает очередь RC (ReleaseCandidate) – кандидат на окончательную версию. Эта программа уже считается стабильной и используется для выявления наиболее скрытых ошибок – такую программу, практически без опаски, могут скачивать и устанавливать даже те пользователи, которые слабо разбираются в компьютерах. А так как таких большинство, то увеличивается число пользователей, что означает увеличение числа "тестеров". Ошибки в RC версиях вычисляются довольно редко, так что при переходе в "основную" версию программа практически не меняется.
Наконец, после всех мучений и доделок на свет появляется релиз (release) – полностью готовая, окончательная версия программы.
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Вы когда-нибудь задумывались, как происходит в компьютере обработка команд? Почему то или иное наше действие вызывает тот или иной результат? Как именно происходит взаимодействие между человеком и компьютером? Верю, что задумывались. И вот теперь вам пора узнать ответ.
ОПЕРАЦИОННАЯ СИСТЕМА – вот так называется первая и самая главная программа, благодаря которой становится возможным общение между компьютером и человеком. Операционная система (или, более фамильярно, просто ОС) – это своего рода буфер-передатчик между компьютерным железом и остальными программами. ОС принимает на себя сигналы-команды, которые посылают другие программы, и "переводит" их на понятный машине язык. ОС управляет всеми подключенными к компьютеру устройствами, обеспечивая доступ к ним другим программам. Наконец, ОС – обеспечивает человеку-пользователю удобство работы с компьютером.
Получается, что каждая ОС состоит как минимум из трех обязательных частей.
Первая – ядро, командный интерпретатор, "переводчик" с программного языка на "железный", язык машинных кодов.
Вторая – специализированные программки для управления различными устройствами, входящими в состав компьютера. Такие программки называются драйверами - то есть "водителями", управляющими. Сюда же относятся так называемые системные библиотеки, используемые как самой операционной системой, так и входящими в ее состав программами.
И наконец, третья часть – удобная оболочка, с которой общается пользователь, – интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро. Сравнение с упаковкой удачно еще и потому, что именно на нее обращают внимание при выборе операционной системы, – о ядре же, главной части ОС, вспоминают уже потом. Поэтому такая нестабильная и ненадежная (с точки зрения ядра) ОС, как, скажем, Windows 95, и пользовалась таким сногсшибательным успехом – благодаря красивой обертке-интерфейсу.
Кстати, все версии Windows, вплоть до Windows ME, были не полноценными операционными системами, а оболочками для старого ядра DOS. Сегодня графический интерфейс – неизменный атрибут любой операционной системы, будь то Windows, Linux или MacOS. Но операционные системы первых поколений были лишены этих "украшательств".
Еще один признак любой современной ОС – возможность выполнять в одно и то же время сразу несколько задач (многозадачность) и поддержка нескольких конфигураций для различных пользователей (многопользовательской режим). Первый критерий стал стандартным при переходе от DOS к Windows, ну а многопользовательскими операционные системы стали чуть позже – в середине 90-х годов.
И последнее – разрядность. 16-разрядные операционные системы (DOS, Windows 3.1, Windows 3.11) ушли в прошлое с появлением Windows 98/МЕ. С конца 90-х годов бал правили 32-разрядные системы, а в настоящее время мы стоим на пороге перехода к 64-разрядным ОС.
Операционных систем на свете много. По крайней мере, больше одной. Помимо многочисленных версий Windows, существует целая группа операционных систем семейства UNIX. Назовем хотя бы главного соперника Windows – Linux (существует около десятка самых распространенных версий этой операционки, и среди них есть немало русскоязычных). Программисты и опытные пользователи часто отдают предпочтение другому потомку UNIX – FreeBSD. Наконец, постоянно ходят слухи о скором появлении РС-варианта знаменитой MacOS. Так что, теоретически, выбор у вас есть…
Но, вероятнее всего, вы решите остановиться на одной из версий Windows – все-таки это бесспорный стандарт. Что бы ни говорили о Windows скептики, а сегодня лучшей системы для дома просто не придумано. И пусть графический интерфейс, мультимедийные "прибамбасы" и игрушки сегодня есть и в Linux, вряд ли вы захотите начать знакомство с компьютером с изучения этой игрушки для профи.
Каждая модификация Windows имеет свои отличительные особенности – это правда. Однако в этой книге мы построим нашу экскурсию таким образом, что освоить основные приемы работы смогут пользователи практически всех версий. С одной лишь небольшой поправкой: мы будем работать с русскоязычной версией этой операционной системы. Конечно, есть немало любителей устанавливать на компьютер нелокализованную, англоязычную версию (и в этом есть свои плюсы). Но мне почему-то кажется, что подавляющее большинство читателей этой книги не относится к полиглотам…