Classic AppleWorks: створення світу

^ Works для Apple II надав Apple абсолютно реальний шанс зайняти лідируючу позицію в офісах усього світу. Шанс з розряду єдиних у житті. Скористатися ним було нескладно: треба було всього лише не заважати. А ще краще допомогти. Але... Apple не була б Apple.

Подібні шанси (єдині в житті) випадали Apple Computer неодноразово. І майже всі вони були зарозуміло проігноровані. Саме існування Apple, строго кажучи, ненауково і нелогічно. Або життя складніше і різноманітніше, ніж нам здається.


У заголовку головний герой оповіді названий дещо незвично - за життя він не був класиком, його звали просто ^ Works. Справа в тому, що ^ Works називалися три абсолютно різних програмних продукти, в яких не було жодної загальної сходинки коду. Поки їх було тільки два (″ Works ″ і ″ Works GS ″), складнощів не виникало.

У 1998 році Стів Джобс ліквідував Claris Inc, перетворивши її на FileMaker Inc, забрав частину програмних продуктів під крило Apple - і перейменував ClarisWorks у ^ Works. Ось так і виникла необхідність якось їх розрізняти.

ClarisWorks/″ Works ″ і ″ Works для Apple II ″ довготривало ″ і неестетично. А ось Classic  Works, просто  Works, і  Works GS, по-моєму, цілком. Якщо вам не подобається, я тут ні до чого: назву Classic ^ Works придумав не я.

У цьому тексті ^ Works завжди позначає «^ Works для Apple II».

 Works спокушає Apple

^ Works розробив Руперт Лісснер. Коли програма була готова (Руперт розробив дві версії, для Apple II і Apple III), Apple Computer купила у нього вихідний код і всі права на версію для Apple II. Вихідний код і права на версію для Apple III Руперт дуже вигідно продав компанії Haba Systems, яка випустила її під назвою E-Z Pieces.

Під час розробки ^ Works Руперт консультувався з групою користувацького інтерфейсу на Apple і бував у кампусі компанії. Але в ті часи так чинив не тільки він. Керівництво цікавилося тільки готовими програмами.


Хоча до кінця 1984 року ніякої ^ Works взагалі не було. У дитинстві її звали ^ Pie, «яблучний пиріг».

У 1984 році Apple Computer боролася з власною нескромністю. Її звинувачували в тому, що компанія - виробник операційних системи і комп'ютерів сама конкурує на ринку програмного забезпечення для своїх виробів. Це вважалося неетичним, але найголовніше - програми від Apple Computer рвали конкурентів на шматки, вважалося, що з ними взагалі неможливо конкурувати...

Наприклад, текстовий процесор ^ Write вбив всі спроби сторонніх авторів створити свій власний текстовий процесор для Apple II. Ніхто не наважувався.

Але і встояти проти ^ Works компанія не могла, спокуса була занадто велика - вона мучилася докорами совісті і здійснювала по відношенню до спокусника дивні вчинки.

Між тим, Руперт Лісснер - той самий незалежний сторонній розробник з тих, хто «не міг конкурувати з Apple» і за чиї права так наполегливо боролася комп'ютерна спільнота. Просто дуже талановитий.

Абсолютно необхідно сказати пару слів про автора.

Руперт Ліснер, UCSD-Паскаль і p-Code

Apple Computer невипадково придивлялася до розробок Ліснера. Руперта там вже знали.


У 1980 році Руперт Ліснер спробував сам продавати систему управління базами даних (СУБД) для Apple III, QuickFile III. Продавав він настільки ж бездарно, наскільки геніально проектував і програмував.


Програма була написана на UCSD-Паскалі, спеціально для якого Apple створила в 1979 році операційну систему Apple Pascal. UCSD-Паскаль був непоганим розширенням стандартного Паскаля, що перетворював цю іграшкову мову на реальний інструмент для написання складних програм, Правда, програми, написані на UCSD-Паскалі, відрізняла від інших «фірмова» повільність.

У комп'ютерних колах навіть ходила чутка про те, що нібито Apple Pascal (люди не знали, що це не мова, а операційна система!) не компільована мова, а інтерпретована.

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

