Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПІК / Перевод / перевод / УСОВЕРШЕНСТВ_ПИ.doc
Скачиваний:
25
Добавлен:
05.06.2015
Размер:
1.77 Mб
Скачать

5.7. Ліквідація додатків

З кожною новою версією ваша улюблена програма виконує дану задачу в два рази довше.

Линкольн Спектор

Сучасна структура програмного забезпечення, що складає з операційної системи і виконуваних під нею додатків, споконвічно є модальної. Це означає, що для того, щоб інтерфейс був немодальним, потрібно підхід, при якому не використовуються додатки в їхньому сучасному виді.

Оскільки жести (наприклад, ті, за допомогою яких викликаються команди) з одного додатка не можуть бути доступними в іншому додатку, ви повинні знати про те, яке додаток у даний момент є активним. Але ви не можете знати це напевно, коли в локусі вашої уваги знаходиться задача, що ви намагаєтеся виконати. Тому іноді ви будете застосовувати жести, що або не будуть давати результату, або будуть давати неправильний результат. Окремими, створюваними прикладними програмами, коштує проблема, що засобу одного додатка є недоступними, коли ви знаходитеся в іншому додатку. Наприклад, ситуація може бути такий: ви хочете виконати деяку задачу, що могли б виконати в додатку A. Але ви знаходитеся в додатку B, у якому аналогічної команди немає. Фахівець з обчислювальної техніки Даний Свайнхарт (Dan Swіnehart) назвав таку ситуацію "дилемою витиснення" (dіlemma of preemptіon) (Tesler, 1981, с. 90).

Відомі три підходи до рішення дилеми витиснення. Найбільш розповсюджений метод полягає в тім, щоб кожен додаток постачити всіма способами, що користувачу можуть знадобитися. Цей метод обговорювався в розділі 5.1, де було зазначено, що в кожнім персональному комп'ютері мається безліч різних текстових редакторів. Більшість текстових процесорів містить у собі безліч різних текстових редакторів. Наприклад, типовий текстовий процесор має більш простий текстовий редактор для введення шаблона в діалогове вікно пошуку, чим той, котрий використовується для роботи з основним текстом. При такому підході додатка розширюються до колосальних розмірів, оскільки кожне їх їх повинне вирішувати величезна безліч задач, що мають другорядне значення з погляду його основної задачі. Наприклад, мій текстовий процесор має убудовану програму для малювання, за допомогою якої я можу створювати прості малюнки, без необхідності виходити з редактора. У той же час, моя програма для малювання графіки має убудований текстовий редактор, за допомогою якого я можу включати в малюнки форматированные блоки тексту без необхідності виходити з програми малювання. Засобу малювання в текстовому редакторі і засобу редагування текстів у програмі для малювання гірше, ніж програми, що розроблені спеціально для відповідних задач. В ідеалі всі команди і можливості як програми для малювання, так і текстового редактора повинні бути доступними для користувача в будь-який момент.

Аналогічним образом у кожній програмі маються засоби для збереження і відкриття іменованих файлів. Однак ці засоби працюють по-різному і мають різні можливості в різних програмах. Це приводить до плутанини, труднощям у використанні і створює величезний обсяг надлишкового програмного забезпечення, що вимагає оплати, зусиль на вивчення, ведення документації, а також адекватного розміру оперативної пам'яті і місця на диску. Те ж саме стосується і безлічі інших можливостей (наприклад, печатки), що дублюються (чи дуже схожі) у різних програмах.

Ці проблеми до деякої міри були враховані виробниками і розроблювачами. Ряд компаній розробили програмне забезпечення, що дозволяє включати в єдиний складений документ (compound document) частини, створені в різних додатках. Коли ви клацаєте мишею по будь-якій крапці в такому документі, автоматично активізується додаток, у якому ця частина складеного документа була створена. Цей метод дозволяє уникнути відкриття явно відповідних додатків при роботі зі складеним документом. Звичайно, для створення такого документа користувачу все рівно приходиться вручну запускати додатка, створювати частини складеного документа і потім збирати їх у єдине ціле (звичайно за допомогою операцій вирізання і чи вставки перетаскування).

Хоча цей метод і створює деяка, сама невелика зручність, дилема витиснення за допомогою його не зважується, що можна бачити на різних прикладах (OpenDoc компанії Apple, NextWave компанії HP, OLE компанії Mіcrosoft і їхні похідні). Коли ви працюєте в одній з частин складеного документа, у вас у розпорядженні немає програмних засобів, що використовуються для створення інших частин. Більш того, такий документ як би не має границь, і його поводження несподіваним образом міняється в залежності від місця. Таблиця й електронна таблиця можуть виглядати однаково, але одна діє за правилами текстового процесора, а інша - за правилами програми електронних таблиць. Це є злочинницькою модальністю, оскільки єдиною ознакою вашого місця розташування є, що змінюється при щиглику меню, що звичайно розташовано далеко від локусу уваги. Як ми вже знаємо, це є неефективним засобом повідомлення користувача про поточне стані системи. Хоча необхідно сказати, що абсолютного засобу, звичайно, тут бути не може.

