HyperCard — это программное приложение и комплект разработки для компьютеров Apple Macintosh и Apple IIGS . Это одна из первых успешных гипермедиа- систем, предшествовавших Всемирной паутине .
HyperCard объединяет базу данных в виде плоских файлов с графическим, гибким, настраиваемым пользователем интерфейсом. [3] HyperCard включает встроенный язык программирования HyperTalk для управления данными и пользовательским интерфейсом.
Такое сочетание функций — база данных с простой структурой форм, гибкая поддержка графики и простота программирования — подходит HyperCard для множества различных проектов, таких как быстрая разработка приложений и баз данных, интерактивных приложений без требований к базам данных, систем управления и контроля, а также множества примеров в демосцене .
HyperCard был первоначально выпущен в 1987 году по цене $49.95 и был включен бесплатно во все новые Mac, проданные впоследствии. [1] Он был снят с продажи в марте 2004 года, получив свое последнее обновление в 1998 году после возвращения Стива Джобса в Apple. HyperCard не был портирован на Mac OS X , но может работать в Classic Environment на версиях Mac OS X, которые его поддерживают.
Прелесть HyperCard в том, что он позволяет людям программировать, не изучая, как писать код — то, что я называю «программированием для всех нас». HyperCard дал людям возможность делать то, что они никогда бы не подумали сделать в прошлом без большого объема тяжелого программирования. Он позволил многим непрограммистам, таким как я, попасть в этот цикл.
Дэвид Лингвуд, APDA [5]
HyperCard основан на концепции «стопки» виртуальных «карточек». [6] Карты содержат данные, как и в картоприемнике Rolodex . Каждая карточка содержит набор интерактивных объектов, включая текстовые поля, флажки, кнопки и аналогичные элементы графического пользовательского интерфейса (GUI). Пользователи просматривают стопку, переходя от карточки к карточке, используя встроенные функции навигации, мощный механизм поиска или с помощью созданных пользователем скриптов. [7]
Пользователи создают или изменяют стопки, добавляя новые карточки. Они размещают объекты GUI на карточках, используя интерактивный механизм компоновки, основанный на простом интерфейсе перетаскивания. [7] Кроме того, HyperCard включает прототипы или шаблоны карточек, называемые фонами; когда создаются новые карточки, они могут ссылаться на одну из этих фоновых карточек, что заставляет все объекты на фоне «просматриваться» за новой карточкой. Таким образом, можно создать стопку карточек с общей компоновкой и функциональностью. Механизм компоновки по своей концепции похож на форму, используемую в большинстве сред быстрой разработки приложений (RAD), таких как Borland Delphi , Microsoft Visual Basic и Visual Studio .
Функции базы данных системы HyperCard основаны на хранении состояния всех объектов на картах в физическом файле, представляющем стек. База данных не существует как отдельная система в стеке HyperCard; не существует движка базы данных или аналогичной конструкции. Вместо этого состояние любого объекта в системе считается живым и доступным для редактирования в любое время. С точки зрения среды выполнения HyperCard нет никакой разницы между перемещением текстового поля на карте и вводом в него; обе операции просто изменяют состояние целевого объекта в стеке. Такие изменения немедленно сохраняются после завершения, поэтому ввод в поле приводит к тому, что этот текст сохраняется в физическом файле стека. Система работает в значительной степени без сохранения состояния, без необходимости сохранения во время работы. Это характерно для многих систем, ориентированных на базы данных, хотя и несколько отличается от приложений, основанных на документах.
Последним ключевым элементом в HyperCard является скрипт, единый элемент, несущий код каждого объекта в стеке. Скрипт — это текстовое поле, содержимое которого интерпретируется на языке HyperTalk. [7] Как и любое другое свойство, скрипт любого объекта можно редактировать в любое время, и изменения сохраняются сразу после их завершения. Когда пользователь вызывает действия в графическом интерфейсе, например, нажатие кнопки или ввод текста в поле, эти действия преобразуются в события средой выполнения HyperCard. Затем среда выполнения проверяет скрипт объекта, который является целью события, например кнопки, чтобы узнать, содержит ли его объект скрипта код события, называемый обработчиком. Если он есть, движок HyperTalk запускает обработчик; если нет, среда выполнения проверяет другие объекты в визуальной иерархии.
Эти концепции составляют большую часть системы HyperCard; стеки, фоны и карты обеспечивают систему графического интерфейса пользователя, похожую на форму, файл стека обеспечивает сохранение объектов и функциональность, подобную базе данных, а HyperTalk позволяет писать обработчики для событий графического интерфейса пользователя. Однако, в отличие от большинства систем RAD или баз данных той эпохи, HyperCard объединяет все эти функции, как ориентированные на пользователя, так и на разработчика, в одном приложении. Это обеспечивает быстрый оборот и немедленное прототипирование, возможно, без какого-либо кодирования, позволяя пользователям создавать индивидуальные решения проблем с помощью собственного персонализированного интерфейса. «Расширение прав и возможностей» стало модным словом, поскольку эта возможность была принята сообществом Macintosh, как и фраза «программирование для остальных из нас», [8] [5], то есть для всех, а не только для профессиональных программистов.
Именно это сочетание функций также делает HyperCard мощной гипермедиа- системой. Пользователи могут создавать фоны, соответствующие потребностям какой-либо системы, например, rolodex , и использовать простые команды HyperTalk для предоставления кнопок для перемещения с места на место в стеке или предоставления той же системы навигации в элементах данных пользовательского интерфейса, таких как текстовые поля. Используя эти функции, легко создавать связанные системы, похожие на гипертекстовые ссылки в Интернете. [6] В отличие от Интернета, программирование, размещение и просмотр — это все один и тот же инструмент. Аналогичные системы были созданы для HTML, но традиционные веб-сервисы значительно более тяжеловесны.
HyperCard содержит объектно-ориентированный язык сценариев HyperTalk , который был отмечен за то, что имел синтаксис, напоминающий повседневный английский язык. Возможности языка HyperTalk были предопределены средой HyperCard, хотя они могли быть расширены с помощью внешних функций (XFCN) и команд (XCMD), написанных на компилируемом языке. [9] Слабо типизированный HyperTalk поддерживает большинство стандартных структур программирования, таких как «if–then» и «repeat». HyperTalk многословен, отсюда его простота использования и читабельность. [10] Сегменты кода HyperTalk называются «скриптами», термин, который [ кем? ] считается менее пугающим для начинающих программистов.
HyperCard может быть значительно расширена за счет использования модулей внешних команд (XCMD) и внешних функций (XFCN). Это библиотеки кода, упакованные в ресурсную ветку , которые интегрируются либо в систему в целом, либо в язык HyperTalk в частности; это ранний пример концепции плагина . В отличие от обычных плагинов, они не требуют отдельной установки, прежде чем станут доступны для использования; их можно включить в стек, где они будут напрямую доступны скриптам в этом стеке.
Во время пика популярности HyperCard в конце 1980-х годов целая экосистема поставщиков предлагала тысячи этих внешних устройств, таких как компиляторы HyperTalk, графические системы, доступ к базам данных, подключение к Интернету и анимация. Oracle предложила XCMD, который позволяет HyperCard напрямую запрашивать базы данных Oracle на любой платформе, замененную Oracle Card . BeeHive Technologies предложила аппаратный интерфейс, который позволяет компьютеру управлять внешними устройствами. Подключенный через Apple Desktop Bus (ADB), этот инструмент может считывать состояние подключенных внешних переключателей или записывать цифровые выходы на множество устройств.
Внешние компоненты обеспечивают доступ к Macintosh Toolbox, который содержит множество низкоуровневых команд и функций, не являющихся собственными для HyperTalk, например, управление последовательными и ADB-портами.
HyperCard был создан Биллом Аткинсоном после ЛСД- трипа. [11] Работа над ним началась в марте 1985 года под названием WildCard (отсюда и код создателя WILD). В 1986 году Дэн Уинклер начал работу над HyperTalk , и название было изменено на HyperCard по соображениям товарного знака . Он был выпущен 11 августа 1987 года в первый день MacWorld Conference & Expo в Бостоне , [12] с пониманием того, что Аткинсон передаст HyperCard Apple только в том случае, если компания пообещает выпустить его бесплатно на всех компьютерах Mac. Apple приурочила его выпуск к MacWorld Conference & Expo в Бостоне , штат Массачусетс, чтобы гарантировать максимальную рекламу.
HyperCard стал успешным почти мгновенно. Ассоциация программистов и разработчиков Apple (APDA) заявила: «HyperCard был информационным безумием. С августа [1987 года, когда он был анонсирован] по октябрь наши телефоны не переставали звонить. Это был зоопарк». В течение нескольких месяцев после выпуска было выпущено несколько книг HyperCard и набор из 50 дисков с общедоступными материалами. [5] Менеджеры проектов Apple обнаружили, что HyperCard используется огромным количеством людей, как внутри компании, так и за ее пределами. Отчеты об ошибках и предложения по обновлению продолжали поступать, демонстрируя ее широкий спектр пользователей. Поскольку он также был бесплатным, было трудно оправдать выделение инженерных ресурсов на улучшение программного обеспечения. Apple и ее основные разработчики понимали, что расширение прав и возможностей пользователей HyperCard может снизить продажи обычных упакованных продуктов. [13] Стюарт Олсоп II предположил, что HyperCard может заменить Finder в качестве оболочки графического пользовательского интерфейса Macintosh. [14]
В конце 1989 года Кевин Кэлхун, тогда инженер HyperCard в Apple, возглавил попытку обновить программу. Результатом стала HyperCard 2.0, выпущенная в 1990 году. Новая версия включала компилятор «на лету» , который значительно увеличил производительность кода с интенсивными вычислениями, новый отладчик и множество улучшений базового языка HyperTalk.
В то же время, когда разрабатывалась HyperCard 2.0, отдельная группа в Apple разработала и в 1991 году выпустила HyperCard IIGS, версию HyperCard для системы Apple IIGS . HyperCard IIGS, ориентированная в основном на рынок образования, имеет примерно тот же набор функций, что и версии 1.x Macintosh HyperCard, но при этом поддерживает возможности цветной графики IIGS. Хотя стеки (документы программы HyperCard) несовместимы на двоичном уровне, программа-транслятор (еще один стек HyperCard) позволяет перемещать их с одной платформы на другую.
Затем Apple решила, что большинство ее пакетов прикладного программного обеспечения, включая HyperCard, будут собственностью дочерней компании Claris, находящейся в полной собственности . Многие разработчики HyperCard решили остаться в Apple, а не переходить в Claris, что привело к разделению команды разработчиков. Claris попыталась создать бизнес-модель, в которой HyperCard также могла бы приносить доход. Сначала свободно распространяемые версии HyperCard поставлялись с отключенным авторингом. Ранние версии Claris HyperCard содержат пасхальное яйцо : ввод слова «magic» в поле сообщения превращает плеер в полноценную среду авторинга HyperCard. [15] Когда этот трюк стал почти универсальным, они написали новую версию, HyperCard Player, которую Apple распространяла с операционной системой Macintosh , в то время как Claris продавала полную версию на коммерческой основе. Многие пользователи были расстроены тем, что им приходилось платить за использование программного обеспечения, которое традиционно поставлялось бесплатно и которое многие считали базовой частью Mac.
Даже после того, как HyperCard начал приносить доход, Claris мало что сделала для его маркетинга. Разработка продолжалась с небольшими обновлениями и первой неудачной попыткой создать третье поколение HyperCard. В этот период HyperCard начала терять долю рынка. Не имея нескольких важных базовых функций, авторы HyperCard начали переходить на такие системы, как SuperCard и Macromedia Authorware . Тем не менее, HyperCard продолжала быть популярной и использовалась для все более широкого спектра приложений, от игры The Manhole , более ранней попытки создателей Myst , до корпоративных информационных служб.
Apple в конечном итоге вернула Claris в материнскую компанию, вернув HyperCard в основную инженерную группу Apple. В 1992 году Apple выпустила долгожданное обновление HyperCard 2.2 и включила лицензионные версии Color Tools и Addmotion II, добавив поддержку цветных изображений и анимации. Однако эти инструменты ограничены и часто неудобны в использовании, поскольку HyperCard 2.0 не имеет настоящей внутренней поддержки цвета.
Было предпринято несколько попыток перезапустить разработку HyperCard после того, как она вернулась в Apple. Из-за широкого использования продукта в качестве инструмента для создания мультимедиа он был включен в группу QuickTime . Начались новые усилия по разрешению HyperCard создавать интерактивные фильмы QuickTime (QTi), снова под руководством Кевина Калхауна. QTi расширил основные функции воспроизведения мультимедиа QuickTime, предоставив настоящие интерактивные возможности и низкоуровневый язык программирования на основе языка ассемблера 68000. Получившаяся в результате HyperCard 3.0 была впервые представлена в 1996 году, когда альфа-версия была показана разработчикам на ежегодной Всемирной конференции разработчиков Apple (WWDC). [16] Под руководством Дэна Кроу разработка продолжалась до конца 1990-х годов, с публичными демонстрациями, показывающими многие популярные функции, такие как поддержка цвета, подключение к Интернету и возможность воспроизводить стеки HyperCard (которые теперь были специальными фильмами QuickTime) в веб-браузере . Разработка HyperCard 3.0 застопорилась, когда команда QuickTime переключилась с разработки интерактивного QuickTime на потоковые функции QuickTime 4.0. в 1998 году [17] Стиву Джобсу не понравилось программное обеспечение, потому что Аткинсон решил остаться в Apple, чтобы закончить его, вместо того, чтобы присоединиться к Джобсу в NeXT , и (по словам Аткинсона) « в нем повсюду чувствовался запах Скалли ». [11] В 2000 году команда инженеров HyperCard была переведена на другие задачи после того, как Джобс решил отказаться от продукта. Калхун и Кроу оба покинули Apple вскоре после этого, в 2001 году.
Его последний релиз состоялся в 1998 году, а его выпуск был полностью прекращен в марте 2004 года. [18]
HyperCard изначально работает только в классической Mac OS , но его все еще можно использовать в классическом режиме Mac OS X на машинах на базе PowerPC (G5 и более ранних). Последняя функциональная собственная среда разработки HyperCard — это классический режим в Mac OS X 10.4 (Tiger) на машинах на базе PowerPC.
HyperCard использовался для различных гипертекстовых и художественных целей. До появления PowerPoint HyperCard часто использовался как универсальная программа для презентаций. Примерами приложений HyperCard являются простые базы данных, игры типа « выбери свое приключение » и образовательные учебные пособия.
Благодаря своим быстрым возможностям проектирования приложений HyperCard также часто использовался для прототипирования приложений, а иногда даже для реализаций версии 1.0. Внутри Apple команда QuickTime была одним из крупнейших клиентов HyperCard.
HyperCard имеет более низкие требования к оборудованию, чем Macromedia Director . Несколько коммерческих программных продуктов были созданы в HyperCard, наиболее примечательны оригинальная версия графической приключенческой игры Myst , [19] Expanded Books компании Voyager , мультимедийные CD-ROM с Девятой симфонией Бетховена , A Hard Day's Night группы Beatles и Voyager MacBeth . Раннее электронное издание Whole Earth Catalog было реализовано в HyperCard. [20] и сохранено на CD-ROM. [21]
Прототип и демо популярной игры You Don't Know Jack были написаны на HyperCard. [22] [23] Французский автопроизводитель Renault использовал его для управления своей системой инвентаризации. [6] [24]
В Квебеке (Канада) HyperCard использовался для управления роботизированной рукой, которая вставляла и извлекала видеодиски в Национальном совете по кинематографии CinéRobothèque.
В 1989 году Hypercard использовался для управления BBC Radiophonic Workshop Studio Network с использованием одного компьютера Macintosh. [25]
HyperCard использовался для создания полнофункционального прототипа SIDOCI (одного из первых в мире экспериментов по разработке интегрированной электронной системы учета пациентов ) и активно использовался консалтинговой фирмой DMR из Монреаля для демонстрации того, как будет выглядеть «типичный день из жизни пациента, готовящегося к операции» в эпоху отказа от бумажной документации.
Activision , которая до этого была в основном игровой компанией, увидела в HyperCard точку входа на рынок бизнеса. Изменив название на Mediagenic, она опубликовала несколько крупных приложений на основе HyperCard, наиболее известными из которых являются Focal Point Дэнни Гудмена [20], персональный информационный менеджер, и Reports For HyperCard, программа от Nine To Five Software, которая позволяет пользователям рассматривать HyperCard как полноценную систему баз данных с надежными функциями просмотра и печати информации.
Вдохновленная HyperCard SuperCard некоторое время включала в себя плагин Roadster , который позволял размещать стеки внутри веб-страниц и просматривать их веб-браузерами с соответствующим плагином браузера. Была даже версия этого плагина для Windows, позволяющая использовать плагин не только на компьютерах Macintosh.
Первый вирус HyperCard был обнаружен в Бельгии и Нидерландах в апреле 1991 года. [26]
Поскольку HyperCard запускал скрипты в стеках сразу после открытия, он также был одним из первых приложений, восприимчивых к макровирусам . Вирус Merryxmas был обнаружен в начале 1993 года [27] Кеном Данхэмом, за два года до вируса Concept . [28] Очень немногие вирусы были основаны на HyperCard, и их общее воздействие было минимальным.
В 1987 году журнал Compute!'s Apple Applications заявил, что HyperCard «может сделать Macintosh персональным компьютером по выбору». Отметив, что его большие требования к памяти делают его наиболее подходящим для компьютеров с 2 МБ памяти и жесткими дисками, журнал предсказал, что «самая маленькая программная мастерская должна быть в состоянии выпускать стековое программное обеспечение», особенно для использования CD-ROM. [29] В 1988 году журнал Compute! предсказал, что большая часть будущего программного обеспечения для Mac будет разрабатываться с использованием HyperCard, хотя бы потому, что его использование настолько затягивает, что разработчики «не смогут оторваться от него достаточно долго, чтобы создать что-то еще». [30] В 1989 году журнал Byte включил его в число победителей «Excellence» премии Byte Awards. Заявив, что «как и у любой первой работы, у него есть некоторые недостатки», журнал написал, что «HyperCard открыл новую категорию программного обеспечения», и похвалил Apple за то, что он поставляется с каждым Mac. [31] В 2001 году Стив Возняк назвал HyperCard «лучшей программой, когда-либо написанной». [32]
HyperCard — один из первых продуктов, который использовал и популяризировал концепцию гипертекста среди большого количества пользователей.
Якоб Нильсен указал, что HyperCard на самом деле была всего лишь программой гипермедиа , поскольку ее ссылки начинались с регионов на карте, а не с текстовых объектов; настоящие текстовые гиперссылки в стиле HTML были возможны в более поздних версиях, но были неудобны для реализации и редко использовались. [33] [34] Дина Ларсен запрограммировала ссылки в HyperCard для Marble Springs. Билл Аткинсон позже сетовал, что если бы он только осознал мощь сетевых стеков, вместо того чтобы сосредоточиться на локальных стеках на одной машине, HyperCard мог бы стать первым веб-браузером. [35]
HyperCard потерял популярность с ростом Всемирной паутины, поскольку Интернет мог обрабатывать и доставлять данные почти так же, как HyperCard, не ограничиваясь файлами на локальном жестком диске . HyperCard оказал значительное влияние на Интернет, поскольку он вдохновил на создание как HTTP (благодаря своему влиянию на коллегу Тима Бернерса-Ли Роберта Кайо ), [36] так и JavaScript (создатель которого, Брендан Эйх , был вдохновлен HyperTalk [37] ). Он также стал ключевым источником вдохновения для ViolaWWW , раннего веб-браузера. [38]
Курсор в виде указателя пальца, используемый для навигации по стекам, позже использовался в первых веб-браузерах в качестве курсора гиперссылки. [39]
Франшиза компьютерной игры Myst , изначально выпущенная как стек HyperCard и входящая в комплект некоторых компьютеров Mac (например, Performa 5300), все еще жива, что делает HyperCard облегчающей технологией запуск одной из самых продаваемых компьютерных игр всех времен. [40]
По словам Уорда Каннингема , создателя Wiki , концепция Wiki восходит к стеку HyperCard, который он написал в конце 1980-х годов. [41] [42] [43]
В 2017 году Архив Интернета запустил проект по сохранению и эмуляции стеков HyperCard, позволяя пользователям загружать свои собственные. [44]
Графический интерфейс прототипа телефона Apple Wizzy Active Lifestyle был основан на HyperCard. [45]
HyperCard повлиял на развитие Интернета в конце 1990-х годов, оказав влияние на Роберта Кайо , который помогал в разработке первого веб-браузера Тима Бернерса-Ли . [46] Javascript был вдохновлен HyperTalk. [47]
Хотя стеки HyperCard не работают через Интернет , к 1988 году по крайней мере 300 стеков были общедоступны для загрузки из коммерческой сети CompuServe (которая еще не была подключена к официальному Интернету). Система может связывать телефонные номера на компьютере пользователя вместе и позволять им набирать номера без модема, используя менее дорогую часть оборудования, Hyperdialer. [48]
В этом смысле, как и Веб, он формирует основанный на ассоциациях опыт просмотра информации по ссылкам, хотя и не работает удаленно по протоколу TCP/IP. Как и Веб, он также допускает соединения многих различных видов медиа.
Другие компании предложили свои собственные версии. По состоянию на 2024 год [обновлять]доступны два продукта, которые предлагают возможности, подобные HyperCard:
Прошлые продукты включают в себя:
Кроме того, многие из основных концепций оригинальной системы были позже повторно использованы в других формах. Apple построила свой общесистемный скриптовый движок AppleScript на языке, похожем на HyperTalk; он часто используется для нужд автоматизации рабочего процесса настольных издательских систем (DTP) . [ требуется ссылка ] В 1990-х годах FaceSpan предоставил сторонний графический интерфейс. AppleScript также имеет собственный графический интерфейс программирования под названием Automator, выпущенный вместе с Mac OS X Tiger в апреле 2005 года. Одной из сильных сторон HyperCard была его обработка мультимедиа , и многие мультимедийные системы, такие как Macromedia Authorware и Macromedia Director, основаны на концепциях, зародившихся в HyperCard. [55]
AppWare , первоначально названный Serius Developer, иногда рассматривается как аналог HyperCard, поскольку обе системы являются системами быстрой разработки приложений (RAD). AppWare продавалась в начале 90-х и работала как на Mac, так и на Windows.
Zoomracks , приложение DOS с похожей метафорой «стековой» базы данных, появилось на 4 года раньше HyperCard, что привело к спорному иску против Apple. [ необходима цитата ]
{{citation}}
: CS1 maint: несколько имен: список авторов ( ссылка )Обработка строк самая гибкая из всех, что я видел — язык содержит примитивы для прямого обращения к любому символу, слову, логической строке или фрагменту, разделенному любым выбранным вами символом. Синтаксис естественного языка — "подождать, пока не будет нажата кнопка мыши", "если это не число, то подать звуковой сигнал", "получить слово с 3 по 10 из строки 8 в theAnswer" и "перейти к последней карте этой стопки" — все это допустимые выражения HyperTalk — делает его приятным для чтения и простым в обслуживании.
Claris также попробовала временную схему поставки урезанного, низкоуровневого стека Home, который пользователи могли переопределить, набрав «magic» в поле сообщения. Была некоторая путаница между этой версией и Player, когда люди безуспешно пытались набрать «magic» в поле сообщения Player. Магия в HyperCard 2.2 очевидна и видна.
/mac/util/virus/merryxmaskiller.sit.hqx 8 4/27/93 BinHex4.0,StuffIt3.50 Eliminate a script-based virus called "merryxmas." Requires HyperCard 2.0.
Самым большим недостатком HyperCard для тех, кто интересуется гипертекстом, является отсутствие текстовых ссылок.
Самым большим недостатком HyperCard для тех, кто интересуется гипертекстом, является отсутствие текстовых ссылок.
взял руководство по HyperCard, посмотрел его и просто взял концепции и реализовал их в X-windows [ так в оригинале ].
После того, как в начале этого года мы добавили в браузер раннюю эмуляцию Macintosh, в Архиве Интернета теперь есть множество эмулированных стеков Hypercard, доступных для прочтения, и мы призываем вас легко и быстро загружать свои собственные.