Інтерпретований Паскаль - екзотика. Але, як не дивно, в деякій мірі так воно і було, правда менш нерозумно. UCSD-Паскаль компілював вихідний код, але не в машинну мову процесора, а в p-Code, універсальний асемблер для неіснуючого процесора, який виконувався у віртуальній машині (як у Java), яка перекладала p-Code, фразу за фразою. Це набагато швидше, ніж синхронно переводити з Паскаля, але повільніше, ніж просто виконувати машинний код.


Не поспішайте обливати брудом Університет Каліфорнії в Сан Дієго (і всіх, хто придумав і реалізовував цю концепцію з 1966 року), у такого підходу багато достоїнств, а швидкість виконання - всього лише плата за них.

QuickFile III для Apple III потрапила в поле зору Apple, програма була приголомшливо гнучкою і легкою у використанні - і Apple взяла на себе її просування і реалізацію. Наприкінці 1980-го або на початку 1981-го Руперт розробив QuickFile  e, версію для Apple  e, яку Apple теж взяла під своє крило.

Схоже, в QuickFile ^ e і QuickFile III це було реалізовано вперше: у файлів програм були однакові розширення і структура. Іншими словами, файл, створений в QuickFile III, міг використовуватися QuickFile ^ e, як якщо б він був її файлом, і навпаки. Може, хтось вже робив це - але дуже часто обходилися без подібних тонкощів.

Загадковим для мене способом Лісснер зміг познайомитися з Apple Lisa за пару років до її виходу в світ. Хоча до параноїдального захисту секретів в Apple Computer тоді ще не дійшли, а в кампус компанії він був вхож.

Знайомство з Lisa Office System не пройшло безслідно для Руперта, у нього виникла думка: а що, якщо об'єднати в одній програмі електронні таблиці, базу даних і текстовий процесор?


Lisa Office System не була інтегральною програмою. Це був інтерфейс для кінцевих користувачів, графічний і доброзичливий, в якому користувачів чекали сім програм: LisaWrite, LisaCalc, LisaDraw, LisaGraph, LisaProject, LisaList и LisaTerminal. На думку Apple, це було «все, що може знадобитися користувачеві». Писати в Lisa для самої Lisa було непросто, і до самого кінця платформи для неї був випущений тільки один сторонній програмний продукт.

До 1982 року задум остаточно дозрів і перетворився на проект ^ Pie («яблучний пиріг»).

ApplePie

Задум був занадто красивий, щоб вбивати його повільністю, тим більше що тепер від процесора вимагалася куди більша напруга - тому код ^ Pie, від першого рядка до останній, написаний на асемблері 6502.

Програма писалася з педантичною ретельністю (чеки від Apple Computer, на дуже навіть пристойні суми, надходили регулярно), з увагою до найдрібніших деталей.

Точніше, дві програми: варіанти для Apple II і для Apple III занадто сильно відрізнялися один від іншого, через відмінності в архітектурі та системі управління пам'яттю.



Як і у випадку з QuickFile, розширення і структура файлів для всіх типів документів нової програми, були зроблені однаковими. Крім того, передбачався імпорт даних із зовнішнього світу - програма декількох чужих для ^ Pie форматів (включаючи файли QuickFile, ASCII-файли, таблиці VisiCalc і DIF-файли).

DIF-файли (текстові файли спеціальної організації) досі використовуються для обміну даними між електронними таблицями різних типів. Формат підтримувався на початку 80-х електронними таблицями Excel, Lotus 1-2-3, dBase і багатьма іншими).

У файлів «яблучного пирога» розширення (на Apple II і Apple III, і навіть на Mac'e на ранній стадії його розробки, тип файлу позначався розширеннями) були:

  • .AWP - документи текстового процесора;
  • .ADB - документи бази даних;
  • .ASP - документи електронних таблиць, взагалі повинно було бути .ASS, але це було б занадто зухвало.

Ще одна цікава особливість - загальний буфер обміну даними між усіма частинами програми...

COM_SPPAGEBUILDER_NO_ITEMS_FOUND