IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Новое или старое?

Дмитрий Турецкий

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

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

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

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

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

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

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

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

Источник: www.diskovod.ru/

 


Copyright © "Internet Zone"info@izcity.com
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/. При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас.