Обнаруженные ошибки или неоптимальные куски в алгоритме программы, как правило, оказываются самыми неприятными для автора, так как они требуют переписывания больших массивов кода или даже всей программы «с нуля». В то же время их исправление приносит наибольшую пользу тем, кто с этой программой работает: значительно увеличиваются ее возможности, скорость, часто меняется внешний вид, появляется много новых функций… С другой стороны, при этом может измениться формат хранения данных, что потребует каких-то специальных действий при переходе на новую версию; может измениться название программы, ее цена и какие-то другие вещи, которые потребуют от пользователя внимательного изучения документации (что, в общем-то, никогда не мешает). Подобные «глобальные» изменения обычно приводят к увеличению первой цифры версии программы, то есть из 1.x она превращается в 2.0.
К сожалению, правила изменения версий нигде не описаны и не формализованы; то, что вы прочитали, это «усредненное описание». Многие авторы в качестве номера версии проставляют дату выхода программы. Кто-то не использует «минорные» версии вообще, увеличивая номер на единицу при любом самом маленьком обновлении. Кто-то меняет программу, вообще не меняя версии. Иногда встречаются случаи, когда версия меняется, но отсутствует какое-либо упоминание о сделанных изменениях. Все в руках авторов…
Еще одна интересная вещь – различия между alfa-, beta-, RC-версиями и релизами. Alfa – это самая предварительная версия программы. В ней может присутствовать множество ошибок, и автор не гарантирует работоспособность программы. Обычно альфа-тестирование автор проводит, чтобы собрать отклики от добровольных «испытателей» и исправить наиболее явные огрехи. Если вы не очень в ладах с компьютером, то альфа-версию скачивать не стоит – не исключен вариант, что она порушит вам всю систему. Альфа-версии программ обычно не очень афишируются – мало кому хочется показывать недоделанный продукт, но тестировать-то надо…
После альфа-тестирования наступает очередь бета-версий. Бета – это тоже «пробная» версия программы, но в ней уже выловлены наиболее грубые ошибки. Как правило, она достаточно работоспособна и используется для выявления «экзотических» ошибок и получения откликов от пользователей по функциональности программы. Если автор считает, что его бета-версия уже достаточно стабильна, то он иногда помещает ее описание в программные архивы, где она становится доступной десяткам и сотням тысяч людей. Кстати, активные альфа– и бета-тестеры без больших проблем могут получить коммерческую версию программы бесплатно.
После того как ошибки, обнаруженные в альфа– и бета-версиях программ, исправлены, а функции добавлены, наступает очередь RC (Release Candidate) – кандидата на окончательную версию. Эта программа уже считается стабильной и используется для выявления наиболее скрытых ошибок – ее, практически без опаски, могут скачивать и устанавливать даже те пользователи, которые слабо разбираются в компьютерах. А поскольку их большинство, то увеличивается число пользователей, что означает и рост числа «тестеров». Ошибки в RC-вер-сиях вычисляются довольно редко, так что при переходе в «основную» версию программа практически не меняется.
ОСНОВЫ ПРОГРАММИРОВАНИЯ
Маленькое предисловие. О необходимости этой главы мне намекали (сначала тонко, потом все более прямо и требовательно), начиная с первых изданий этой книги. Поначалу намеки я предпочитал просто игнорировать – мол, о программировании достаточно полно и нудно повествуют школьные учебники (которым моя книжка пытается помогать, но никак не конкурировать). К тому же Пользователь и Программист – птицы разного полета, да и интересы их лежат в разных плоскостях. Я, например, к уважаемой плеяде Программистов отношения не имею, а потому и не рискну лезть с головой в эти дебри.