# HyperCard

HyperCard fue una aplicación informática de Apple Computer que se contó entre los primeros sistemas hipermedia con éxito anteriores a la World Wide Web. Conceptualmente se acerca a una base de datos, pues almacena información, siendo además gráfico, flexible y capaz de crear ficheros fáciles de modificar. También incluía HyperTalk, un lenguaje de programación potente y relativamente fácil de usar, para manipular los datos y la interfaz de usuario. Los usuarios de HyperCard lo usaban a menudo como un sistema de programación para el desarrollo rápido de aplicaciones más que como base de datos.
HyperCard fue lanzado originalmente con el System Software 6 en 1987 y retirado definitivamente del mercado en marzo de 2004, aunque para entonces hacía muchos años que no se actualizaba. HyperCard corre nativamente solo en Mac OS versiones 9 y anteriores, pero puede usarse aún en el modo Classic de Mac OS X.

## Descripción

HyperCard está basado en el concepto de una «pila» de «tarjetas» virtuales. Las tarjetas contienen datos, como lo harían en un rolodex. El motor de presentación era parecido en concepto a un «formulario» de los usados en la mayoría de los entornos de desarrollo rápido de aplicaciones (RAD), como Borland Delphi o Visual Basic. Una pila especial «home» estaba disponible como lanzador, repositorio de scripts compartidos y ubicación de las preferencias de usuario.
HyperCard no era solo un motor de base de datos: la apariencia de cada tarjeta podía modificarse, de la misma forma que puede escribirse información no estándar sobre las tarjetas de un rolodex o libreta de direcciones. Una capa de fondo especial de cada pila contenía elementos que aparecían en todas las demás tarjetas de la misma pila, o en todas las tarjetas basadas en dicho fondo. Los fondos podían incluir imágenes (que era su propósito inicial), además de los objetos también disponibles para las demás tarjetas: campos gráficos, botones, texto (estático), campos de texto (editable) y otros elementos típicos de las GUIs. Cada tarjeta podía entonces contener datos diferentes asociados a los campos de texto o gráficos, creando de esta forma la funcionalidad de base de datos.
Por ejemplo, una libreta de direcciones podía confeccionarse añadiendo al fondo unos cuantos campos de texto para contener el nombre y la dirección. Tras esto, el usuario puede añadir nuevas tarjetas (tecleando Command-N) y rellenar los campos. El fondo puede ser modificado en cualquier momento, permitiendo que los cambios fueran fáciles de hacer. Los operaciones básicas como búsqueda, adición y borrado estaban integradas en el entorno de HyperCard, permitiendo que las bases de datos simples fuesen configuradas y usadas por cualquiera capaz de usar un ordenador Macintosh.
La capacidad de escribir scripts en el lenguaje HyperTalk permitía que el sistema fuese fácilmente modificable y extensible. A diferencia de muchos lenguajes de script, HyperTalk demostró ser usable por un amplio rango de usuarios: su sintaxis incluía múltiples versiones de cada sentencia, todas ellas en un inglés más o menos legible. Por ejemplo, put the first word of the third line of field "hello" into field "goodbye" (‘poner la primera palabra de la tercera línea del campo «hola» en el campo «adiós»’) haría exactamente lo que se espera. HyperTalk incluía esta redundancia con la esperanza de facilitar la programación: por ejemplo, los números podían especificarse usando dígitos (1, 2), cardinales (one, two) u ordinales (first, second).
Referirse a los objetos y elementos de las tarjetas y fondos era fácil. El anterior ejemplo ilustra cómo se accedía a un campo en una tarjeta particular, pero podía hacerse con cualquier objeto de la misma forma, incluyendo a la propia pila. Todos los objetos podían nombrarse, como en el ejemplo anterior. Además, cada objeto (incluyendo la propia pila) tenía una clave numérica.
El comando find (‘hallar’) de HyperCard navegaba rápidamente a las tarjetas que contenían el texto buscado usando el método patentado llamado hintBits. Esto podía acotarse con modificaciones tales como find "Bob" in card field "hello" (‘hallar «Bob» en el campo de tarjeta «hola»’). De forma parecida, había un comando sort (‘ordenar’) que permitía evaluar expresiones completas para clasificar las tarjetas según un orden.
Añadir scripts también era fácil. Bastaba simplemente con «command-option-clicar» sobre cualquier elemento de la pila (o pulsar el botón Script en el diálogo de propiedades del elemento) para abrir un editor. En él podía editarse, salvarse y usarse inmediatamente el script. Además, HyperCard contenía la «caja de mensajes», una línea de comandos interactiva en una ventana flotante que podía ejecutar líneas simples de script, incluyendo el comando find, por lo que servía también como diálogo de búsqueda. HyperCard 2.0 añadió un depurador.
HyperTalk fue lo suficientemente popular como para que uno de sus usos principales no fuese el de base de datos sino el de herramienta de programación. Miles de «pilas» fueron escritas y distribuidas como stackware en los pocos años en los que HyperCard tuvo amplia difusión.

