HyperCard

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
HyperCard
Скриншот программы HyperCard
Тип Гипермедиа
Разработчики Apple Inc. (раньше Apple Computer, Inc.)
Операционные системы System Software 6, System 7, Mac OS 8, Mac OS 9
Первый выпуск 1987[1]
Последняя версия 2.4.1 (1998)
Лицензия проприетарная

HyperCard (читается: «хайпе(р)ка(р)д» или «гиперкард») — это визуальная среда программирования и относящийся к ней SDK, позволяющая создавать собственные приложения гипермедиа на компьютере Macintosh в системе Mac OS версий 6-9. Была первой получившей широкую популярность гипертекстовой средой, получившей распространение ещё до того, как появилась Всемирная паутина.

Гиперкард можно назвать «организатором информации», позволяющим собирать воедино тексты, картинки, звуки, анимацию, предлагая их пользователю в удобном интерактивном виде. HyperCard включал в себе базу данных в виде плоских файлов с графическим, гибким, изменяемым пользователем интерфейсом и встроенный язык программирования HyperTalk[2].

В HyperCard используется язык программирования HyperTalk («гиперток»), что позволяет создавать нетривиальные программы, например, обучающие.

Созданные стеки (приложения HyperCard) можно было распространять как самостоятельные приложения, не требующие установки HyperCard.

С помощью системы HyperCard была создана популярная в своё время игра Myst[3].

Система HyperCard была первоначально выпущена в 1987 году по цене 49,95 долларов США и бесплатно входила в состав всех новых компьютеров Mac, продававшихся после этого[4]. Последняя версия была выпущена в 1998 году, после возвращения Стивена Джобса в Apple. HyperCard была снята с продаж в марте 2004 года. Она не была портирована на Mac OS X, но может работать в Classic Environment в версиях Mac OS X, которые поддерживают это приложение.

Общее описание

[править | править код]

HyperCard основана на концепции «стопки» виртуальных «карточек»[5]. Карточки содержат данные так же, как и в устройстве для хранения карт Rolodex. Каждая карточка содержит набор интерактивных объектов, включая текстовые поля, флажки, кнопки и аналогичные элементы общего графического интерфейса пользователя (GUI). Пользователи просматривают стопку, переходя от карточки к карточке, используя встроенные функции навигации, мощный механизм поиска или используя созданные пользователем сценарии[6].

Пользователи создают или изменяют стопки, добавляя новые карты. Они размещают объекты графического интерфейса на картах, используя механизм интерактивной компоновки, основанный на простом интерфейсе drag&drop. Кроме того, HyperCard включает карточки-прототипы или шаблоны, называемые в её терминах карточками фона; когда создаются новые карты, они могут ссылаться на одну из этих фоновых карт, в результате чего все объекты на фоне «проступают» за новой картой. Таким образом можно создать стопку карточек с общим макетом и функциональностью. Механизм компоновки по своей концепции аналогичен форме, используемой в большинстве сред быстрой разработки приложений (RAD), таких как Borland Delphi, Microsoft Visual Basic и Visual Studio[6].

Возможности базы данных системы HyperCard основаны на хранении состояния всех объектов, имеющихся на картах в физическом файле, представляющем стопку. База данных не существует как отдельная система в стеке HyperCard; не существует ядра базы данных или аналогичной конструкции. Вместо этого состояние любого объекта в системе считается активным и доступным для редактирования в любое время. С точки зрения среды выполнения HyperCard нет никакой разницы между перемещением текстового поля на карточке и вводом в него текста; обе операции просто изменяют состояние целевого объекта в стопке. Такие изменения сразу сохраняются после завершения, поэтому ввод в поле приводит к сохранению этого текста в физическом файле стопки. Система работает практически без сохранения состояния, без необходимости сохранения данных во время работы. Это характерно для многих систем, ориентированных на базы данных, хотя и несколько отличается от приложений, работающих с документами.

Последний ключевой элемент в HyperCard — это сценарий, единственный элемент, несущий код для каждого объекта в стеке. Сценарий представляет собой текстовое поле, содержимое которого интерпретируется как код, написанный на языке HyperTalk[6]. Как и любое другое свойство, сценарий любого объекта можно редактировать в любое время, и изменения сохраняются сразу после их завершения. Когда пользователь вызывает действия в графическом интерфейсе, например нажатие кнопки или ввод текста в поле, эти действия преобразуются в события средой выполнения HyperCard. Затем среда выполнения проверяет сценарий объекта, являющегося целью события (например, кнопки), чтобы определить, содержит ли его объект сценария код события, называемый обработчиком. Если это так, механизм HyperTalk запускает обработчик; если это не так, среда выполнения проверяет другие объекты в визуальной иерархии.

