Введение

Программа электронных таблиц Lotus Improv — это программа для работы с электронными таблицами, разработанная компанией Lotus Development и выпущенная в 1991 году для платформы NeXTSTEP, а затем в 1993 году для Windows 3.1. Разработка была приостановлена в 1994 году из-за низких продаж на платформе Windows и окончательно прекращена в апреле 1996 года после приобретения Lotus компанией IBM. Improv представляла собой попытку переосмыслить принципы работы программ электронных таблиц, чтобы упростить создание новых таблиц и редактирование существующих. Традиционные электронные таблицы использовали экранные ячейки для хранения всех данных, формул и примечаний. Improv разделил эти концепции и использовал ячейки исключительно для ввода и вывода данных. Формулы, макросы и другие объекты располагались вне ячеек, что упрощало редактирование и снижало вероятность ошибок. Improv использовал именованные диапазоны для всех формул, а не адреса ячеек. Несмотря на то, что Improv не достиг коммерческого успеха, сопоставимого с такими популярными продуктами, как Lotus 1-2-3 или Microsoft Excel, он завоевал значительную популярность на некоторых нишевых рынках, особенно в области финансового моделирования. Он оказал большое влияние на эти специализированные рынки и послужил основой для создания ряда аналогов на различных платформах, в частности Quantrix от Lighthouse Design. Программа Numbers от Apple Inc. сочетает в себе систему формул и именования, аналогичную Improv, но функционирует в рамках традиционной электронной таблицы.

Предыстория

Первоначально электронные таблицы представляли собой листы бумаги с вертикальными и горизонтальными линиями, настраиваемые рабочие листы, предназначенные для бухгалтерского учета. Пользователи вводили данные в прямоугольные области на листах, известные как ячейки, затем применяли формулы к данным для получения выходных значений, которые записывались в другие ячейки. Профессор из Беркли, Ричард Маттессих, был сторонником использования электронных таблиц для финансового моделирования и расчетов типа "что, если" для бизнеса, но отмечал, что пересчет мог занимать так много времени, что исходные данные устаревали к моменту завершения вычислений. В 1964 году он предложил использовать компьютер для выполнения всех вычислений, начиная с момента изменения, тем самым обновляя таблицу за секунды, а не за дни. Обучение использованию моделирования электронных таблиц было распространено в бизнес-школах, часто с использованием досок, размеченных макетом, похожим на бумажные версии. Использование доски облегчало исправление ошибок и позволяло делиться таблицей с классом. В 1979 году Дэн Бриклин использовал такое устройство, когда решил попытаться компьютеризировать его на только что появившихся персональных компьютерах. Объединившись с Бобом Фрэнкстоном, они создали первую электронную таблицу VisiCalc и выпустили ее на компьютере Apple II в 1979 году. Бен Розен из Morgan Stanley, увидев эту программу, написал: "VisiCalc вполне может оказаться тем программным обеспечением, которое будет управлять компьютерной индустрией". VisiCalc имел огромный успех, настолько, что появилось множество клонов. Один из них был написан бывшим программистом VisiCalc, Митчем Капором. Его версия, Lotus 1-2-3, превзошла VisiCalc по успеху, во многом благодаря тому, что она работала на новом IBM PC и была оптимизирована для него. Lotus 1-2-3 было продано 60 000 копий в первый месяц, и вскоре Lotus стала одной из крупнейших компаний-разработчиков программного обеспечения в мире.

АТГ

Lotus создала группу передовых технологий в 1986 году. Одной из первых задач было выяснить, можно ли упростить процесс создания электронной таблицы. Завершенные электронные таблицы были просты в использовании, но многим пользователям было трудно представить, как должна выглядеть таблица, чтобы приступить к ее созданию. Следует ли вводить данные по столбцам или по строкам? Следует ли хранить промежуточные значения в текущем листе или на отдельном? Сколько места потребуется? Пито Салас, разработчик из ATG, решил взяться за эту проблему. После нескольких месяцев изучения реальных примеров стало очевидно, что данные, представления данных и формулы, действующие на эти данные, – это совершенно разные концепции. Однако во всех существующих программах электронных таблиц требовалось вводить все эти элементы в ячейки одного (обычно единственного) листа. Такое перекрытие функциональности приводило к значительной путанице, поскольку не всегда было понятно, какие данные хранятся в той или иной ячейке. Является ли эта ячейка входным значением, используемым в других расчетах? Промежуточным значением для вычисления? Или, возможно, выходным значением расчета? Определить это было невозможно. Это понимание подтолкнуло к идее новой электронной таблицы, которая бы четко разделяла эти концепции – данные, формулы и представления результатов, объединяющие данные и формулы в формате, удобном для конечного пользователя. Одновременно новый продукт должен был позволить пользователям группировать данные «по назначению», присваивая им имена вместо обращения к ним по их позиции в листе. Это означало, что перемещение данных на листе не повлияет на вычисления. Салас также заметил, что представления выходных данных часто были самым слабым местом существующих электронных таблиц. Поскольку входные данные, вычисления и результаты были смешаны на одном листе, изменение макета могло привести к серьезным проблемам при перемещении данных. С разделением данных и формул эта проблема исчезла. Салас продемонстрировал, что такое разделение позволяло выполнять ряд распространенных задач, требующих сложных вычислений в существующих электронных таблицах, практически без усилий, просто изменив представление данных. Например, если в электронной таблице содержался список ежемесячных продаж, часто использовался столбец для суммирования продаж по месяцам. Но для суммирования по годам обычно требовался дополнительный столбец с формулами и отдельный лист с результатами.

