После того, как выпуск iPhone потряс индустрию мобильных телефонов, практически все известные игроки были в замешательстве и им потребовались годы, чтобы встать на ноги. На этом пути было несколько жертв, но, вероятно, ни одна из них не ударила по мне сильнее, чем гибель Palm.
Как давний пользователь Palm, я был очень взволнован, когда компания представила первую версию Pre и свою совершенно новую операционную систему webOS в январе 2009 года. На тот момент Windows Mobile всё ещё управлялась стилусом, Android был на уровне API 1, а BlackBerry и Nokia не имели представления, что они делают. К сожалению, webOS так и не получила широкого распространения, а затем и вовсе была куплена HP вместе со всей Palm. HP погубила много хороших вещей, таких как Compaq, DEC Alpha и Tru64 Unix. webOS, к сожалению, не стала исключением.
В этой статье я собираюсь рассказать о той Palm, которую я полюбил, — о временах PalmOS. Для меня, как для человека, который все еще умеет писать Graffiti II, это экскурс в историю компании и операционной системы, заложившей, на мой взгляд, основу популярных мобильных операционных систем, используемых нами сегодня. Распространение Android и iOS может затмить богатое прошлое мобильных компьютеров, но я этого не потерплю. Именно Palm сформировала эту отрасль больше, чем какая-либо другая компания, и она заслуживают похвалы.
Первые шаги
Давайте начнем с 19-го века. Да, здесь нет ошибки. История самой Palm, безусловно, уходит корнями не в те далекие времена. Компания была основана в 1992 году Джеффом Хокинсом (Jeff Hawkins), к которому присоединились Донна Дубински (Donna Dubinsky) и Эд Коллиган (Edward «Ed» Colligan), и те из вас, кто хорошо разбирается в истории, могли бы немного погрузиться в историю Palm до конца 1980-х годов. В то время Хокинс работал в GRiD, где создал GRiDPad, один из первых планшетных компьютеров и прямой предшественник Palm Pilot.
Чтобы понять историю Palm, вам нужно понять историю Джеффа. Чтобы понять историю Джеффа, вам нужно взглянуть на технологию, которая лежала в основе Palm Pilot: распознавание рукописного ввода. Эта технология, безусловно, не была новой, когда Хокинс начал над ней работать. Первые упоминания датируются 1888 годом, когда ученые и изобретатели так или иначе работали над этой темой.
Таким образом, история распознавания рукописного текста начинается в конце 19 века. Наиболее известной из существовавших тогда систем, выполняющих функции распознавания текста, был Телеавтограф. Это механическое устройство было изобретено и запатентовано Элайша Греем (Elisha Gray) в 1888 году и преобразовало рукописный текст или рисунки в электрические импульсы с помощью потенциометров, которые затем передавались на приемную станцию, воссоздающую на бумаге полученный оригинал с помощью сервомеханизмов и ручки.
Какой бы гениальной ни была эта система, фактически её работа не заключалась в распознавании текста. Но уже в 1914 году было изобретено другое устройство, которое считается первым в распознавании рукописных символов. Хайман Эли Голдберг (Hyman Eli Goldberg) изобрел и запатентовал свой «Контроллер» — устройство, преобразующее написанные от руки цифры в электрические данные, которые, в свою очередь, дают инструкции машине в режиме реального времени. Это довольно оригинально. Я не специалист по чтению патентных заявок, и устаревший английский в этом вопросе не помогает, но, насколько я понимаю, это просто и в то же время умно. Символы пишутся электропроводящими чернилами. Затем на надпись ставится «контактор», состоящий из шести групп по пять «выводов» (таким образом, можно записать за раз шесть цифр). Электропроводящие чернила соединяют пять выводов определенным образом, что создает электрические цепи. То, каким образом чернила соединяют эти клеммы, зависит от формы символа, создавая, таким образом, различные схемы. Полученный ток передаёт соответствующие команды подключенной к устройству машине.
Ни в одной из этих систем не использовался компьютер, так что до распознавания рукописного текста в том виде, в каком мы его знаем сегодня, нам еще далеко. Существовали и другие проекты, даже более продвинутые, чем те, что я уже описал. Но я не собираюсь рассматривать их все, ведь главная идея была в том, чтобы показать, что идея управления с помощью рукописи довольно стара. Теперь давайте перенесемся в конец 50-х — начало 60-х и привнесем в этот процесс компьютерные технологии.
Stylator
Прежде чем мы приступим к главному, нам следует подумать о том, что необходимо для работы компьютерной системы, использующей рукописный ввод. Это кажется достаточно простым, но подумайте о том, как выглядели компьютеры в те дни, и станет очевидно, что многое пришлось сделать, прежде чем мы пришли к компьютерному распознаванию рукописей. Требовалось устройство ввода, дисплей для отображения результатов, мощный компьютер и сложное программное обеспечение, чтобы соединить все это воедино.
Устройство ввода было разработано в первую очередь. В 1957 году Том Даймонд (Tom Dimond) представил свое изобретение — «Стилятор» в подробной статье под названием «Устройства для чтения рукописных символов». Его название — это сокращение от слов stylus (стилус) и interpreter (интерпретатор) или translator (переводчик), что должно быть четким указанием на то, что мы видим: графический планшет со стилусом.
Базовая концепция Stylator не так уж сильно отличается от «Контроллера» Голдберга. Однако она содержит несколько улучшений, наиболее важным из которых является то, что вместо соединения точек выводов проводящими чернилами для создания цепи, вы используете стилус для рисования по пластиковой поверхности со встроенными в нее медными проводниками. Провода расположены таким образом, что всего тремя линиями, состоящими из семи проводов, можно распознать все цифровые символы. Иллюстрация ниже из статьи Даймонда говорит сама за себя.
Как вы можете видеть, написание цифр «вокруг» двух точек обеспечит распознавание всех цифр. Когда стилус проходит по одному из проводников, на проводник подается напряжение, а совокупность этих сигналов соответствует цифре. Такая система допускает гораздо большее разнообразие стилей рукописного ввода, чем контроллер, как вы можете видеть ниже на цифре 3.
Двухточечная система может быть расширена до четырехточечной, чтобы соответствовать всем буквам алфавита, но, как вы можете видеть на примерах ниже, она требует определенных правил при написании букв. На этом моменте хочется сделать небольшое лирическое отступление и сказать, что подобный метод «Графити» использовался в Palm для облегчения распознавания ввода слабым процессором устройства.
Даймонд также перечисляет ряд возможных применений Stylator.
«Он является конкурентом классических клавиатур во многих приложениях. Он успешно использовался для управления телетайпной машиной. Этот вариант привлекателен тем, что является недорогим и не требует длительного обучения работе с клавиатурой, — пишет Даймонд. — Если использовать области критериев для управления частотой генератора, получается недорогое передающее устройство, которое может быть подключено к телефонному аппарату для отправки информации к удаленным машинам».
Есть несколько ключевых выводов из проекта Stylator, наиболее важным из которых является то, что он затрагивает важнейший аспект реализации распознавания рукописного ввода: создаете ли вы систему, которая пытается распознавать рукописный ввод, независимо от того, чей это почерк, или, в качестве альтернативы, вы просите пользователей выучить конкретный почерк, который системе легче распознать? В первом случае вам понадобится очень, очень умное программное обеспечение и очень чувствительная поверхность для письма. Во втором — простые буквы и цифры с минимальным количеством штрихов, чтобы их было легко выучить, но программное обеспечение для распознавания может сосредоточиться именно на этом конкретном почерке, что значительно снижает его сложность. Stylator явно выбрал последнее из-за аппаратных ограничений.
Можно сделать вывод, что «Стилатор», несмотря на огромный скачок вперед по сравнению с предыдущими системами, все еще был довольно ограничен в возможностях. Чтобы распознавание действительно стало эффективным методом ввода, нам нужно нечто большее. Давайте сделаем еще один шаг вперед и создадим систему, состоящую из графического планшета, ЭЛТ-дисплея, программного обеспечения для распознавания и пользовательского интерфейса — по сути, Palm Pilot размером с комнату.
«Святой Грааль»
В течение 1960-х годов над таким проектом трудилась корпорация RAND. Он назывался GRAIL, сокращенно от Graphical Input Language Project («Язык графического ввода»). Описание проекта простое:
Человек, используя планшет/стилус RAND и электронно-лучевой дисплей, может создавать и редактировать компьютерную программу с помощью блок-схем, а затем выполнять ее. Система обеспечивает соответствующую обратную связь на дисплее.
Весь проект подробно описан в заключительном отчете, состоящем из трех частей, и был спонсирован Агентством перспективных исследовательских проектов Министерства обороны США.
Проект GRAIL был частью более широкого в то время интереса отрасли к взаимодействию человека и машины. GRAIL включал в себя онлайн-распознавание рукописного ввода, графический пользовательский интерфейс с такими функциями, как ручки изменения размера, кнопки, несколько общесистемных жестов, возможности редактирования в режиме реального времени и многое другое.
Планшет состоит из листа майлара с печатными схемами на каждой из двух его сторон; верхняя схема содержит линии, обозначающие позицию X, в то время как нижняя схема содержит линии, обозначающие позицию Y. Эти линии генерируют отрицательные и положительные импульсы, которые улавливаются стилусом с высоким входным сопротивлением. Каждая позиция X и Y состоит из определенной последовательности отрицательных и положительных импульсов; отрицательные импульсы — это нули, а положительные импульсы — единицы, которые при объединении дают код Грея для каждой позиции X и Y. Затем они могут быть введены в компьютер, где происходит дальнейшее волшебство.
Это всего лишь базовое описание того, как работает система, значительно упрощенное и основанное на очень простой, состоящей всего из 8 строк версии планшета RAND, используемой в статье в пояснительных целях. В глубине системы происходит гораздо больше интересных вещей (например, игнорирование случайных перемещений).
Целью проекта GRAIL было создание «общей рабочей поверхности» как для человека, так и для компьютера — электронно-лучевого дисплея. Они пришли к выводу, что гибкость выходных данных (ЭЛТ-дисплея) должна соответствовать гибкости входных данных, чтобы было возможно прямое и естественное отображение на двумерной поверхности, и, очевидно, именно здесь планшет RAND снова вступает в игру. Перед проектом стояли четыре задачи проектирования:
- Использовать только ЭЛТ и планшет для интерпретации движений стилуса в режиме реального времени.
- Сделать операции наглядными.
- Повысить отзывчивость системы.
- Сделать продукт завершенным средством решения задач.
Это привело их к созданию графического языка программирования, который использует блок-схемы как средство, с помощью которого пользователь дает компьютеру инструкции по решению проблем. Блок-схемы были нарисованы вручную на планшете и отображались на экране в режиме реального времени.
Пользователь может нарисовать произвольную фигуру (например прямоугольник), а компьютер заменит ее нормализованным вариантом. Затем можно манипулировать этими фигурами (изменять размер, перемещать, видоизменять) и соединять их, создавая блок-схему. Пользователь также мог писать на планшете и выводить текст на экран, и, как и в случае с прямоугольником, компьютер распознавал рукописные символы и превращал
их в печатные.
Чтобы упростить взаимодействие, точка на дисплее отображала положение стилуса на планшете, и при каждом нажатии стилуса на планшет на дисплее отображались «чернила» в режиме реального времени. Поверхность планшета соответствует поверхности дисплея в соотношении 1:1. Сочетание этих трех элементов позволяет пользователю постоянно концентрироваться на дисплее, что, несомненно, является промежуточным этапом на пути к современным графическим планшетам высокого класса, которые сочетают в себе чувствительные к нажатию цифровые преобразователи и стилусы с дисплеями.
Система также содержала несколько элементов, которые будут возвращаться в более поздних пользовательских интерфейсах, таких как кнопки и маркеры изменения размера, и даже исправляла пользователя, если он нарисует что-то «неприемлемое» (например, переход от одного символа к другому, если такой переход запрещен).
Благодаря чудесам Интернета мы можем увидеть GRAIL в действии и послушать рассказ Алана Кея (Alan Kay). В видео Кей даже утверждает, что один из элементов управления окнами Mac было «буквально» заимствовано из GRAIL. В проекте GRAIL также появилось несколько жестов, которые сохранятся и будут использоваться на протяжении десятилетий. Жест «срезать угол» использовался для создания тестового поля, жест «закрасить» — для удаления чего-либо и так далее. Эти жесты позже появятся в системах, использующих парадигму пользовательского интерфейса «записная книжка», таких как PenPoint OS и Newton OS. Обязательно посмотрите видео ниже для наглядного понимания моих слов.
Самой большой проблемой для инженеров проекта GRAIL было обеспечить, чтобы все происходило в режиме реального времени и чтобы система была достаточно отзывчивой, ведь пользователь должен чувствовать непосредственный контроль над выполняемой им работой. Любая существенная задержка оказала бы сильное негативное влияние на работу (что по-прежнему остается проблемой для устройств с сенсорным управлением). Исследователи отмечают, что вычислительные затраты на обеспечение такой точной обратной связи с пользователем невероятно высоки, и поэтому им пришлось применить несколько специализированных методов для достижения этой цели.
Проект GRAIL был запущен на IBM System/360 с двумя жесткими дисками в качестве дополнительного хранилища. ЭЛТ-дисплей и базовая операционная система были созданы с нуля специально для GRAIL. Несмотря на локальный характер проекта и низкую распространенность мейнфреймов, исследователи отмечают, что система была перегружена в условиях пиковых нагрузок, что свидетельствует о том, что проект, возможно, немного опередил свое время. Я был удивлен, обнаружив, насколько продвинутой была система распознавания — она вышла за рамки простого распознавания рукописных символов и позволяла использовать различные жесты для редактирования текста, а также автоматический синтаксический анализ для обеспечения корректности строк (в конце концов, это среда программирования).
Итак, RAND GRAIL — это планшет и ручка, управляющие целой системой, использующей рукописный ввод, распознавание формы и жестов. Каков следующий шаг? Что ж, каким бы увлекательным и впечатляющим ни был проект GRAIL, это «всего лишь» исследовательский проект, а не реальный коммерческий продукт. Другими словами, следующий шаг — выяснить, кто первым вывел эту идею на рынок.
Выход на рынок
И здесь у нас возникли проблемы, потому что я не могу найти достаточно информации о том, кто впервые вывел планшетный компьютер на рынок. Жан Ренар Уорд (Jean Renard Ward), ветеран в области перьевого ввода и распознавания символов, составил обширную библиографию по этим темам и разместил ее в Интернете, чтобы мы могли с ней ознакомиться.
В своём труде он отмечает, что Applicon Incorporated (компания, разрабатывавшая, среди прочего, системы автоматизированного проектирования и производства) создала первую коммерческую систему распознавания жестов. Он ссылается на одно из руководств компании, которое, похоже, недоступно в Интернете, и задается вопросом, использует ли Applicon распознаватель символов Ledeen. Поначалу я не смог найти много информации об Applicon. О компании есть страница в «Википедии», но там нет подтверждения и ссылок, поэтому я не мог судить о достоверности сделанных заявлений. Статья утверждает, что продукты Applicon работали на компьютерах PDP-11 от DEC, и что, как и в проекте GRAIL, они использовали планшет и ЭЛТ-дисплей для ввода и обработки символов. Однако это невозможно было подтвердить.
И тогда, предприняв последнюю отчаянную попытку найти что-то более осязаемое, я наткнулся на золото. Дэвид Э. Вайнберг написал подробную историю систем автоматизированного проектирования (САПР) под названием «Революция инженерного проектирования». Глава 7 полностью посвящена Applicon и истории компании, а также содержит довольно подробное описание поставляемых ею продуктов. Первые их системы, вышедшие на рынок в начале 70-х, представляли собой машины PDP-11/34, которые Applicon объединила со своим собственным графическим процессором Graphics 32 и назвала центральным процессором AGS/895. Программное обеспечение было написано на ассемблере и использовало пользовательскую операционную систему (до выхода RSX-11M в 1987 году). Уникальной особенностью этого продукта были средства, с помощью которых пользователь взаимодействовал с системой. Как писал Вайнберг:
Ключевой характеристикой программного обеспечения AGS от Applicon был ввод команды распознавания образов, или того, что компания называла распознаванием символов на планшете. Например, если пользователь хотел увеличить масштаб определенной области рисунка, он просто обводил интересующую область стилусом на планшете, и система восстанавливала изображение, отображая только интересующую область. Горизонтальный размер устанавливался путем ввода точки, за которой следовала тире, в то время как вертикальная размерная линия представляла собой точку, за которой следовала короткая вертикальная линия. Базовое программное обеспечение управлялось командами, и эти введенные шаблоны просто запускали их последовательность. Система поставлялась с несколькими предопределенными шаблонами, но пользователи могли создавать шаблоны для представления любой желаемой последовательности операций.
Хотя в описании конкретно не указано, что система использует распознавание рукописных символов, можно сделать вывод, что буква или цифра — это просто шаблон, которому мы произвольно приписываем значение. Предположительно, Applicon использовал распознаватель жестов Ledeen, который в некоторой литературе на самом деле называется распознавателем символов Ledeen и способен распознавать рукописный ввод. Если кому–то из вас покажется, что я делаю слишком поспешные выводы, я был бы очень рад услышать о чьем-то личном опыте работы, с продуктами Applicon в те дни.
Начиная с 1970-х годов и далее, на рынке появилось множество коммерческих продуктов, использующих распознавание рукописного ввода, стилусы и планшеты. Возьмем, к примеру, Pencept PenPad, над которым работал сам Жан Ренар Уорд. На его веб–сайте есть увлекательное видео и несколько изображений, демонстрирующих, как это работает, — в основном это более компактная версия систем, которые мы только что обсуждали, таких как GRAIL и AGS/895.
В качестве примечания, на этой же странице вы также найдете более экзотические подходы к распознаванию рукописного ввода, такие как калькулятор Casio PF-8000-s, в котором вместо аналого-цифрового преобразователя используется сетка прорезиненных кнопок. Несмотря на то, что это не имеет никакого отношения к данной статье, я нахожу концепцию довольно увлекательной, поэтому всё равно упомянул о ней.
Эти относительно ранние попытки привлечь внимание широкой публики к распознаванию рукописного текста и вводу с помощью пера позже привлекли внимание технологических гигантов. GO Corporation, которая чисто технически была стартапом, но с огромным объемом финансирования, разработала PenPoint OS, которую Microsoft восприняла как личную угрозу и после нескольких совещаний компания из Редмонда решила, что ей также необходимо выйти на рынок компьютеров с перьевым вводом — так появилась Windows for Pen Computers на основе Windows 3.11. Apple, конечно же, также последовала этой тенденции, выпустив Newton. Все эти продукты — PenPoint OS, Windows for Pen Computers, Newton — имеют одну общую черту: они потерпели коммерческий крах. Конечно, это были замечательные технологии, но они не нашли широкого распространения. Только после выхода оригинального Palm Pilot распознавание рукописного текста по-настоящему начало набирать обороты.
Подводя итог
Если вы продвинулись так далеко, то уже прочитали около 3000 слов в виде краткой истории распознавания рукописного текста. Хотя это может показаться странным для статьи, которая, как предполагается, посвящена Palm, я сделал это, чтобы проиллюстрировать мысль, которую я неоднократно пытался донести в прошлом, а именно, что продукты не изобретаются в одночасье. Теперь, когда патенты правят отраслью, а компании и их продукция стали объектами поклонения, среди этих компаний и их последователей наблюдается растущая тенденция заявлять о своей собственности на идеи, продукты и концепции. Эта тенденция является токсичной, наносящей ущерб отрасли и препятствующей технологическому прогрессу.
Palm Pilot, хотя и является революционным продуктом, который определил индустрию мобильных компьютеров и продолжает составлять ее основу по сей день, не возник просто как воздух. Это кульминация более чем столетней работы в области инженерии и вычислительной техники, и этот модный смартфон в вашем кармане ничем не отличается от других. Облегчив душу, я готов рассказать вам про Palm в следующей главе.
Это первая часть перевода статьи Palm: I’m ready to wallow now.