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

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

В действительности все зависит не только от данных, вводимых пользователем (которые можно, а точнее, нужно проверять перед использованием в программе), но и от установленных системных файлов, драйверов и кучи других вещей, предсказать которые невозможно, а влияние их на работоспособность программы — совсем неочевидно. Как правило, ошибки «первого типа» вычисляются и исправляются очень легко, в течение 10 минут. «Второй тип» сложнее, но он затрагивает относительно небольшое число пользователей. Обычно исправление подобных ошибок приводит к изменению второй или третьей цифры в номере версии (или же, автор вообще не меняет версию, а просто выкладывает обновленный файл). Если вы видите, что вместо версии 2.1 появилась, скажем, 2.11, то имеет смысл заглянуть на сайт программы и посмотреть, не появилось ли там описание изменений, чтобы понять, нужно оно вам или нет. Ну а если программа небольшая, то можно просто скачать обновленную версию.

Другая штука — это внесение новых функций в программу. Бывает, что после выхода программы автор получает какое-то количество писем от пользователей с просьбами добавить или изменить что-то в программе, советами по ее совершенствованию и т. п. Если много людей просят что-то одно, то автор часто прислушивается к их мнению и дописывает соответствующую функцию. Кроме того, он и сам может придумать что-то новое и интересное и встроить в программу. Обычно подобные изменения приводят к увеличению второй цифры в номере версии, т. е. вместо 1.1 появляется 1.2. Такие обновления в большинстве случаев документируются и их описание помещается в файл history.txt или WhatsNew.txt. К такой версии стоит приглядеться повнимательнее — есть большая вероятность того, что там появилось что-то такое, чего вам не хватало.

Обнаруженные ошибки или неоптимальные куски в алгоритме программы, как правило, оказываются самыми неприятными для автора, т. к. они требуют переписывания больших кусков кода или даже всей программы «с нуля». В то же время, их исправление приносит наибольшую пользу тем, кто этой программой пользуется — значительно увеличиваются возможности программы, скорость ее работы, часто меняется внешний вид, появляется много новых функций... С другой стороны, при этом может измениться формат хранения данных, что потребует каких-то специальных действий при переходе на новую версию; может измениться название программы, ее цена и какие-то другие вещи, которые потребуют от пользователя внимательного изучения документации (что, в общем-то, никогда не мешает). Подобные «глобальные» изменения обычно приводят к увеличению первой цифры версии программы, т. е. из 1.x она превращается в 2.0.

Между тем встречаются различные версии программ и общего правила их изменения не существует. Многие авторы в качестве номера версии используют дату выхода программы. Кто-то не использует «минорные» версии вообще, увеличивая номер на единицу при любом самом маленьком обновлении. Кто-то меняет программу, вообще не меняя версии. Иногда встречаются случаи, когда версия меняется, но отсутствует какое-либо упоминание о сделанных изменениях.

Еще один ньюанс — это различия между alfa, beta, RC версиями и релизами. Альфа — это самая «сырая» версия программы. В ней может присутствовать множество ошибок и автор не гарантирует работоспособность программы. Обычно альфа-тестирование автор проводит, чтобы собрать отклики от добровольных «испытателей» и исправить наиболее явные огрехи. Если вы не очень в ладах с компьютером, то альфа-версию скачивать не следует: не исключен вариант, что она порушит вам всю систему. Альфа-версии программ обычно не очень афишируются — мало кому хочется показывать недоделанный продукт, но тестировать-то надо.

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

После того как ошибки, обнаруженные в альфа и бета версиях программ исправлены, а функции добавлены, наступает очередь RC (Release Candidate) — кандидат на окончательную версию. Эта программа уже считается стабильной и используется для выявления наиболее скрытых ошибок — такую программу, практически без опаски, могут скачивать и устанавливать даже те пользователи, которые слабо разбираются в компьютерах. А так как таких — большинство, то увеличивается число пользователей, что означает увеличение числа «тестеров». Ошибки в RC версиях вычисляются довольно редко, так что при переходе в «основную» она практически не меняется.

· Средства обработки текстовой информации

· Средства табличной обработки информации

· Средства обработки графической информации

· Системы управления базами данных

· Офисное ПО

· Мультимедийные программы

· Обучающие программы