Эти концепции составляют большую часть системы HyperCard; стопки, фоны и карточки предоставляют систему графического интерфейса, подобную форме, файл стопки обеспечивает сохранение объектов и функциональность, подобную базе данных, а HyperTalk позволяет писать обработчики для событий графического интерфейса. Однако, в отличие от большинства систем RAD или баз данных того времени, HyperCard сочетает в себе все эти функции, как для пользователей, так и для разработчиков, в одном приложении. Это обеспечивает быструю обработку и немедленное создание прототипов, возможно, без какого-либо кодирования, позволяя пользователям создавать собственные решения проблем с помощью собственного персонализированного интерфейса. «Расширение возможностей» стало лозунгом, поскольку эта возможность была принята сообществом Macintosh, как и фраза «программирование для всех нас»[7][8], то есть для всех, а не только для профессиональных программистов.

Именно это сочетание функций делает HyperCard мощной гипермедийной системой. Пользователи могут создавать фоны в соответствии с потребностями какой-либо системы, например, каталога, и использовать простые команды HyperTalk для предоставления кнопок для перемещения с места на место внутри стопки или предоставлять ту же систему навигации в элементах данных пользовательского интерфейса, таких как текст. поля. Используя эти функции, легко создавать связанные системы, аналогичные гипертексту в Интернете[5]. В отличие от Интернета, для программирования, публикации и просмотра используется один и тот же инструмент. Подобные системы были созданы для 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.

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:

и другие[14].

Литература

[править | править код]
  • Danny Goodman. The Complete HyperCard 2.0 Handbook. — Bantam Computer Books, 1990. — 892 с. — ISBN 9780679790266.
  • Dan Winkler, Scot Kamins, Jeanne DeVoto. HyperTalk 2.2. — New York: Random House, 1994. — 892 с. — ISBN 9780679791713.

Примечания

[править | править код]
  1. https://macgui.com/usenet/?group=14&id=4987
  2. Needle, David (August 11, 1987), "HyperCard: Rumors or Reality Архивная копия от 7 декабря 2015 на Wayback Machine", Computer Currents
  3. Matthew Lasar. 25 years of HyperCard—the missing link to the Web (англ.) (31 мая 2012). Архивировано из оригинала 4 октября 2012 года.
  4. "Hypercard – How About New Mac Owners Архивная копия от 7 декабря 2015 на Wayback Machine", Mac GUI
  5. 1 2 HyperCard Forgotten, but Not Gone. Wired (6 февраля 2010). Дата обращения: 14 февраля 2024. Архивировано 6 февраля 2010 года.
  6. 1 2 3 "A Hypercard Primer". InfoWorld. Vol. 11, no. 45. November 6, 1989. p. S3 (sidebar).
  7. Winograd, Terry (1996), "HyperCard, Director, and Visual Basic", Bringing Design to Software, Addison-Wesley
  8. Lingwood, David (May 23, 1988). "APDA Pinpoints Development Trends in Macintosh Products". InfoWorld (Interview). Vol. 10, no. 21. Interviewed by Stuart J. Johnston. p. S9. Retrieved March 30, 2019.
  9. Danny Goodman. The complete HyperCard handbook. — Toronto ; New York : Bantam Books, 1988. — 868 с. — ISBN 978-0-553-34577-3.
  10. Jeanne's House o' HyperCard. www.jaedworks.com. Дата обращения: 31 марта 2024. Архивировано 8 ноября 2020 года.
  11. Bill Atkinson Part 2 (англ.). TWiT.tv. Дата обращения: 9 ноября 2024.
  12. Bobker, Steven (November 1988). "The Price of Freedom". MacUser. Vol. 4, no. 11. pp. 63—66.
  13. Пирогов С. HyperCard, HyperStudio, SuperCard: сравнение основных характеристик. // Компьютер Пресс. — 1995. — № 8. — С. 46-49. — ISSN 0868-6157.
  14. Cocoa developer community. HyperCard (англ.). Дата обращения: 20 августа 2012. Архивировано из оригинала 1 октября 2012 года.