Задняя бухта

К концу лета 1986 года Салас создал демонстрацию в виде слайд-шоу системы, известной как Modeler, на IBM PC. В феврале 1987 года он нанял Гленна Эдельсона для реализации рабочей версии на C++. По мере работы над проектом стало очевидно, что базовая концепция была удачной и особенно полезной для финансового моделирования. В конце весны они наняли Бонни Салливан для написания спецификации проекта, а Джеффа Андерхольма – для изучения рынка новой программы, ориентированной на финансовую индустрию. Этим летом команда представила Modeler ряду финансовых компаний и получила чрезвычайно положительные отзывы. Год спустя, в сентябре 1988 года, команде наконец дали "зеленый свет" на начало разработки Modeler. После изучения ряда платформ, включая DOS и Macintosh OS, команда решила, что целевой платформой будет OS/2, которая в то время считалась перспективной системой в коммерческом секторе. Проект получил кодовое название "Back Bay" в честь района Бэк-Бей в Бостоне, и был выбран талисман по имени Fluffy Bunny. В следующем месяце, в октябре 1988 года, Стив Джобс посетил Lotus, чтобы продемонстрировать им новый компьютер NeXT. Увидев Back Bay, он немедленно загорелся и начал настаивать на том, чтобы разработка велась на платформе NeXT. Команда Lotus также была в восторге от NeXT, но продолжила работу над платформой OS/2. Это оказалось гораздо сложнее, чем предполагалось: в то время OS/2 была полна ошибок, а графический интерфейс Presentation Manager находился в зачаточном состоянии. Разработка продвигалась медленно.

Следующий релиз

После нескольких месяцев борьбы с OS/2, в феврале 1989 года они решили перенести разработку на NeXT. Когда Джобс узнал об этом решении, он послал команде огромный букет цветов. Более того, он направил Брюса Блумберга, одного из ведущих специалистов NeXT по программному обеспечению, чтобы тот обучил команду Lotus работе с NeXTSTEP. Одна из проблем, вызывавшая опасения, на практике оказалась огромным преимуществом: поскольку бэкэнд был написан на C++, а фронтэнд – на Objective-C, оказалось очень легко изолировать части программы и находить ошибки. Кроме того, Interface Builder от NeXT позволил команде экспериментировать с различными пользовательскими интерфейсами с такой скоростью, которая была недоступна на других платформах, и система быстро развивалась в этот период. Вернувшись с визитом в апреле 1989 года, Джобс раскритиковал команду за их систему категоризации. Он потребовал возможности непосредственного манипулирования категориями и данными на экране, а не через меню или отдельные окна. Это привело к созданию одной из самых заметных функций Improv – категории "tiles", иконок, позволявших перекомпоновать выходные листы за считанные секунды. Джобс оставался сторонником проекта на протяжении всего времени и постоянно стимулировал команду к улучшению продукта во всех отношениях. Блумберг оставался в режиме консультаций, помогая решать технические проблемы, которые стали серьезными, поскольку NeXT готовилась к выпуску NeXTSTEP 2.0 – первого крупного обновления системы. "Improv for NeXT" был выпущен в феврале 1991 года, и Джобс в ответ прислал команде целые грузовики цветов. Программа сразу же стала хитом, получив высокую оценку и отличные отзывы от ведущих компьютерных изданий, а также, что необычно, от крупных бизнес-журналов. Более ранние прогнозы о том, что Improv может стать ключевым приложением для NeXT, оправдались: в конечном итоге тысячи машин были проданы на финансовый рынок, изначально – только для работы с Improv. Это позволило NeXT закрепиться на этом рынке, что продолжалось до конца 1990-х годов, даже после приобретения компании Apple Inc.

Выпуск Windows

