Decker: recriando o HyperCard com gráficos de 1 bit
(beyondloom.com)- Decker é uma plataforma multimídia para criar e compartilhar som, imagens, hipertexto e ações de script em um único documento, com uso imediato no navegador
- Mantém a sensibilidade visual do HyperCard e do MacOS clássico, adicionando desfazer profundo, suporte a roda de rolagem e tela sensível ao toque, navegação moderna por teclado e edição em lote
- Permite criar trabalhos como e-zines, notas, apresentações, jogos de aventura e pixel art de 1 bit, e o deck final pode ser salvo como um documento standalone
.html - Projetos complexos podem ser estendidos com Lil, influenciada por Lua e Q, enquanto widgets, compartilhamento via área de transferência e formato de documento baseado em texto ajudam na reutilização e no controle de versão
- É uma ferramenta gratuita e open source sob licença MIT, sem anúncios, telemetria, gamificação ou integração com slop-generator, com código-fonte no GitHub e binários distribuídos no Itch.io
Criação de documentos interativos com a estética do HyperCard
- Decker é uma plataforma multimídia para criar e compartilhar documentos interativos com som, imagens, hipertexto e ações de script
- Pode ser testado imediatamente no navegador
- Herda a estética visual do HyperCard e do MacOS clássico, mantendo a simplicidade e a facilidade de aprendizado que o HyperCard oferecia
- As melhorias de usabilidade se concentram em preservar a sensação das antigas ferramentas de criação baseadas em cartões, adaptando-as aos ambientes de entrada modernos
-
Histórico profundo de desfazer
- Suporte a roda de rolagem e tela sensível ao toque
- Navegação por teclado mais moderna
- Operações de edição em lote
- A variedade de criações possíveis é ampla
- E-zines
- Organização de notas
- Materiais de apresentação
- Jogos de aventura
- Rabiscos de pixel art de 1 bit
- O deck concluído pode ser salvo como um documento standalone
.htmlautoexecutável no navegador, podendo ser compartilhado em qualquer lugar onde seja possível hospedar ou incorporar uma página web - Decker também roda nativamente em MacOS, Windows, BSD e Linux
-
Lil, widgets e fluxo de desenvolvimento baseado em texto
- Projetos mais complexos podem usar uma linguagem de script chamada Lil
- Lil é influenciada por Lua, uma linguagem imperativa incorporada em ferramentas e engines de jogos
- Também recebe influência de Q, uma linguagem funcional da família APL usada com bancos de dados de séries temporais
- Mantém uma estrutura familiar para quem já tem experiência prévia em programação, incluindo aritmética implícita escalar-vetor e uma linguagem de consulta integrada semelhante a SQL
- Para criar interfaces, é possível usar a coleção interna de widgets interativos, e também definir novos widgets
- Widgets e definições personalizadas podem ser copiados e colados pela área de transferência do sistema
- Widgets personalizados também podem ser compartilhados em qualquer lugar onde seja possível compartilhar ou armazenar texto
- Cada deck funciona como um conjunto de componentes reutilizáveis que podem ser levados para outros projetos
- Ao compilar a partir do código-fonte, também é fornecido o Lilt, um interpretador standalone de Lil
- O Lilt pode ler, escrever, manipular e executar documentos Decker em modo headless
- Tem menos dependências que o Decker, então pode ser compilado como um executável APE multiplataforma
- Também existe um interpretador Lil executado em POSIX AWK
- Os decks são salvos em um formato de texto baseado em linhas, integrando-se bem com ferramentas tradicionais de controle de código-fonte como Git e SVN
- O Decker não inclui anúncios, telemetria, gamificação, integração com slop-generator nem elementos que violem a privacidade e a autonomia do usuário
Decks de exemplo e bibliotecas de extensão
-
Decks de exemplo
- Decker: A Guided Tour: tour guiado do Decker
- 5GUIs: exemplos de GUI
- Sokoban: A Block-Pushing Puzzle Game: jogo de quebra-cabeça de empurrar blocos
- Breakout: Three Ways: exemplo de implementação de Breakout
- A CHIP-8 Interpreter: interpretador de CHIP-8
- Gamepad Input Demo: demo de entrada com gamepad
-
Bibliotecas
-
Documentação e materiais de aprendizado
- The Decker reference manual: manual de referência do Decker
- The Lil programming language: documentação da linguagem Lil
- The Decker document format: formato de documento do Decker
- Learn Lil in 10 Minutes: material rápido para aprender Lil
- The Lil playground: playground do Lil
- Lilt: the Lil Terminal: terminal Lil
Código-fonte, distribuição e comunidade
- O código-fonte navegável e o rastreador de bugs estão no GitHub
- Decker é gratuito e open source sob licença MIT
- Releases binárias periódicas para MacOS e Windows podem ser baixadas no Itch.io
- A página no Itch tem um fórum da comunidade para discutir o Decker e compartilhar projetos feitos com ele
- Os “Game Jams” temáticos de Decker acontecem todos os anos em julho e dezembro, e o próximo evento programado é o Decker Fantasy Camp, July 2026
1 comentários
Opiniões no Hacker News
Lindo! Sei que há uma estética sendo buscada aqui, mas acho que, avançando só um pouquinho de gráficos de 1 bit para gráficos de 2 bits, seria possível até ter fotos realmente legíveis
Há um site de que gosto com uma estética parecida, onde todas as imagens usam no máximo 6 cores. Só que a paleta varia de imagem para imagem: https://solar.lowtechmagazine.com/
No fórum da comunidade[0] há discussões sobre dithering e importação de fotos coloridas, e os usuários estão criando projetos[1] bem legais usando cores
[0]: https://itch.io/t/2668739/16-color-dithered
[1]: https://crowmorbid.itch.io/desker-deckmonth
Não deixe de experimentar também!
https://www.beyondloom.com/decker/tour.html
Ver isso me trouxe lembranças surpreendentemente doces; será que sou só eu? A única coisa que eu queria é que desse para fazer pinch-to-zoom no celular
É pequeno demais para ler o texto, e o pinch-to-zoom também está bloqueado, então não dá para olhar de perto
Respeito as escolhas deste projeto, mas sinto que o maior defeito do HyperCard foi não ter implementado cores quando o Mac começou a adotar cores
Quando eu estava no ensino médio, todos os Macs da escola eram máquinas coloridas, mas o HyperCard nunca chegou a ter cores nativas de verdade
O HyperCard nunca recebeu uma atualização de cores nativas, e esse era o recurso que todo mundo mais queria
Havia uma ferramenta relacionada, acho que chamada SuperCard, que oferecia cores; eu cheguei a usar, mas era meio tosca. Não lembro exatamente por quê, mas acabou não decolando
A API limitada do HyperTalk também era um problema. Havia um mercado de extensões, e alguns desenvolvedores dominaram esse espaço por um tempo. Fico imaginando o que aconteceu com J5erson. Era realmente excelente
As extensões geralmente eram escritas em Pascal e podiam acrescentar muitos recursos ao HyperTalk, então serviam como um bom trampolim para quem queria explorar mais programação além do HyperCard
O Decker parece ter adotado muitos dos pontos fortes do HyperCard, como simplicidade e portabilidade. Só acho um pouco pena ele não usar uma linguagem mais próxima do HyperTalk. Aquela linguagem era realmente boa à sua maneira
O Decker é principalmente de 1 bit, então por fora parece com o HyperCard, mas na prática é diferente a ponto de ser preciso aprender tudo de novo
É bem difícil de usar, exige aprender Lil, uma linguagem nova e peculiar, e deixa de fora vários recursos de conveniência que você procuraria se estivesse esperando HyperCard ou MacPaint
No fim, fica difícil para artistas do HyperCard migrarem, e, graças ao Infinite Mac, eles continuam usando HyperCard no navegador. Tão perto e tão longe. Parecido, mas diferente
Na escola havia um LaserDisc da NASA cheio de informações sobre o ônibus espacial
Ele ficava conectado a um Mac rodando HyperCard para navegação e exibição das informações, e era bem legal, embora eu ache que na época eu não tenha apreciado isso como deveria
Era como uma multimídia inicial, antes do boom multimídia dos anos 90 :-)
Não entendo por que a Apple ou a Microsoft não se esforçam mais para criar ferramentas assim, voltadas a desenvolvedores casuais, dentro do sistema operacional
VB e Python são bons, mas às vezes você precisa de uma ferramenta realmente feita sob medida para criar pequenos aplicativos
E o SwiftUI é o mais fácil possível
Ainda assim, usar o Xcode e configurar tudo para a App Store continua exigindo configurações obscuras e um certo entendimento da IDE Xcode :-)
Tenho muito carinho pelo HyperCard
Eu não vivi isso pessoalmente, mas parece que ele permitia que as pessoas criassem muitas ferramentas pequenas e úteis. Em termos de versatilidade, era parecido com planilhas, mas com uma sensação de uso diferente
Fico curioso para saber quais ferramentas modernas dão essa mesma sensação para quem viveu aquela época
Sou de uma geração um pouco mais nova, então tenho nostalgia de ferramentas como Delphi/VB ou Macromedia Flash. Não eram perfeitas, mas estimulavam a criatividade
As ferramentas de hoje são muito melhores, mas parece que algo se perdeu no processo
O HTML incorporou muita coisa que o HyperCard oferecia, mas as ferramentas de autoria para a Web nunca ficaram tão fáceis, e também não ofereciam um dos recursos do HyperCard: a consistência na aparência e na sensação da UI. Isso podia ser uma vantagem ou uma desvantagem, mas alguns usuários gostavam do fato de poderem criar um flipbook adicionando só dois botões, anterior/próximo, à página
Algumas pessoas até começaram negócios vendendo materiais educacionais empacotados como stacks do HyperCard
A linguagem de programação HyperTalk não era excelente, e era o tipo de linguagem de que hippies gostam, mas o usuário médio ficava tão perdido quanto ficaria diante de C ou Pascal
Sempre tive a impressão de que a Apple tentava controlar demais o que dava para fazer com aquilo. Era o oposto do que espero de uma linguagem de programação e das ferramentas ao seu redor
Se quiser saber qual era a sensação, tente programar algo em AppleScript
Lembro das ferramentas VB e Macromedia, e sinto que as ferramentas de hoje são mais difíceis de usar
O lamentável, porém, é que ele criou um grande abismo entre criadores de Flash e consumidores de Flash. Um tinkerer motivado até poderia descompilar e modificar um .swf, mas isso estava longe do modelo do HyperCard, que dava ferramentas de edição a todos os usuários e transformava todos os stacks em conjuntos de peças reutilizáveis
O Decker pode exportar decks independentes “bloqueados” que ocultam o editor, mas o processo para reativá-lo é trivial. Já vi um caso projetado para se “desbloquear” sozinho quando o jogo era concluído, e acho isso uma recompensa bem legal
Em vários aspectos ele não corresponde exatamente ao HyperCard, mas é um candidato especialmente forte em três áreas relacionadas. O download inicial é pequeno (<100 MB), os tempos de carregamento/execução são curtos, e ele oferece um fluxo de desenvolvimento iterativo e hackeável que combina bem com a fase inicial de exploração para criar “algo que funciona”. GDScript é muito adequado para isso, e adições recentes, como tipagem gradual, também vêm melhorando sua robustez com o tempo
O modelo de distribuição/instalação do Godot também é muito forte. Nesse quesito, acho que ele está anos-luz à frente de qualquer outro ecossistema[0]. Basta baixar os templates de exportação das plataformas que você quer suportar, ou seja, executáveis binários genéricos por plataforma, e então empacotar e exportar o código e os recursos de cada projeto[1]
A parte em que o Godot atualmente mais deixa a desejar, de forma surpreendente, em comparação com o HyperCard ou o Visual Basic “clássico”, é a criação de UI por arrastar e soltar. O Godot tem um sistema de UI bastante poderoso, mas às vezes ele é opaco, e a experiência atual de criar UI faz você ficar muito consciente da árvore de nós da cena, em vez de simplesmente arrastar widgets de uma barra de ferramentas para uma janela
Essa experiência de usuário parece algo relativamente fácil de melhorar com um Editor Plugin, e talvez um dia eu faça um protótipo para essa toca de coelho :)
Não é uma solução perfeita, mas hoje é definitivamente minha escolha padrão ao criar utilitários baseados em GUI. Alguns deles eu de fato levei longe o bastante para “lançar” :D
[0] Neste ponto, Python em especial desmorona de forma desastrosa
[1] Também é possível exportar para WASM na Web, permitindo uma distribuição em duas frentes: as pessoas primeiro usam a versão Web do utilitário e, se ele for útil o bastante, também baixam o executável local
O Decker é realmente ótimo e muito divertido
Se você procura scripting HyperTalk, talvez também goste do Wyldcard
https://github.com/defano/wyldcard
Comecei a fuçar no Decker depois que ele foi mencionado na discussão da semana passada sobre substitutos do HyperCard
Estou muito curioso sobre o empacotamento dos decks. Gosto do jeito do Redbean: incluir Lua, SQLite etc. tudo em um único arquivo, que você abre com uma ferramenta zip, coloca HTML e código Lua, renomeia e fica pronto para distribuir
Fico curioso se o Decker está considerando algum tipo de abordagem assim para facilitar a distribuição