### Externos

La potencia de HyperCard podía aumentarse significativamente mediante el uso de módulos de comandos y funciones externos, más comúnmente conocidos como XCMDs (external commands) y XFCNs (external functions). Eran bibliotecas de código empaquetadas en un resource fork que se integraba en el sistema o el lenguaje HyperTalk, en lo que supone un ejemplo primitivo del concepto de plugin. A diferencia de los plugins convencionales, estos no requerían una instalación separada antes de estar disponibles para su uso, sino que podían incluirse en una pila, estando así disponibles para los scripts de la misma.
Durante la máxima popularidad de HyperCard a finales de los años 1980, un ecosistema completo de vendedores ofreció miles de estos externos, desde compiladores de HyperTalk hasta sistemas gráficos, acceso a bases de datos, conectividad a Internet y animaciones. Oracle ofreció un XCMD que permitía a HyperCard realizar consultas directamente a bases de datos Oracle en cualquier plataforma, que más tarde fue reemplazado por SuperCard.

## Aplicaciones

HyperCard se ha usado para todo tipo de hipertextos y fines artísticos. Antes de la aparición de PowerPoint, HyperCard se usaba a menudo como un programa de presentaciones de propósito general. Entre las aplicaciones HyperCard se cuentas bases de datos simples, juegos del tipo «elige tu propia aventura», aplicaciones de apoyo educativo y la primera wiki (fuera de línea).
Debido a sus características de diseño de aplicaciones rápido, HyperCard también se usó a veces para construir prototipos de aplicaciones, e incluso en ocasiones para las implementaciones iniciales de alguna de ellas. Dentro de Apple, el equipo de QuickTime era uno de los mayores clientes de HyperCard.
Cierto número de productos de software comerciales fueron creados en HyperCard, destacando sobre todos ellos la versión original de la aventura gráfica Myst, los Expanded Books de Voyager Company y los CD-ROMs multimedia de la 9.ª sinfonía de Beethoven, A Hard Day's Night de The Beatles y MacBeth (también de Voyager).
El prototipo y la demo del popular juego You Don't Know Jack se escribió en HyperCard.
Activision, que hasta entonces había sido principalmente una compañía de juegos, vio HyperCard como un punto de entrada al mercado de negocios. Cambiando su nombre a Mediagenic, publicaron varias importantes aplicaciones basadas en HyperCard, destacando el Focal Point de Danny Goodman, un PIM, y Reports For HyperCard, un programa de Nine To Five Software que permitía a los usuarios tratar HyperCard como un sistema de base de datos completo con robustas características de visualización e impresión de información.
El programa SuperCard, inspirado en HyperCard, fue durante un tiempo incluido en el plugin Roadster, que permitía incluir pilas dentro de páginas web y visualizarla en navegadores con la ayuda del correspondiente plugin. Hubo incluso una versión para Windows de este plugin.

## Historia

HyperCard fue creado por Bill Atkinson, que empezó a trabajar en él en marzo de 1985 bajo el nombre de WildCard (de ahí el identificador del creador «WILD»). En 1986 Dan Winkler empezó a trabajar en HyperTalk y el nombre del programa fue cambiado a HyperCard. La lanzó inicialmente en agosto de 1987, con el acuerdo de que Atkinson daría HyperCard a Apple solo si prometían lanzarlo gratuitamente en todos los Macs. Apple planificó su lanzamiento para hacerlo coincidir con la MacWorld Conference & Expo en Boston (Massachusetts) y garantizar así la máxima publicidad. HyperCard fue un gran éxito casi instantáneamente. Muchas personas que creían que nunca serían capaces de programar un ordenador empezaron a usar HyperCard para toda clase de tareas de automatización y prototipado, sorprendiendo incluso a su creador.
Incluso Apple nunca pareció entender lo que era HyperCard. La dirección vio que estaba siendo usado por un gran número de personas, interna y externamente, y los informes de fallos y sugerencias de mejora siguieron demostrando que contaba con una gran variedad de usuarios. Sin embargo, también era gratis, lo que hacía difícil justificar la dedicación de recursos a su mejora.

