БЕСЕДЫ О ПРОГРАММИРОВАНИИ
Поддержка многими сторонними фирмами языка Visual Basic for Applications показала, что сбылись мои как наилучшие, так и наихудшие прогнозы, сделанные в июне 1990 года.
В то время корпорация Lotus (она еще не была частью IBM) активно выступила против того, чтобы Бейсик стал универсальным макроязыком, что подкреплялось агрессивной маркетинговой службой Microsoft. Lotus придерживалась мнения, что REXX корпорации IBM уже оправдал себя в качестве эффективного языка для конечного пользователя при решении обширного спектра задач в различных компьютерных средах.
Lotus была права. Я смиренно наблюдал, как IBM опоздала встроить REXX в свою версию DOS и не смогла создать для него визуальную среду, которая была бы не менее привлекательной, чем Visual Basic. Я видел также поистине титанические усилия, направленные на подавление рыночного потенциала действительно изумительного инструмента программирования.
Первоклассные программисты из фирм Watcom и HockWare разработали великолепные REXX-продукты (соответственно VX-REXX и VisPro-REXX), но результаты их работы уже использованы в инструментах для Си++ (Optima++ компании Powersoft), а также для Бейсика (в новом продукте VisPro-VB фирмы HockWare). Поэтому я и сказал, что сбылись наихудшие прогнозы.
Однако в некоторых важных областях Lotus реализовала желаемое: Бейсик, наконец достигший триумфа, превратился в совершенно иной инструмент по сравнению с тем, что мы могли представить себе шесть лет назад.
Требуется меньше памяти
Новая среда разработки на языке VBA (стандартизованная во всех приложениях, поддерживающих этот язык) отражает инновации, встречавшиеся лишь в 36-разрядных Лисп-машинах и их интегрированных средах (например, Genera фирмы Symbolics). Динамическая внутренняя модель VBA имеющихся в распоряжении программиста опций существенно снижает число параметров, которые необходимо помнить пользователю. Таким образом устраняется традиционный барьер на пути к успешному программированию.
Но многие другие препятствия остаются. Даже такая простая задача, как выбор имен переменных, кажется, вызывает затруднения у пользователей, точно так же, как команда "нажмите любую клавишу" несколько сбивает их с толку*, поэтому предпочтительной является другая: "для продолжения нажмите клавишу пробела".
Электронные таблицы, напротив, предлагают конечному пользователю более удобную среду программирования, поскольку имена ячеек представляют собой имена переменных и напрягать воображение не требуется.
Еще одним препятствием для конечного пользователя в работе с инструментом программирования является передача управления в таких конструкциях, как ветвление. Опять же, электронные таблицы дают позитивный контрпример: утверждения IF - даже многоуровневые - применяются с большим успехом, так как их действие полностью локализовано.
Управляющая логика, которая определяет последовательность обработки ячеек электронной таблицы, полностью скрыта от пользователя.
Конечные пользователи знают, как выигрывать при игре в кегли, как вязать узор по рисунку, как использовать многочисленные замысловатые формальные представления, если существует очевидная связь с необходимым результатом.
Помните об этом при настройке инструмента типа VBA, если хотите сделать последний частью эффективно работающей системы для конечного пользователя.
* Английское "Press any key" можно понять двояко: "нажмите любую клавишу" и "нажмите клавишу "Any"", которую начинающие пользователи и ищут по всей клавиатуре. - Прим. ред.
Питер Коффи
Как вы считаете, программирование для конечного пользователя - это удачное решение или проблема? Сообщите мне по адресу: peter_coffee@zd.com.