Nos últimos dois artigos da Retro Apple, destaquei o hardware da Apple que causou impacto na indústria tecnológica como um todo: a Câmera Digital QuickTake 100 da Apple, e o Apple Newton MessagePad 2100. Hoje, vou falar sobre um produto de software Apple que mudou o mundo e infelizmente já não existe: HyperCard.
The Roots of HyperCard
HyperCard era uma ferramenta poderosa, mas extremamente fácil de usar para criar “pilhas” – essencialmente bases de dados de ficheiros planos que usavam hiperligações como forma de navegar numa pilha de “cartões”. Você tem que entender que na época em que HyperCard foi lançado pela primeira vez em 1987, não havia World Wide Web, então o conceito de hyperlinks era completamente novo. O HyperCard não só começou a ter muitos fãs de Mac na programação, como também inspirou algumas das ferramentas que tomamos como garantidas hoje.
O desenvolvimento do HyperCard começou quando Bill Atkinson, um dos principais designers da interface gráfica do usuário do Mac, imaginou o sistema de cartões ligados durante uma viagem LSD. Ele se referiu à primeira versão como WildCard, mas como Dan Winkler, outro funcionário da Apple, começou a trabalhar na linguagem de scripting HyperTalk que permitia aos usuários atribuir ações aos objetos, o nome foi alterado para HyperCard.
Embora o produto Apple não exista mais, exceto nos Macs pré-macOS e máquinas de colecionadores Apple IIGS, seu legado continua vivo.
HyperCard existia como um produto Apple para Mac e Apple IIGS até 2004. Você poderia comprá-lo por $49.95, mas a maioria dos proprietários de Macs o obtiveram de graça, pois estava incluído em todos os novos Macs. Quando o HyperCard foi lançado como um produto, a necessidade de tal ferramenta já havia sido em grande parte substituída pela World Wide Web. Ao invés de pilhas autônomas, a Web ligou pessoas usando navegadores de internet como o Netscape ou o terrível Internet Explorer a páginas web hospedadas em servidores.
É fascinante considerar que o criador da World Wide Web, Tim Berners-Lee, e a pessoa por trás do protocolo de transferência de hipertexto (HTTP), Robert Cailliau, foram ambos influenciados pelo HyperCard. O criador do JavaScript, Brendan Eich, encontrou a linguagem de script HyperTalk como sua inspiração. Até mesmo o conceito Wiki (ou seja, Wikipedia) encontrou suas raízes em uma pilha HyperCard criada pelo inventor do Wiki Ward Cunningham. Está familiarizado com o AppleScript, a linguagem de automatização de scripts no Mac? É também baseada no HyperTalk. Se quiser uma visão detalhada de como o HyperTalk funcionava, aqui está um link para um PDF do HyperTalk 2.4 Reference stack cortesia de hypercard.org.
Por que é que o HyperTalk foi tão incrível? Tornou possível para praticamente qualquer pessoa criar os seus próprios programas Mac. Estes programas eram basicamente limitados apenas pela imaginação dos “autores” (a Apple não usava o termo “desenvolvedor” para programadores HyperCard). A linguagem HyperTalk original foi interpretada, de modo que pilhas complexas podiam funcionar lentamente, mas em 1989, a Apple lançou o HyperCard 2.0, que incluía um compilador HyperTalk on-the-fly para um funcionamento mais rápido, bem como um depurador incorporado.
A Apple queria realmente que todos pudessem criar os seus próprios programas, por isso tudo no HyperCard era o mais não ameaçador possível. Os programas eram “pilhas”, os desenvolvedores eram “autores”, e HyperTalk era uma “linguagem de script”. O HyperTalk é considerado uma “linguagem de scripting de alto nível orientada a objetos”. O que me surpreende até esta data é que todo este ambiente de desenvolvimento veio originalmente em apenas quatro disquetes de dupla face.
>
A minha empresa de gasodutos estava a gerir um departamento de TI baseado em Mac quando o HyperCard foi demonstrado pela primeira vez no escritório local da Apple, e o potencial da ferramenta chamou-me imediatamente a atenção. Logo após a demonstração, a Apple realizou um seminário de um dia com o autor Danny Goodman no escritório local. Goodman tinha escrito um livro intitulado “The Complete HyperCard Handbook”, e todos os participantes não só tiveram a oportunidade de experimentar o HyperCard, como também receberam uma cópia do livro de graça. Este livro é considerado o livro mais vendido de sempre para a plataforma Mac e foi alegadamente o livro de computador mais vendido na história. Mais de 650.000 cópias foram vendidas, e eu sei que a minha cópia da primeira edição rapidamente se esgotou!
Goodman mostrou-nos como era fácil criar uma pilha pegando num “cartão” em branco, adicionando-lhe campos e botões, e depois escrevendo scripts que reagiam às acções do rato ou agindo sobre os dados introduzidos num cartão. Para que você poderia usar HyperCard e HyperTalk? Tudo e qualquer coisa.
HyperMedia
Uma pilha de exemplos comum era um livro de endereços, mas o aplicativo se prestava a fazer muito mais. Por exemplo, digamos que você queria criar um livro de texto interativo. Você podia criar uma pilha que começava com uma tela de título, depois tinha uma tabela de conteúdos que – quando clicada – o enviava para um capítulo ou página específica. Cada página poderia ter gráficos, ou talvez links que trouxessem um pop-up mostrando uma definição de uma palavra ou termo. Esta capacidade era chamada HyperMedia na altura, descrevendo o uso de links numa apresentação multimédia.
Muitos programadores saltaram imediatamente para o HyperCard como uma ferramenta para prototipar GUIs ou criar demos de trabalho de projectos completos. Foi tão simples trazer um cartão em branco (tela), adicionar botões e campos, e então adicionar ações que foram iniciadas pelo usuário (clicando em algo) ou que correram por trás dos bastidores. Para empresas que precisavam de quiosques de computador auto-executáveis, o HyperCard era perfeito, pois um stack HyperCard podia ser configurado para rodar automaticamente quando um Mac inicializava.
Não pense que, por ser fácil de usar, o HyperCard não era usado por desenvolvedores sérios. O popular jogo Myst dos anos 90 foi criado usando HyperCard.
Danny Goodman percebeu que o enorme sucesso de seu primeiro livro e HyperCard estava implorando por uma continuação, então ele escreveu o HyperCard Developer’s Guide. Ainda há uma cópia disponível na Amazon se alguém estiver interessado!
Inspirado por Goodman, eu comecei a criar pilhas tanto para meu próprio uso quanto para minha empresa. Para começar, criei alguns materiais de treinamento para novos funcionários que utilizavam as capacidades do HyperCard não só para treinar os funcionários em regulamentos de segurança, mas também para testá-los.
HyperCard poderia ser estendido pelo uso de XCMDs (Comandos Externos) e XFCNs (Funções Externas), que foram criados tanto pela Apple como por desenvolvedores de terceiros. Nossa matriz na época administrava o sistema de cobrança da nossa empresa nos mainframes IBM, e lembro-me de mostrar pouco interesse em um XCMD que eu tinha ouvido falar que fornecia conectividade ao mainframe.
Isso mudou um dia quando eu estava trabalhando com nossa equipe de cobrança e eles ficaram frustrados com a falta de progresso dos programadores do mainframe em uma forma de processar algumas das informações brutas que chegavam de sites de medição de gás em todo o estado do Colorado em contas que podiam ser enviadas pelo correio. Ocorreu-me que eu poderia usar a conectividade do mainframe XCMD para extrair um arquivo raw do mainframe e depois usar os poderosos recursos de manipulação de texto do HyperScript para analisar os dados em um formato de arquivo .csv que poderia ser importado para uma planilha do Microsoft Excel. As planilhas poderiam então ser usadas para fins de faturamento.
Os programadores do mainframe não conseguiram fazer isso, mas quando eu tive o sistema funcionando em uma semana – quando eles esperavam que levasse pelo menos mais nove meses para que uma solução de mainframe funcionasse – eles me disseram para ir em frente. Embora eu não vá entrar nos detalhes do manuseio de texto do HyperScript, este artigo da Wikipedia faz um ótimo trabalho de explicação do que foi chamado de “chunking” e das “expressões em pedaços” que tornaram isso possível. Ah, e a propósito, os programadores do mainframe levaram mais de três anos para implementar as mesmas funcionalidades que eu tinha em execução dentro de uma semana. Não é que eles não tivessem a habilidade; eles simplesmente não priorizaram nosso projeto.
O vídeo a seguir é do hipercard.org, e através de um exemplo simples, ele mostra o processo de criação de uma pilha, adição de imagens, ligação de cartões, e fazer scripting. Muito obrigado ao Uli Kusterer (@uliwitness) por me deixar incorporar o vídeo aqui.
A interface do usuário do HyperCard era, na maioria das vezes, estritamente monocromática. Quando o HyperCard 2.2 apareceu em 1992, ele incorporou dois complementos comerciais que lhe permitiram suportar imagens e animações coloridas. A Apple não tinha problemas com os concorrentes na época, então outras empresas criaram “clones” HyperCard que tinham características que a Apple não adicionava.
SuperCard
Um dos meus clones favoritos era o SuperCard, que suportava totalmente cores e tinha muito poder…mas, claro, não podia realmente competir com a Web. Felizmente, ele ainda está disponível em uma empresa chamada Software Essentials e roda lindamente no MacOS. A empresa oferece um desconto para qualquer pessoa com materiais antigos e originais HyperCard (embalagem, discos e manuais), e SuperCard pode traduzir pilhas antigas de HyperCard para seu formato atualizado. Talvez seja hora de eu voltar ao SuperCard!
Pensei muitas vezes que um HyperCard moderno seria o acompanhamento perfeito para iPhones e iPads, permitindo que quase todos criassem seus próprios aplicativos sem a necessidade de Xcode e um Mac para fazer o trabalho de desenvolvimento. Você está ouvindo, Tim Cook?
>A certa altura, havia uma próspera indústria de casinhas de autores de pilhas comerciais, e eu era um deles. O Heizer Software geria o que era chamado de “Stack Exchange”, um lugar para os autores da pilha venderem seus produtos. Como a Apple com as lojas de aplicativos atuais, a Heizer tirou uma parte de cada venda para administrar a loja, mas os autores podiam ganhar muito bem com a venda de pilhas populares. A empresa enviava catálogos impressos com descrições e capturas de tela de cada pilha; você encomendava através de correio de caracol, depois recebia disquetes (CDs em uma data posterior) com a(s) pilha(s) neles.
Try HyperCard on your Current Mac
Talvez este longo olhar para baixo na faixa de memória tenha lhe dado a vontade de ir procurar um Mac vintage, carregá-lo com o Sistema 7 ou 8, e depois acender uma cópia do HyperCard. Bem, você não precisa fazer isso – há um emulador maravilhoso no Internet Archive que roda em um navegador da Web.
- Para ter uma ideia deste emulador, aponte o seu browser favorito para https://archive.org/details/AppleMacintoshSystem753 e depois clique no botão verde na “imagem”. Um emulador Mac rodando System 7.5.3 – incluindo HyperCard – é lançado, e você pode jogar com as pilhas existentes ou criar o seu próprio. Você pode até rodar o emulador no seu iPhone ou iPad!
- Se você tiver um pouco mais de tempo, há também um emulador configurado que inclui 250MB de várias pilhas de HyperCard do Berkeley Mac User Group (BMUG). Isso levará algum tempo para baixar e iniciar, portanto seja paciente.
Como o Newton MessagePad, que inspirou os poderosos e portáteis smartphones e tablets atuais, e o QuickTake 100 (a primeira câmera digital de consumo popular), o HyperCard passou a ter um impacto que ainda hoje é sentido. Quando você liga o aplicativo Automator do Mac ou trabalha com Shortcuts no iPad ou iPhone, você está vendo um reflexo das capacidades do HyperCard. Espero que este artigo inspire os leitores não só a dar uma olhada no HyperCard através do emulador, mas também a experimentar a sua mão com as ferramentas modernas para criar os seus próprios fluxos de trabalho. Eles podem não ser tão divertidos como as antigas pilhas de HyperCard, mas eles são certamente mais poderosos.