В год самой низкой температуры на Земле: Incredible Jack

1983 год: самый первый звонок в истории по сотовой связи, чуть не началась ядерная война (по ошибке), опубликованы электронные таблицы Lotus 1-2-3 для IBM PC… Много чего произошло в том году. Но я расскажу об одной программе для Apple II, вышедшей в 1983-м и забытой уже через пару-другую лет.

В год самой низкой температуры на Земле: Incredible Jack. Фото.

Программа называлась Incredible Jack (Невероятный Джек), разработала её небольшая компания Business Solutions из Кингз Парк в штате Нью Йорк. Точную дату выхода этой программы установить не удалось, известно только, что случилось это за 18 месяцев до выхода в свет её убийцы, AppleWorks.

В год самой низкой температуры на Земле: Incredible Jack. Фото.

Невероятный Джек, как и Lotus 1-2-3, объединял в себе функции нескольких программ. И был вторым в мире интегрированным программным продуктом для микрокомпьютеров.

Если бы 26 сентября 1983 года подполковник Петров, первым обнаруживший сигнал о запуске 12 ракет Минитмен, нацеленных на СССР (сигнал, как оказалось, был ложным), не обратил в своем докладе внимание на подозрительно малое число ракет и последовал бы ответный удар… Археологи далекого будущего имели бы шанс узнать про Incredible Jack больше, чем мы знаем сегодня.

Составление делового документа в 1983

Джек попал в поле зрения компьютерных журналистов 1983 года и вызвал их интерес. О нем писали, что это текстовый процессор, электронные таблицы и база данных на одном диске, в одной программе. На самом деле все было значительно скромнее. Он уступал практически всем текстовым процессорам на рынке и абсолютно всем электронным таблицам и системам управления базами данных.

Действительно, за 5 лет существования индустрии персональных компьютеров написание программ для них уже превратилось в самую быстроразвивающуюся отрасль народного хозяйства развитых стран мира – на крохотных пятачках оперативной и дисковой памяти первой половины 80-х лидирующие на рынке компании умудрялись разворачивать самые настоящие шедевры.

Были уже и замечательные текстовые процессоры (WordStar, например), и электронные таблицы (VisiCalc и тот же Lotus 1-2-3), и системы управления базами данных (DB Master), в каждой из этих категорий, как в первобытных джунглях, шла жесточайшая битва за успех и выживание – но у всех этих шедевров, при всех их несомненных достоинствах и талантах, был общий недостаток.

Каждый из этих шедевров превращал Apple II, Commodore или IBM PC в компьютер одной программы. При оперативной памяти в 64 или даже в 128 килобайт, об использовании хотя бы двух программ одновременно не могло идти речи. Одна-единственная программа – и та с огромным трудом выполняла свою работу, это было чудом.

А жизнь есть жизнь. Типичный деловой документ всех времен – это пересечение потоков самой разной информации. Текст, вычисляемые данные, адреса, справочные данные…

Когда каждая программа занимает весь компьютер целиком, создание такого документа превращается в крайне непростое занятие.

Представьте: в текстовом процессоре вы печатаете первые несколько абзацев, и вот вам необходимо вставить какие-то числа, исходные данные для вычисления которых у вас есть, но они в базе данных, их нужно из нее извлечь.

И вычислить – базы данных для персональных компьютеров в те годы вычислять не умели. Для вычислений можно было написать собственную программу (вы не поверите, но едва ли не каждый первый из пользователей в те времена умел программировать) или прибегнуть к помощи электронных таблиц.

И полученные данные впечатать в текст, вернувшись в текстовый процессор. Чтобы еще раз, через несколько абзацев, встретиться с задачей, решение которой не входит в круг обязанностей текстового процессора.

Вы предлагаете организовать процесс иначе? Заранее составить черновик документа, в нем выявить места, требующие вычислений, обращений к базам данных – выбрать нужные данные в БД, все посчитать… Но далеко не каждый деловой документ сразу рождается таким, каким он уходит в большой и недружелюбный мир.

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

