воскресенье, 1 марта 2009 г.

Когда вы меняете что-то внутри - то этого никто не замечает

Это перевод When you change the insides, nobody notices. Автор: Реймонд Чен.

Когда люди жалуются, что программы Calc (калькулятор) и Notepad (блокнот) не меняются, я нахожу это забавным. Потому что, все эти программы менялись.

(у блокнота появились новые пункты в меню и настройки строки статуса. Калькулятор вообще был переписан с нуля)

Я не удивлюсь, если это окажутся те же самые люди, которые жалуются: "Почему Microsoft тратит все свои силы на то, чтобы Windows 'выглядела круто'? Им следовало бы направить эти усилия на технические улучшения и перестать играться с визуальным оформлением".

Но именно это и произошло с калькулятором: значительные технические изменения. Но визуальный интерфейс не трогали. И никто ничего не заметил. Фактически, жалобы просто продолжились: "ну посмотрите на этот калькулятор - как был, так и остался".

Внутренности калькулятора - арифметический движок - были выброшены на свалку и переписаны с нуля. Стандартная библиотека чисел с плавающей запятой IEEE была заменена на библиотеку, поддерживающую числа с произвольной точностью. Это было сделано из-за того, что люди продолжали писать ха-ха истории в стиле, как калькулятор не умеет считать: например, вычисляя 10.21 - 10.2 и получая 0.0100000000000016.

(Эти перлы пишутся людьми, которые не понимают, как компьютеры обращаются с числами с плавающей запятой. Я уже запланировал несколько записей о числах с плавающей запятой)

Сегодня, все внутренние вычисления в калькуляторе выполняются с бесконечной точностью для основных операций (сложение, вычитание, умножение и деление) и с точностью до 32 цифр для расширенных операций (квадратный корень и трансцендентные операции).

Попробуйте сами: 1 / 3 * 10000000000 - 3333333333 =. Результат - в точности одна треть. Напишите 1/x - 3 = и вы получите свой ноль обратно (конечно, если вы мне не верите, то повторяйте последовательность "* 10000000000 - 3333333333 =", пока не устанете - потому что ответ всегда будет 0.33333333333333333333333333333333. Если бы у калькулятора была бы конечная точность, то 3-ки рано или поздно закончились бы).

Не хватает точности в 32-е цифры для остальных операций? Power Calculator PowerToy использует тот же движок, что и калькулятор Windows и позволяет вам использовать точность аж до 512 цифр.

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

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.

Примечание. Отправлять комментарии могут только участники этого блога.