После выхода на NeXT (версия, известная как "Black Marlin"), были предприняты попытки портирования на Windows ("Blue Marlin") и Macintosh ("Red Marlin"). Интерфейсы прикладного программирования (API) и язык программирования NeXTSTEP настолько отличались от системного программного обеспечения Windows и Macintosh, что портирование оказалось очень сложным. Lotus Improv для Windows v2.0 (версии 1.0 не было) был выпущен в мае 1993 года и работал на Windows 3.1. Как и версия для NeXT, версия для Windows также получила высокую оценку критиков: журнал Byte отметил её "выдающуюся удобность использования". Несмотря на положительные отзывы, продажи в Windows шли медленно. В марте 1994 года Lotus попытался решить эту проблему, позиционируя Improv как дополнение к 1-2-3, хотя эти программы не имели ничего общего, кроме способности Improv читать данные из файлов 1-2-3. Это не оказало влияния на продажи, и после выпуска незначительного обновления 2.1 разработка была прекращена в августе 1994 года. Проект оставался в подвешенном состоянии до апреля 1996 года, когда продукт был официально снят с производства вскоре после того, как IBM приобрела Lotus.

После импровизации

Неуспешные продажи Improv и её последующая отмена на платформе ПК стали предметом анализа в многочисленных исследованиях неудач на рынке программного обеспечения. Продажи на платформе NeXT можно было объяснить ограниченной долей рынка NeXT, но провал на ПК был другой проблемой. Среди наиболее вероятных объяснений – тот факт, что, в отличие от выпуска на NeXT, версия для Windows столкнулась с сильным внутренним сопротивлением со стороны 1 2 3, и возникла корпоративная невосприимчивость к новому продукту. Команды продаж и маркетинга Lotus, хорошо знакомые с продажами 1 2 3, не знали, как продвигать Improv на рынке, и поэтому просто этого не делали, продолжая продавать хорошо известный и понятный 1 2 3. Другие объяснения включают в себя тот факт, что Microsoft Excel предлагался в составе пакета Office по минимальным ценам, несопоставимым с ценой Improv, а также ряд ошибок при запуске, таких как отсутствие языка макросов или функции отмены действий. Джоэл Спольский винит в этом сам дизайн, утверждая, что он был слишком узко ориентирован на конкретный рынок и не обладал той универсальностью, которой отличался Excel. Хотя Improv исчез в 1990-х годах, программа до сих пор с теплотой вспоминается в индустрии и продолжает упоминаться в книгах об Excel. После исчезновения Improv быстро появилось несколько его клонов. Одним из заметных был Quantrix от Lighthouse Design – почти точная копия, ориентированная на финансовый рынок. Quantrix постигла та же участь, что и Improv, когда компания была приобретена Sun Microsystems. Покинув Sun Microsystems, Питер Мюррей основал интернет-провайдера, а затем B2B-компанию под названием GoFish, за которой в 2001 году последовала третья новая компания с названием Quantrix.

Понятия

Основная идея проекта Improv заключалась в разделении понятий данных, представлений данных и формул на три отдельные части. Сама таблица должна была содержать только входные данные. Вместо обращения к данным как к "данным, случайно находящимся в этих ячейках", каждому набору данных в листе присваивалось имя, и их можно было группировать по категориям. Формулы вводились в отдельный раздел и ссылались на данные по их диапазону, а не по физическому положению в листах. Представления данных, некоторые из которых выглядели как электронные таблицы, а другие – как диаграммы, могли создаваться динамически и не были ограничены по количеству. Чтобы проиллюстрировать разницу между Improv и другими системами, рассмотрим простую задачу: рассчитать общий объем продаж продукта, исходя из ежемесячного объема продаж и цены за единицу. В обычной электронной таблице цену за единицу вводили бы в один набор ячеек, например, в столбец "A", а объем продаж – в другой, например, в столбец "B". Затем пользователь вводил бы формулу в столбец "C", которая выглядела бы как "A1 умножить на B1" (обычно в форме @times(A:1, B:1) или =A1*B1). Затем эту формулу нужно было бы скопировать во все ячейки столбца C, не забывая изменить ссылку на A1 на новую ссылку на A2 и так далее. Лист может частично автоматизировать этот процесс, но основная проблема в том, что он совершенно не понимает, что означает формула. Любые изменения в структуре электронной таблицы часто приводят к тому, что весь лист перестает работать правильно. В Improv достаточно просто ввести данные в столбцы с названиями "Цена за единицу" и "Объем продаж за единицу". Затем можно создать формулу, которая гласит: "Общий объем продаж = Цена за единицу умножить на Объем продаж за единицу". Если к рабочей книге добавить представление "Общий объем продаж", то суммы автоматически появятся там, потому что лист "знает", для чего предназначена эта формула. Но истинная сила Improv стала очевидной только после начала работы над проектом. Благодаря системе группировки можно было объединять месячные продажи в группы, такие как "1995" и "1996", и называть эту категорию "годы". Цены за единицу можно было группировать по типу продукта, например, "одежда" и "продукты питания". Теперь, перетаскивая эти группы (представленные небольшими вкладками), можно было быстро изменять представление. Эта концепция позже была реализована в виде сводных таблиц в нескольких продуктах.