Деловой документ – пример. Можно найти массу других примеров. Суть проблемы ясна, как мне кажется.

Требуется небольшое дополнение: как вы представляете себе переключение из программы А в программу Б? Как в первых версиях операционной системы iPhone (тогда iPhoneOS)?

Нет. Выглядело это примерно так:

  • сохранить все изменения;
  • завершить работу программы A;
  • извлечь её диск (дискету) из дисковода;
  • вставить дискету в дисковод и загрузить его;
  • запустить программу Б.

Многие из строк в приведенном списке на самом деле были не одним действием, а целой группой действий, нередко требующих внимания и сосредоточенности, а иногда и ума.

Чем невероятен Невероятный Джек?

Вы уже догадались. Ребята из Кингз Парк в штате Нью Йорк (их имена, судьбы, увлечения и прочие полезные мелочи – все это неизвестно) сделали именно то, чему учат сегодня во всех, наверное, бизнес-школах мира: самый удачный программный продукт – это решение какой-то проблемы, с которой сталкиваются потенциальные его пользователи.

Возможно, этому учили уже в начале 80-х, и ребята вполне могли откликнуться на этот “мессидж”, недаром компания называлась Business Solutions Inc.

Стива Арантс, опубликовавший в ноябрьском номере журнала Creative Computing в том самом 1983 году обзор этой программы, сказал самое главное:

Это текстовый процессор, электронные таблицы и база данных НА ОДНОЙ ДИСКЕТЕ!

В год самой низкой температуры на Земле: Incredible Jack. Чем невероятен Невероятный Джек? Фото.

Этим и был невероятен Невероятный Джек. Incredible Jack (of all trades), как напечатано на купоне, позволяющем с 75% скидкой получить копию программы, взамен погибшей вместе с оригинальной дискетой. Гибкие 5,25-дюймовые дискеты были очень уязвимы.

Английское идиоматическое выражение “Jack of all trades” переводится на русский как “мастер на все руки”. Невероятный мастер на все руки? Вы бы купили программу с таким названием? Я сегодняшний – нет. Но в 1983-м, пожалуй, название бы меня не остановило.

Если бы в Incredible Jack и в самом деле были встроены электронные таблицы и СУБД, на этом можно было бы закончить. Но все было намного интереснее. Их там не было. Даже по меркам тогдашнего времени, еще не сильно избалованного почти разумными офисами и works’ами с миллионами полезных функций.

В других обзорах упоминаются невразумительные “функции электронных таблиц, но без традиционной решетки ячеек”, “функция печати почтовых адресов”, “функция управления файлами”. Еще, как что-то очень важное, сообщалось, что программа написана на UCSD-Паскале и что это очень прогрессивно. “Но BASIC все еще очень силен, поскольку в него вложены огромные деньги”.

В комплекте поставки программы Incredible Jack был учебник, в 138 страниц. Он у меня есть, поэтому (хоть это никому и не интересно) можно реконструировать особенности Incredible Jack. Археологи, завидуйте! Если бы к каждому черепку или обломку гребешка аборигены ушедших столетий прикладывали подробный мануал…

Вскрытие покажет

По словам авторов программы, большинство пользователей используют для работы с текстами, вычислений и регистрации записей три разных программы. А JACK, как эту программу называют (по-домашнему) в руководстве, справляется со всеми этими задачами один.

Функции программы – обработка текстов, вычисления и “сохранение и извлечение записей”. Никаких электронных таблиц или баз данных.

Обработка текстов (создание, редактирование и все такое) – это понятно. Но зато, и в этом новация JACK’а, в любой точке любого текста можно создать “поле”.