### HyperCard 2.0

A finales de 1989 Kevin Calhoun, entonces un ingeniero de HyperCard en Apple, lideró un esfuerzo para actualizar el programa. Esto concluyó con el lanzamiento en 1990 de HyperCard 2.0, que incluía un compilador bajo demanda que mejoraba enormemente el rendimiento del código que realizaba cálculos intensivos, un nuevo depurador y varias mejoras al lenguaje HyperTalk.
Al mismo tiempo que HyperCard 2.0 era desarrollado, un grupo separado dentro de Apple desarrolló y en 1991 lanzó HyperCard IIGS, una versión de HyperCard para el Apple IIGS. Destinado principalmente al mercado educativo, HyperCard IIGS tenía básicamente las mismas características que las versiones 1.x del HyperCard para Macintosh, incluyendo el soporte a las características gráficas (color) del IIGS. Aunque las pilas no eran compatibles, un programa traductor (a su vez una pila HyperCard) permitía usar las pilas de un sistema en otro.
En ese momento Apple decidió que la mayoría de sus paquetes de aplicaciones, incluyendo HyperCard, serían la propiedad de una empresa subsidiaria de la que poseía la totalidad, Claris. Muchos de los desarrolladores de HyperCard decidieron permanecer en Apple en lugar de marcharse a Claris, provocando que el equipo de desarrollo se dividiese. Claris, cuyo objetivo en el mercado de software era obtener beneficios, intentó crear un modelo de negocio en el que HyperCard también podía generar ingresos. Así, escribieron una nueva versión de «sólo lectura», el HyperCard Player que Apple distribuyó con el sistema operativo Macintosh, mientras Claris comercializaba la versión «completa». Muchos usuarios se enfadaron por tener que pagar por usar un software que tradicionalmente había sido suministrado gratis y que muchos consideraban una parte básica del Mac.
A pesar de la nueva fuente de ingresos, Claris hizo poco por comercializar HyperCard. El desarrollo continuó con actualizaciones menores, así como con el primer intento fallido de crear una tercera generación de HyperCard. Durante este periodo HyperCard empezó a perder cuota de mercado. Sin un número de características básicas importantes, los autores de HyperCard empezaron a migrar a sistemas tales como SuperCard y Macromedia Authorware. A pesar de ello HyperCard continuó siendo popular y usado en una amplia gama de aplicaciones, desde el juego The Manhole, un primitivo esfuerzo de los creadores de Myst, a sistemas de información corporativa.
Apple terminó por absorber de nuevo a Claris en la compañía madre, devolviendo HyperCard al grupo de ingeniería central de Apple. En 1992 Apple lanzó la largamente esperada actualización de HyperCard 2.2, haciendo felices a muchos entusiastas de la aplicación al incluir versiones licenciadas de Color Tools y Addmotion II, lo que daba soporte a imágenes y animaciones en color. Sin embargo, estas herramientas eran limitadas y a menudo engorrosas de usar, careciendo aún HyperCard de un auténtico soporte interno de color.

### HyperCard 3.0

