Decker: una recreación de HyperCard con gráficos de 1 bit
(beyondloom.com)Introducción a la plataforma multimedia Decker
- Decker es una plataforma multimedia para crear y compartir documentos interactivos que incluyen sonido, imágenes, hipertexto y comportamiento mediante scripts
- Se puede probar directamente en el navegador web
- Está basada en el legado de HyperCard y la estética visual del MacOS clásico
- Mantiene la simplicidad y facilidad de aprendizaje que ofrecía HyperCard, mientras añade muchas mejoras de usabilidad tanto sutiles como evidentes, como historial profundo de deshacer, soporte para rueda de desplazamiento y pantallas táctiles, navegación por teclado más moderna y edición masiva, entre otras
Qué se puede hacer con Decker
- Cualquiera puede usar Decker para crear E-Zines, organizar notas, hacer presentaciones, crear juegos de aventura o garabatear pixel art de 1 bit
- Su estética general "ditherpunk" resulta acogedora, ligeramente nostálgica, divertida y ofrece restricciones creativas únicas
- Como herramienta de prototipado, Decker fomenta un enfoque de boceto e imperfecto
- Los decks terminados se guardan como documentos .html autónomos que se ejecutan por sí mismos en el navegador web y pueden compartirse en cualquier lugar donde se pueda alojar o incrustar una página web
- Decker también se ejecuta de forma nativa en MacOS, Windows y Linux
Introducción al lenguaje de scripting Lil
- Para proyectos más complejos, Decker ofrece un nuevo lenguaje de scripting llamado Lil
- Lil está fuertemente influido por Lua, un lenguaje imperativo ampliamente usado para integrarse en herramientas y motores de juego, y por Q, un lenguaje funcional de la familia APL usado junto con bases de datos de series temporales
- Lil es fácil de aprender y sigue suficientes convenciones como para no resultar extraño a quienes ya tienen experiencia en programación, pero también incluye sorpresas agradables como aritmética implícita escalar-vector y un lenguaje de consultas integrado similar a SQL
- Incluso con unas pocas líneas de Lil se puede hacer mucho
Las distintas funciones de Decker
- Decker ofrece widgets interactivos integrados para construir interfaces y la capacidad de definir nuevos widgets
- Los widgets personalizados y sus definiciones pueden copiarse y pegarse usando el portapapeles del sistema, y compartirse en cualquier lugar donde se pueda compartir o guardar texto
- Cada deck es una caja de herramientas de piezas reutilizables que pueden aprovecharse en otros proyectos
- Decker es amigable con la línea de comandos. Al compilar desde el código fuente, incluye Lilt, un intérprete autónomo de Lil, con el que se pueden leer, escribir, manipular e incluso ejecutar documentos de Decker en modo "headless"
- Como Lilt tiene muchas menos dependencias que Decker mismo, puede compilarse como un APE multiplataforma ejecutable, lo que permite escribir scripts de shell que se ejecuten en cualquier lugar
- También existe un intérprete de Lil que corre sobre POSIX AWK
- Los decks se guardan en un formato de texto orientado a líneas que interoperan bien con herramientas tradicionales de control de código fuente como Git y SVN
Ejemplos de uso y módulos de Decker
- La sección "Examples" presenta varios proyectos de ejemplo hechos con Decker
- Tour guiado de Decker, 5GUIs, intérprete de CHIP-8, Everything About Draggable, Everything About Sound y el juego de rompecabezas de empujar bloques Sokoban, entre otros
- La sección "Modules" presenta varios módulos de complemento para Decker
- Plot: gráficos simples para Decker
- Zazz: asistente de animación para Decker
- Ease: funciones de easing para Decker
- Dialogizer: modal de novela visual para Decker
- Puppeteer: animación de sprites de novela visual para Decker
Documentación y recursos adicionales
- Se ofrece diversa documentación, como el manual de referencia de Decker, el formato de documentos de Decker y el lenguaje de programación Lil
- También hay recursos para aprender Lil, como aprender Lil en 10 minutos, el playground de Lil y una tarjeta de referencia rápida de Lil
- El código fuente y el rastreador de errores están disponibles en GitHub
- Decker es software libre y de código abierto bajo la licencia MIT
- Hay lanzamientos binarios periódicos para MacOS y Windows disponibles en Itch.io
- La página de Itch también incluye un foro comunitario para debatir sobre Decker y compartir proyectos creados con Decker
Opinión de GN⁺
-
Implementar Decker sobre POSIX AWK es un intento muy interesante. AWK es un lenguaje de scripting especializado en procesamiento de texto, y parece una base adecuada para implementar un lenguaje como Lil. Al hacerlo en AWK, probablemente lograron que fuera fácil de portar y ejecutar en múltiples plataformas.
-
Haber elegido un formato de almacenamiento basado en texto línea por línea para Decker parece una decisión muy acertada. Los formatos basados en texto son muy compatibles con VCS como Git, lo que facilita el control de versiones y también permite rastrear cambios con Diff. Los formatos binarios tienen la desventaja de ser frágiles y difíciles de versionar.
-
La filosofía de diseño de Lil es interesante. Se dice que recibió influencia de Lua y Q; Lua se usa ampliamente para scripting en juegos, mientras que Q es un lenguaje de la familia APL especializado en consultas de bases de datos. Parece que combinaron las ventajas de ambos lenguajes para darle a Lil características propias y distintivas. En particular, operaciones escalar-vector o una sintaxis de consultas integrada son funciones poco comunes en lenguajes existentes.
-
El rango de usos parece muy amplio: E-Zines, notas, presentaciones, juegos de aventura, pixel art y más. Da la impresión de que podría usarse tanto en aplicaciones complejas como en documentos sencillos de diversos tipos. Sin embargo, precisamente por ser tan generalista, quizá le falten funciones frente a herramientas especializadas en cada área.
-
Personalmente me gusta la UI con estilo de Classic Mac OS, pero para usuarios modernos podría sentirse demasiado retro. Estaría bien que ofreciera también temas más modernos mediante un sistema de skins. Además, para quienes usan Windows o Linux podría resultar una interfaz poco familiar.
1 comentarios
Comentarios en Hacker News
Si se cambia un poco de gráficos de 1 bit a gráficos de 2 bits, la legibilidad de las fotos puede mejorar mucho. Por ejemplo, solar.lowtechmagazine.com logra una estética excelente usando hasta 6 colores.
Reflexión sobre el empaquetado de Decker. Se preguntan si están considerando un enfoque como el de Redbean: empaquetar Lua, SQLite, etc. en un solo archivo, descomprimirlo como zip, poner dentro código HTML y Lua, y luego distribuirlo solo cambiándole el nombre.
Decker ya se había presentado varias veces antes en HN. Hace 3 meses obtuvo 191 puntos y 36 comentarios. Hace 2 años, 215 puntos y 88 comentarios.
Recomiendan probar Decker directamente. Se incluye un enlace al sitio de demostración.
Opinan que Decker les trae dulces recuerdos de la infancia. Solo desearían que tuviera la función de pellizcar para hacer zoom en móvil.
El mayor defecto de HyperCard fue no haber soportado color cuando Mac adoptó el color. En la preparatoria, todas las Mac de la escuela eran a color, pero HyperCard no lo era.
Recuerdo de haber usado en la escuela un sistema de navegación de información del transbordador hecho en HyperCard sobre un laserdisc de la NASA. En ese momento no les impresionó tanto, pero fue una experiencia genial.
Decker se parece a HyperCard por ser de gráficos de 1 bit, pero su forma de uso es bastante distinta. Hay que aprender el peculiar lenguaje "Lil", y le faltan muchas funciones de comodidad de HyperCard/MacPaint, así que puede ser diferente a lo esperado. Los artistas de HyperCard todavía pueden usar HyperCard en el navegador gracias a Infinite Mac.
Dicen que Decker es divertido. También recomiendan Wyldcard, que soporta scripting en HyperTalk.
Se preguntan por qué Apple o MS no se esfuerzan más en crear herramientas de desarrollo casual como esta. VB y Python están bien, pero sería bueno tener herramientas optimizadas para hacer apps pequeñas.
Hay mucho cariño por HyperCard. Aunque no vivieron esa época, parece haber permitido crear herramientas pequeñas y útiles. Da la impresión de que era versátil de una forma distinta a una hoja de cálculo.
Quieren saber qué herramienta moderna captura esa misma sensación para quienes sí vivieron esa época. Una generación un poco más joven siente nostalgia por Delphi/VB y Flash. Eran herramientas imperfectas, pero estimulaban la creatividad.
Las herramientas han mejorado muchísimo, pero da la sensación de que en el proceso se perdió algo.