Decker: uma recriação do HyperCard com gráficos de 1 bit
(beyondloom.com)Introdução à plataforma multimídia Decker
- Decker é uma plataforma multimídia para criar e compartilhar documentos interativos que incluem som, imagens, hipertexto e comportamentos por script
- Pode ser usado diretamente no navegador
- Baseia-se no legado do HyperCard e na estética visual do MacOS clássico
- Mantém a simplicidade e a facilidade de aprendizado oferecidas pelo HyperCard, enquanto adiciona muitas melhorias de usabilidade, sutis e evidentes, como histórico profundo de desfazer, suporte a roda de rolagem e telas sensíveis ao toque, navegação por teclado mais moderna e edição em massa
O que dá para fazer com Decker
- Qualquer pessoa pode usar o Decker para criar E-zines, organizar notas, fazer apresentações, criar jogos de aventura, rabiscar pixel art de 1 bit e mais
- A estética geral "ditherpunk" é aconchegante, levemente nostálgica, divertida e oferece restrições criativas únicas
- Como ferramenta de prototipagem, Decker incentiva a esboçar e abraçar abordagens imperfeitas
- Decks finalizados podem ser salvos como documentos
.htmlautônomos, que rodam por conta própria no navegador e podem ser compartilhados em qualquer lugar que permita hospedar ou incorporar uma página web - Decker também roda nativamente em MacOS, Windows e Linux
Introdução à linguagem de script Lil
- Para projetos mais complexos, Decker oferece uma nova linguagem de script chamada Lil
- Lil é fortemente influenciada por Lua, uma linguagem imperativa amplamente usada para embutir em ferramentas e engines de jogo, e por Q, uma linguagem funcional da família APL usada com bancos de dados de séries temporais
- Lil é fácil de aprender e segue convenções tradicionais o bastante para não incomodar usuários com experiência prévia em programação, mas também inclui surpresas agradáveis, como aritmética implícita escalar-vetor e uma linguagem de consulta integrada semelhante a SQL
- Mesmo com poucas linhas de Lil, já é possível fazer bastante coisa
Os vários recursos do Decker
- Decker oferece widgets interativos embutidos para construção de interfaces, além da capacidade de definir novos widgets
- Widgets personalizados e definições podem ser copiados e colados usando a área de transferência do sistema, e compartilhados em qualquer lugar onde seja possível compartilhar ou salvar texto
- Todo deck é uma caixa de ferramentas de peças reutilizáveis que podem ser reaproveitadas em outros projetos
- Decker é amigável à linha de comando. Ao compilar a partir do código-fonte, ele vem com Lilt, um interpretador standalone de Lil, capaz de ler, escrever, manipular e até executar documentos Decker em modo "headless"
- Como Lilt tem bem menos dependências que o próprio Decker, ele pode ser compilado como um APE multiplataforma executável, permitindo escrever shell scripts executáveis em qualquer lugar
- Também existe um interpretador Lil executado em POSIX AWK
- Decks são salvos em um formato de texto orientado por linhas que funciona bem com ferramentas tradicionais de controle de versão, como Git e SVN
Exemplos de uso e módulos do Decker
- A seção "Examples" apresenta vários projetos de exemplo feitos com Decker
- tour guiado do Decker, 5GUIs, interpretador CHIP-8, tudo sobre Draggable, tudo sobre som, e o jogo de puzzle de empurrar blocos Sokoban
- A seção "Modules" apresenta vários módulos de plugin para Decker
- Plot: gráficos simples para Decker
- Zazz: assistente de animação para Decker
- Ease: funções de easing para Decker
- Dialogizer: modal de visual novel para Decker
- Puppeteer: animação de sprites de visual novel para Decker
Documentação e recursos adicionais
- São oferecidos vários documentos, como o manual de referência do Decker, o formato de documento do Decker e a linguagem de programação Lil
- Também há materiais para aprender Lil, como Aprenda a linguagem Lil em 10 minutos, playground de Lil e cartão de referência rápida de Lil
- O código-fonte e o rastreador de bugs estão disponíveis no GitHub
- Decker é livre e open source sob a licença MIT
- Releases binários periódicos para MacOS e Windows estão disponíveis no Itch.io
- A página no Itch inclui um fórum da comunidade para discutir o Decker e compartilhar projetos feitos com ele
Opinião do GN⁺
-
Implementar Decker em POSIX AWK é uma tentativa muito interessante. AWK é uma linguagem de script especializada em processamento de texto, e parece ser uma boa base para implementar uma linguagem de script como Lil. Ao usar AWK, provavelmente ficou mais fácil portar e executar em várias plataformas.
-
A escolha de usar um formato de armazenamento em texto linha a linha para o Decker parece muito acertada. Formatos baseados em texto são compatíveis com VCS como Git, o que facilita o versionamento e também permite rastrear mudanças com diff. Formatos binários têm a desvantagem de serem frágeis e difíceis de versionar.
-
A filosofia de design do Lil é interessante. Dizem que ele foi influenciado por Lua e Q; Lua é amplamente usada em scripts para jogos, enquanto Q é uma linguagem da família APL especializada em consultas de banco de dados. Parece que combinaram as vantagens das duas linguagens para dar ao Lil características próprias e únicas. Em especial, operações escalar-vetor e sintaxe de consulta embutida são recursos difíceis de encontrar em linguagens convencionais.
-
O campo de aplicação parece bem amplo: E-zines, notas, apresentações, jogos de aventura, pixel art e mais. Parece algo que pode ser usado em áreas variadas, de apps complexos a documentos simples. Por outro lado, por ser tão genérico, talvez falte profundidade de recursos em comparação com ferramentas especializadas de cada área.
-
Pessoalmente, gosto da interface no estilo Classic Mac OS, mas para usuários modernos ela pode parecer retrô demais. Seria interessante oferecer também temas mais modernos por meio de skins. Para usuários de Windows ou Linux, talvez a interface também pareça pouco familiar.
1 comentários
Comentários do Hacker News
Ao passar um pouco de gráficos de 1 bit para 2 bits, a legibilidade de fotos pode melhorar bastante. Como exemplo, solar.lowtechmagazine.com usa até 6 cores para criar uma estética excelente.
Reflexão sobre o empacotamento do Decker. Há curiosidade sobre a possibilidade de adotar um método como o do Redbean, juntando Lua, SQLite etc. em um único arquivo, descompactando como zip, inserindo código HTML e Lua e depois distribuindo apenas mudando o nome.
O Decker já foi apresentado algumas vezes no HN. Há 3 meses, 191 pontos e 36 comentários. Há 2 anos, 215 pontos e 88 comentários.
Recomendação para experimentar o Decker pessoalmente. Foi fornecido um link para o site de demonstração.
Opinião de que o Decker traz de volta doces lembranças da infância. Só faltaria suporte a pinch zoom no celular.
O maior defeito do HyperCard foi não oferecer suporte a cores quando o Mac passou a adotá-las. No ensino médio, todos os Macs da escola já eram coloridos, mas o HyperCard não era.
Lembrança de usar na escola o NASA laserdisc, um sistema de navegação de informações sobre o ônibus espacial feito em HyperCard. Na época não impressionou tanto, mas foi uma experiência muito legal.
O Decker parece semelhante ao HyperCard por usar gráficos de 1 bit, mas a forma de uso é bem diferente. É preciso aprender a linguagem peculiar "Lil", e faltam muitos recursos práticos do HyperCard/MacPaint, então a experiência pode ser diferente do esperado. Artistas de HyperCard ainda podem continuar usando HyperCard no navegador graças ao Infinite Mac.
Comentário de que o Decker é divertido. Também recomendam o Wyldcard, que oferece suporte a scripts em HyperTalk.
Há curiosidade sobre por que Apple ou MS não se esforçam mais para criar ferramentas casuais de desenvolvimento como essa. VB e Python são bons, mas seria ótimo ter uma ferramenta otimizada para criar pequenos apps.
Há muito carinho pelo HyperCard. Mesmo para quem não viveu essa época, ele parece ter permitido criar ferramentas pequenas e úteis. Dava a impressão de ser versátil de um jeito diferente das planilhas.
Pergunta sobre quais ferramentas modernas capturam essa mesma sensação para quem viveu aquela época. Uma geração um pouco mais nova sente nostalgia de Delphi/VB e Flash: ferramentas imperfeitas, mas que estimulavam a criatividade.
As ferramentas melhoraram muito, mas fica a sensação de que algo se perdeu no processo.