Итоги дискуссии
Андрей Колесов
На мою небольшую статью о проблеме использования на современных ПК программ, написанных на Clipper (PC Week/RE, № 46/98, с. 16) редакция еженедельника получила неожиданно много отзывов от наших читателей. Последовавший затем дополнительный обмен мнениями по электронной почте показал, что вопросы, затронутые в публикации, оказались весьма серьезными для пользователей информационных систем. Сейчас настала пора подвести итоги этой электронной дискуссии. Очень жаль только, что на статью откликнулись лишь представители Intel, хотя в ней упоминались и другие компании.
Хотелось бы сразу сделать некоторые уточнения. В ошибке, о которой говорилось в предыдущей публикации (появление ошибки деления на ноль или переполнения при повышении тактовой частоты процессора), виновен, как выяснилось, не сам пакет Clipper компании CA, а ее же дополнительный инструментальный набор Clipper Tools. Оказалось также, что на сервере Computer Associates International (ftp://mf.cai.com/CAproducts/clipper/53a_bi.zip) еще в 1997 г. появилось обновление Clipper 3.b, в котором данная проблема решена для процессоров AMD и Cyrix. Когда я упоминал в прошлый раз о программе “неизвестного происхождения”, имелась в виду именно эта “заплатка”. Остается сожалеть, что московское отделение CA и ее партнеры не смогли сразу внести ясность в данный вопрос. Однако, судя по отзывам читателей, предложенное решение не обеспечивает работоспособности старых Clipper-программ на процессорах Intel Pentium II 300 МГц и старше (речь в статье шла именно о них).
Как обеспечить работоспособность старых программ
Обмен мнениями показал, что эта проблема касается не только Clipper, но и общих вопросов сопровождения программ. Программы написаны давно, многие из их авторов уже успели уволиться, исходные коды утеряны... Как в этой ситуации обеспечить работоспособность программных пакетов? Подводя краткие итоги дискуссии, следует выделить следующие моменты.
1. Замена оборудования на более современное, к сожалению, не гарантирует стопроцентную работоспособность старых программ. В этой связи нужно отметить парадокс современного компьютерного мира: отсутствие стандарта на ПК. В документации на компьютер, как правило, указывается гарантийный срок обслуживания, но что понимается под работоспособностью ПК, нигде не говорится. В лучшем случае речь идет о его совместимости с DOS/Windows. Поэтому с формальной точки зрения для претензий к производителю в связи с неработоспособностью тех или иных программ у пользователя нет оснований. Фактически здесь действует тот же принцип As Is (“как есть”), что и для программных продуктов.
Единственный реальный выход из такой ситуации - предварительное тестирование покупаемой техники на предмет ее совместимости с уже используемым ПО, по результатам которого и следует принимать решение о замене оборудования, модернизации ПО и пр.
На потребительском рынке решение этой проблемы сводится к общепринятому в мировой практике праву пользователя на безусловный возврат товара со стопроцентной компенсацией затрат в течение определенного срока (от двух недель до месяца).
2. Общим правилом должен стать принцип, когда находящиеся в эксплуатации программы должны быть обеспечены сопровождением со стороны разработчика. (Замена оборудования здесь не самый критичный случай - вспомним о проблеме Y2K, инфляции, деноминации и пр.) Прекращение такой поддержки автоматически приводит к необходимости рассмотрения вопроса о продолжении использования программ.
Как реализовать данный принцип для внутрифирменных или заказных разработок - в общем-то ясно. Что же касается массового коммерческого ПО, то, наверное, сегодня настало время, когда ответственность производителя за обеспечение сопровождения его продуктов должна быть повышена законодательным путем. Хотя понятно, что этот вопрос непростой и весьма дискуссионный.
3. Многие приемы программирования, еще недавно считавшиеся классическими, сегодня, на процессорах современной архитектуры, уже неприменимы. В частности, в Clipper использовался хрестоматийный вариант определения производительности ПК с помощью подсчета числа пустых циклов за определенный интервал времени. Однако в случае нелинейной структуры процессора - предсказание ветвлений, спекулятивное исполнение команд, оптимизация циклов, параллельные вычисления и пр. - и наличии разных вариантов реализации этих механизмов такой алгоритм просто теряет всякий смысл. В результате получилось, что в соответствии с данным алгоритмом производительность K5-90 в десятки раз превысила показатели Pentium-90.
Нас критикуют, мы отвечаем
На фоне в целом доброжелательных откликов читателей я просто обязан отметить письмо с довольно резкой критикой моей статьи, которое прислал директор челябинского предприятия “Цикл” Александр Березан. Он посчитал, что в ней была приведена искаженная информация, причем мною был нарушен ряд юридических и этических норм. По этому поводу у нас с г-ном Березаном получился любопытный обмен мнениями (к согласию мы, правда, так и не пришли). Поскольку изложение наших позиций, как мне кажется, выходит за рамки данной статьи, отмечу только один момент из завязавшейся дискуссии.
Г-н Березан резко возразил против возможности прямого исправления программного кода, обратив внимание, что это противоречит положениям лицензионного соглашения о программном продукте. Но, я полагаю, в данном случае приоритет принадлежит российскому Закону об охране авторских прав на программы, статья 15 которого четко говорит о возможности исправления кода с целью адаптации программы для работы на конкретном компьютере, тем более - для исправления явных ошибок. Кроме того, хотелось бы подчеркнуть несколько принципиальных вопросов.
1. Законность любых действий, в том числе разрешения противоречий между разными юридическими документами, может определить только суд. Мнение же любого эксперта, даже авторитетного юриста, является лишь одной из точек зрения, не более того. К сожалению, о прецедентах судебных разбирательств в России по поводу авторских прав на программы, разрешения противоречий законодательства и лицензионных соглашений лично мне ничего не известно (хотя я слежу за этим вопросом).
2. Законы надо выполнять, но они не являются догмой. Если законы не соответствуют реалиям, то их (законы) нужно совершенствовать. К сфере информатики, где взаимоотношения между поставщиками и потребителями продуктов меняются очень быстро, это относится в первую очередь.
3. Лично мое мнение: в условиях возрастающей роли программного обеспечения в жизни общества (вспомним хотя бы об Y2K) должна повышаться юридическая ответственность производителя ИТ перед потребителем. В этой связи существующий на сегодня ключевой принцип распространения программ - As Is - требует весьма серьезного критического рассмотрения и, вполне возможно, коррекции.
Но это уже тема другой дискуссии.
С автором статьи, обозревателем PC Week/RE, можно связаться по адресу: akolesov@glasnet.ru.