Поле создается всякий раз, когда пользователь вводит двоеточие. На экране появляется несколько пробелов и знак вставки “‸”. Это и есть границы поля. Но изымать двоеточие из доступного для общегражданского применения запаса символов авторы JACK’а не стали. Знак вставки можно просто стереть, и поле исчезнет.

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

  • установить курсор в любом месте между “:” и “‸”;
  • перейти в раздел Footnote (часть экрана ниже текста), с помощью команды Control-F и возврата каретки;
  • впечатать в Footnote имя поля, например PRICE.

Это если поле – “переменная”, значение которой пользователь будет вводить сам. Если значение поля вычисляется из значений других полей, в Footnote вводится формула для его вычисления, например:

TOPAY: PRICE * QTY - IF PRICE*QTY>500 THEN PRICE*QTY*0.05 ELSE 0 END

Все понятно, да? На всякий случай “переведу”: если произведение цены (PRICE) и количества (QTY) больше чем 500, сумма к оплате (TOPAY) равна этому произведению минус 5 процентов (скидка), иначе она равна этому произведению.

Число пробелов между “:” и “‸” задают максимальный размер данных в поле.

В Footnote нашего примера должны быть определены следующие поля, при этом покажу кое-что интересное:

code>PRICE: ‸2 –
QTY: ‸–
TOPAY: PRICE * QTY — IF PRICE*QTY>500 THEN PRICE*QTY*0.05 ELSE 0 END ‸2 –

Цифра после знака вставки определяет, сколько знаков после десятичной точки нужно выводить на экран и в распечатку. Это и есть “что-то интересное”. Вам неинтересно, да?

Автоматически вычисления в тексте производятся только после ввода формулы или внесения в нее изменений. Для пересчета необходимо набрать тот же самый Control-F и нажать клавишу возврата каретки.

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

Формы – это тот же самый текст, в котором имена полей принято задавать прямо в тексте, и по завершении создания формы “запирать” её, включая немедленное реагирование на изменение любого значения в любом поле.

Формы служат не только для вычислений. У них есть значительно более важная функция: регистрация и отображение “записей”. Почти база данных: есть поля с уникальными (в пределах формы) именами, есть возможность извлечения не всех записей, а отвечающих критерию, заданному формулой (например, PRICE>125 AND QTY>100). Выводить записи можно в отсортированном порядке, JACK предлагает несколько алгоритмов сортировки.

Это далеко не все из написанного в руководстве пользователя, но мне понравился подход неизвестных отцов JACK’а – очень изобретательно, разумно и аккуратно. Тогда люди еще не разучились думать…

О судьбе JACK’а

В мае 1983 года Incredible Jack 1.0 продавался за 179 долларов. Плюс налог с продаж, в штате Нью Йорк в 1983 году – 7,25% от цены.

Программа была совместима с Apple II Plus (при условии установки Language Card, платы, которая увеличивала объем его оперативной памяти до 64 килобайт) и с Apple IIe (без каких-либо изменений), кроме того требовалось наличие 2 или более дисководов для 5,25-дюймовых дискет.

В ноябре 1983 года JACK продавался уже за 129 долларов плюс налог с продаж.

В 1984 году вышел Incredible Jack 1.1, к набору функций добавилась генерация графиков и диаграмм (как в Lotus 1-2-3), а в ноябре того же года Apple Computer вывела на рынок AppleWorks для Apple II, и от Невероятного Джека остались только несколько статей на страницах древних журналов, хорошо написанное и подробное руководство и… теперь вот еще и эта статья.

О самой низкой температуре на Земле

Конечно же, я не имел в виду всю историю нашей планеты. Мало ли какие погоды стояли тут три или четыре миллиарда лет тому назад – не жил я тогда.

21 июля 1983 года в Антарктиде, на станции Восток, была зарегистрирована самая низкая температура за все время наблюдений: -89,2ºC. Это значение остается рекордным в наши дни.

Apple IMacintoshИстория AppleОбзоры приложений для iOS и Mac