Оригінальним методом усунення режимів, що присущи додаткам, було використання віконної парадигми. Алан Кэй (Alan Кау) з компанії Xerox PARC запропонував вікна, що перекриваються, (overlappіng wіndows) для того, щоб частково усунути модальність додатків. Він також хотів забрати поділ між операційною системою і додатками, але успіху домігся, головним чином, у тім, щоб зробити функціонування операційної системи видимим у формі так називаного робочого столу. На той час це було дійсно просуванням уперед, але, як виразився Ларри Теслер (Larry Tesler) з компанії PARC, "вікна, у деякому змісті, - це режими в овечій шкірі" (Tesler, 1981, с. 94). Це означає, що вікна, по

суті, не усувають модальність додатків, але дозволяють зробити видимими і доступними одночасна безліч додатків. Ідея, запропонована Кэем, і інші ідеї, що виникли на основі використання вікон, стали важливим кроком уперед, результатом якого люди користаються більш десяти років. Однак проблема режимів і дилема витиснення, породжена існуванням додатків, так і не були вирішені. Відтоді овеча шкіра поизносилась, і з її всі частіше став визирати на нас вовчий зуб. У розділі 5.8 буде розглянутий один зі способів того, як можна остаточно обробитися з цим вовком.

________________________________________

Чи калькулятор комп'ютер?

Не секрет, що багато хто з нас тримають поруч зі своїм комп'ютером калькулятор. Чому ж нам потрібно цей примітивний пристрій, коли в нашому розпорядженні мається цілий комп'ютер? Причина в тім, що для виконання простих арифметичних дій на комп'ютері нам приходиться почати настільки витончені маніпуляції, що вони могли б бути гідні представлення в цирку. Представимо, що ви сидите за комп'ютером і набираєте якийсь текст у текстовому процесорі і вам необхідно довідатися, скільки коштує одне упакування Phumuxx, при тім, що 375 упакувань коштують $248.93. На моєму комп'ютері мені приходиться відкривати вікно калькулятора. Для цього я переношу руку з клавіатури на мишу, за допомогою якої виконую команду вибрати і перетягнути (clіck-and-drag), щоб відкрити вікно калькулятора. Потім я переношу руки назад на клавіатуру і вводжу потрібні чи цифри ж довго спочатку вирізую їх з тексту, а потім вставляю в поле калькулятора. Потім мені потрібно натиснути ще пари клавіш і, нарешті, скопіювати отриманий результат з вікна калькулятора в документ. Іноді справа ускладнюється тим, що вікно калькулятора відкривається прямо поверх того місця, де знаходяться необхідні мені числа. У цьому випадку я повинний також використовувати миша, щоб перемістити вікно калькулятора в інше місце і продовжити операцію. Простіше дістати кишеньковий калькулятор і за допомогою його зробити всі набагато швидше.

Більш удалим рішенням було би використання спеціальної кнопки Обчислити (Calculate) чи наскрізної команди меню, за допомогою якої можна було б обчислити виділене арифметичне вираження (таке, наприклад, як 248.93/375) у будь-якім середовищі, будь це текстовий процесор, програма чи комунікації малювання, презентаційний чи додаток простий робочий стіл. Іншими словами, це приклад універсальної функції, застосовної в будь-якім місці.

За допомогою експерименту, у якому брав участь досвідчений оператор комп'ютера (і власник калькулятора), я зміг визначити, що загальний час, що знадобилося оператору, щоб під час використання текстового процесора дістати калькулятор, уключити його, виконати просту операцію додавання і перемістити руки назад на клавіатуру комп'ютера для продовження роботи, склало близько 7 с. Потім я вимірив час, що знадобилося йому на використання убудованого калькулятора. При цьому оператору було необхідно перемістити курсор до меню у верхній частині екрана, знайти програму калькулятора, відкрити її, одержати суму і потім клацнути по вікну текстового процесора, щоб повернутися до своєї роботи. Це зайняло близько 16 с.

Томові ж оператору було запропоновано виконати арифметичну операцію в середині документа при використанні комп'ютера Canon Cat з убудованою клавішею <Обчислити> і можливістю виконувати арифметичні операції усередині документа. Час склав 6 з (цифри вводилися за допомогою верхнього ряду клавіш). Таким чином, у цьому випадку не було вигоди в часі від використання зовнішнього калькулятора. Крім того, у комп'ютері Canon Cat після обчислення результат залишався в документі на випадок, якщо користувачу було потрібно вставити туди результат. У той же час, цей результат залишався виділеним, тому користувач при необхідності міг легко його видалити натисканням на клавішу <Delete>.

У системі повинна бути доступної також і інша можливість: у будь-якім місці, де користувач може ввести цифри, він повинний мати можливість ввести арифметичне вираження й обчислити його. Такі команди, як

" перевірити орфографію в поточній вибірці;

" використовувати поточну вибірку як арифметичне вираження й обчислити його;

" передати поточну вибірку по електронній пошті;

" передати поточну вибірку по факсу;

" перейти по даному URL;

" виконати поточну вибірку як програму, написану мовою Java чи будь-якій іншій мові,

повинні бути доступними для користувача в будь-який момент, що є абсолютно здійсненним з погляду розробки.

________________________________________

Соседние файлы в папке перевод