Se llevaron a cabo varios intentos para retomar el desarrollo de HyperCard cuando volvió a Apple. Debido al extendido uso del producto como herramienta de autoría multimedia, se integró en el grupo QuickTime. Se inició un nuevo esfuerzo para permitir que HyperCard crease películas QuickTime interactive (QTi), de nuevo bajo la dirección de Kevin Calhoun. QTi extendía las características básicas de reproducción multimedia de QuickTime proporcionando auténticas capacidades interactivas y un lenguaje de programación de bajo nivel basado en el ensamblador del 68000.
El HyperCard 3.0 resultante fue presentado por primera vez en 1996, cuando se mostró una versión alfa a los desarrolladores en la Worldwide Developers Conference anual de Apple. Bajo la dirección de Dan Crow el desarrollo continuó durante finales de los años 1990, con demostraciones públicas mostrando muchas características populares como soporte de color, conectividad a Internet y la habilidad de reproducir pilas HyperCard (que ahora eran películas QuickTime especiales) en un navegador web. El desarrollo de HyperCard 3.0 decayó cuando el equipo QuickTime dejó de lado el desarrollo de QuickTime interactive para centrarse en las características de streaming de QuickTime 4.0. Finalmente, en 2000 el equipo de ingeniería HyperCard fue dedicado a otras tareas después de que Steve Jobs decidiese abandonar el producto. Calhoun y Crow abandonaron Apple poco después, en 2001.
En los años siguientes el programa no recibió apoyo adicional de Apple, que finalmente dejó de venderlo en marzo de 2004.

## Legado

HyperCard fue uno de los primeros productos que hizo uso del concepto de hipertexto, popularizándolo entre una gran cantidad de usuarios.
Jakob Nielsen ha señalado que en realidad HyperCard solo era un programa hipermedia debido a que sus enlaces partían de las regiones de una tarjeta, no de objetos de texto. Los hipervínculos de texto reales al estilo del HTML eran posibles en versiones posteriores, pero eran complicados de implementar y poco usados.
HyperCard vio una pérdida de popularidad con el crecimiento de la World Wide Web, debido a que ésta permitía manejar y entregar datos de forma similar a HyperCard sin limitarse a los ficheros del propio disco duro. HyperCard tuvo un impacto significativo sobre la Web, inspirando la creación tanto del propio HTTP como de JavaScript (gracias a su influencia sobre el colega de Tim Berners-Lee, Robert Cailliau). También fue una inspiración clave para ViolaWWW, un navegador web primitivo.
El cursor de la mano con el dedo índice señalando usado para navegar por las pilas halló más tarde su lugar en los primeros navegadores web, como cursor para los hipervínculos.
Otras compañías vieron rápidamente el potencial de HyperCard y comercializaron sus propias versiones. Actualmente hay disponibles dos productos que ofrecen funcionalidades similares a las de HyperCard:
* Revolution de Runtime, que amplía HyperCard ofreciendo color y un kit de herramientas para interfaces gráficas de usuario que puede utilizarse en muchas plataformas populares (Classic Macintosh, Mac OS X, Windows 98 a Vista y Linux/Unix).
* SuperCard, una versión en color de HyperCard en el Mac con características adicionales como gráficos rasterizados y vectoriales, un completo kit de herramientas para GUIs y soporte para muchas características modernas de Mac OS X.
Algunos productos antiguos similares son:
* Plus, un producto parecido a HyperCard para Windows y Macintosh.
* ToolBook de Asymetrix para Windows, parecido a HyperCard e incluyendo un conversor externo para leer pilas de HyperCard.
* Oracle compró un clon multiplataforma y lo comercializó como OracleCard, renombrándolo luego a Oracle Media Objects, usando un 4GL para el acceso a las bases de datos.
Además, muchos de los conceptos básicos del sistema original fueron más tarde reutilizados de otras formas. Apple construyó AppleScript, su motor de scripting para todo el sistema, a partir de un lenguaje muy parecido a HyperTalk, que recientemente ha sido descubierto como idóneo para las necesidades de automatización de flujos de trabajo de autoedición. AppleScript adquirió una interfaz gráfica de programación llamada Automator en la última actualización importante de Mac OS X, lanzada en abril de 2005. Algunos ven a HyperCard como antepasado del Visual Basic de Microsoft. Una de las fortalezas de HyperCard eran sus capacidades multimedia, y muchos sistemas de autoría multimedia como Macromedia Authorware y Macromedia Director se basan en conceptos originales de HyperCard.
En el lado menos positivo, dado que HyperCard ejecutaba scripts en las pilas inmediatamente después de abrirlas, fue por ello una de las primeras aplicaciones vulnerables a los virus de macro. El virus Merryxmas fue descubierto en 1993 por Ken Dunham, dos años después del virus «Concept».
Según Ward Cunningham, el inventor de las wikis, algunas ideas de este concepto se remontan a una pila HyperCard que escribió a finales de los años 1980.