1 puntos por GN⁺ 2024-05-09 | 1 comentarios | Compartir por WhatsApp
  • Decker es una plataforma multimedia para crear y compartir documentos que reúnen sonido, imágenes, hipertexto y comportamiento mediante scripts en un solo archivo, y se puede probar directamente en el navegador
  • Mantiene la sensibilidad visual de HyperCard y del MacOS clásico, mientras agrega deshacer profundo, soporte para rueda de desplazamiento y pantalla táctil, navegación moderna con teclado y edición por lotes
  • Permite crear E-Zines, notas, material de presentación, juegos de aventura y trabajos como pixel art de 1 bit, y los decks terminados pueden guardarse como documentos .html standalone
  • Los proyectos complejos se amplían con Lil, influido por Lua y Q, y los widgets, el uso compartido por portapapeles y el formato de documentos basado en texto ayudan con la reutilización y el control de versiones
  • Es una herramienta gratuita y de código abierto con licencia MIT que no incluye anuncios, telemetría, gamificación ni integración con slop-generators, y ofrece el código fuente en GitHub y distribuciones binarias en Itch.io

Creación de documentos interactivos con la estética de HyperCard

  • Decker es una plataforma multimedia para crear y compartir documentos interactivos que incluyen sonido, imágenes, hipertexto y comportamiento mediante scripts
  • Se puede probar de inmediato en el navegador web
  • Hereda la estética visual de HyperCard y del MacOS clásico, al tiempo que conserva la simplicidad y facilidad de aprendizaje que ofrecía HyperCard
  • Las mejoras de usabilidad se enfocan en conservar la sensación de las antiguas herramientas de creación basadas en tarjetas, adaptándolas al entorno moderno de entrada
    • Historial de deshacer profundo

      • Soporte para rueda de desplazamiento y pantallas táctiles
      • Navegación con teclado más moderna
      • Edición por lotes
      • Los ejemplos de lo que se puede crear son muy variados
      • E-Zines
      • Organización de notas
      • Material de presentación
      • Juegos de aventura
      • Garabatos de pixel art de 1 bit
      • Los decks terminados pueden guardarse como documentos .html standalone 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, BSD y Linux

Lil, widgets y flujo de desarrollo basado en texto

  • Para proyectos complejos, se puede usar un lenguaje de scripting llamado Lil
    • Lil está influido por Lua, un lenguaje imperativo integrado en herramientas y motores de juego
    • También recibe influencia de Q, un lenguaje funcional de la familia APL usado junto con bases de datos de series temporales
    • Mantiene una estructura familiar para usuarios con experiencia previa en programación, e incluye aritmética implícita escalar-vector y un lenguaje de consultas integrado similar a SQL
  • Para crear interfaces, se puede usar una colección integrada de widgets interactivos, y también es posible definir nuevos widgets
    • Los widgets personalizados y sus definiciones pueden copiarse y pegarse mediante el portapapeles del sistema
    • Los widgets personalizados también pueden compartirse en cualquier lugar donde se pueda compartir o guardar texto
    • Cada deck funciona como una colección de componentes reutilizables que pueden importarse en otros proyectos
  • Al compilar desde el código fuente, también se incluye Lilt, un intérprete standalone de Lil
    • Lilt puede leer, escribir, manipular y ejecutar sin interfaz documentos de Decker
    • Tiene menos dependencias que Decker, por lo que puede compilarse como un ejecutable APE multiplataforma
    • También existe un intérprete de Lil que se ejecuta en POSIX AWK
  • Los decks se guardan en un formato de texto basado en líneas, por lo que se integran bien con herramientas de control de código fuente existentes como Git y SVN
  • Decker no incluye anuncios, telemetría, gamificación, integración con slop-generators ni elementos que vulneren la privacidad y autonomía del usuario

Decks de ejemplo y bibliotecas de extensión

Código fuente, distribución y comunidad

  • El código fuente explorable y el rastreador de errores están en GitHub
  • Decker es software gratuito y de código abierto con licencia MIT
  • Las distribuciones binarias periódicas para MacOS y Windows pueden descargarse desde Itch.io
  • La página de Itch incluye un foro de la comunidad para discutir sobre Decker y compartir proyectos hechos con Decker
  • Los “Game Jams” temáticos de Decker se celebran cada julio y diciembre, y el próximo evento programado es Decker Fantasy Camp, July 2026

1 comentarios

 
GN⁺ 2024-05-09
Opiniones de Hacker News
  • ¡Hermoso! Sé que aquí se busca cierta estética, pero si se avanzara apenas un poco más desde los gráficos de 1 bit hacia los gráficos de 2 bits, creo que hasta se podrían tener fotos realmente legibles.
    Hay un sitio que me gusta con una estética parecida, donde todas las imágenes usan como máximo 6 colores. Eso sí, la paleta cambia según la imagen: https://solar.lowtechmagazine.com/

  • ¡No olviden probarlo ustedes mismos!
    https://www.beyondloom.com/decker/tour.html
    Esto me trajo recuerdos sorprendentemente dulces; ¿soy el único? Lo único que pediría es que en móvil funcione el zoom con pellizco.

    • Por alguna razón parece usar solo alrededor del 20% de la pantalla del iPhone.
      Es demasiado pequeño para leer el texto, y el zoom con pellizco está bloqueado, así que no se puede mirar de cerca.
    • Puede que sea un problema de Firefox o que yo no sepa usarlo, pero al presionar New Card solo aparece una pantalla en blanco y no hay forma de escribir o dibujar.
  • Respeto las decisiones de este proyecto, pero siento que el mayor defecto de HyperCard fue no implementar color cuando la Mac empezó a adoptar el color.
    Cuando estaba en la secundaria, todas las Mac de la escuela eran equipos a color, pero HyperCard nunca llegó a tener color nativo de verdad.

    • Mi recuerdo es básicamente el mismo. HyperCard era tremendamente popular, en especial como herramienta para introducir a los niños a la programación, pero cuando la línea Quadra de Mac trajo el color, todos querían color.
      HyperCard nunca recibió una actualización de color nativo, y esa era la función que todos más querían.
      Creo que había una herramienta relacionada llamada SuperCard que ofrecía color; la probé, pero era torpe. No recuerdo exactamente por qué, pero al final no despegó.
      La API limitada de HyperTalk también era un problema. Había un mercado de extensiones, y algunos desarrolladores dominaron ese espacio durante un tiempo. Me pregunto qué habrá sido de J5erson. Era realmente excelente.
      Las extensiones normalmente se escribían en Pascal y podían agregar muchas funciones a HyperTalk, así que servían como un buen escalón para quienes querían explorar más la programación más allá de HyperCard.
      Decker parece haber tomado muchas de las virtudes de HyperCard, como la simplicidad y la portabilidad. Pero me da un poco de pena que no use un lenguaje más cercano a HyperTalk. Ese lenguaje era realmente bastante bueno a su manera.
  • Como Decker es principalmente de 1 bit, por fuera se parece a HyperCard, pero en realidad es lo bastante distinto como para tener que aprenderlo desde cero.
    Es bastante difícil de usar, hay que aprender Lil, un lenguaje nuevo y peculiar, y le faltan varias comodidades que uno esperaría al pensar en HyperCard o MacPaint.
    Al final, a los artistas de HyperCard les cuesta migrar, y gracias a Infinite Mac siguen usando HyperCard en el navegador. Está muy cerca y a la vez muy lejos. Parecido, pero distinto.

  • En la escuela había un laserdisc de NASA lleno de información sobre el transbordador.
    Estaba conectado a una Mac que ejecutaba HyperCard para la navegación y la visualización de información, y era bastante genial, aunque creo que en ese momento no lo aprecié tanto como merecía.

    • ¡Recuerdo cosas así! No vi ese en particular, pero sí había stacks de HyperCard que circulaban como pequeñas bases de datos de cosas geniales con imágenes.
      Se sentía como multimedia temprana, antes del boom multimedia de los 90 :-)
  • No entiendo por qué Apple o Microsoft no se esfuerzan más en crear herramientas de este tipo para desarrolladores casuales dentro del sistema operativo.
    VB y Python están bien, pero a veces hace falta una herramienta realmente pensada para crear aplicaciones pequeñas.

    • Apple sí tiene Swift Playgrounds.
      Y SwiftUI es relativamente fácil, en la medida de lo posible.
      Pero usar Xcode y configurar todo para la App Store todavía requiere una configuración bastante críptica y cierto entendimiento del IDE Xcode :-)
  • Hay muchísimo cariño por HyperCard
    No lo viví en carne propia, pero parece que permitió que mucha gente creara herramientas pequeñas y útiles. En cuanto a versatilidad se parece a una hoja de cálculo, pero con una sensación de uso distinta
    Me da curiosidad qué herramientas modernas les dan esa misma sensación a quienes vivieron esa época
    Yo soy de una generación un poco más joven, así que me da nostalgia herramientas como Delphi/VB o Macromedia Flash. No eran perfectas, pero estimulaban la creatividad
    Las herramientas actuales son mucho mejores, pero siento que en el proceso se perdió algo

    • Flash se acercaba bastante, pero para el usuario promedio era demasiado complejo y caro. HyperCard al principio era gratis, pero no venía incluido en la línea de Macs Performa
      HTML tomó muchas de las cosas que ofrecía HyperCard, pero las herramientas de autoría web nunca llegaron a ser igual de fáciles, y tampoco ofrecían una función de HyperCard: que la apariencia y sensación de la UI fueran consistentes. Eso podía ser una ventaja o una desventaja, pero a algunos usuarios les gustaba poder crear un flipbook agregando solo dos botones de anterior/siguiente a una página
      También hubo gente que inició negocios vendiendo materiales educativos empaquetados como stacks de HyperCard
      El lenguaje de programación HyperTalk no era grandioso; era el tipo de lenguaje que les gustaba a los hippies, pero el usuario promedio se perdía tanto como cuando veía C o Pascal
      Siempre tuve la sensación de que Apple intentaba controlar demasiado lo que se podía hacer con eso. Era lo opuesto a lo que espero de un lenguaje de programación y las herramientas a su alrededor
      Si quieres saber cómo se sentía, intenta programar algo en AppleScript
    • Yo también soy de otra generación, y me da curiosidad saber qué tenía de especial HyperCard
      Recuerdo VB y las herramientas de Macromedia, y siento que las herramientas de hoy son más difíciles de usar
    • Flash era una herramienta excelente para crear algo rápido y distribuirlo a una audiencia amplia; al ser basado en navegador y multiplataforma, en muchos aspectos cumplió esa promesa incluso mejor que HyperCard en su época
      Pero lo lamentable es que creó una gran brecha entre quienes producían Flash y quienes consumían Flash. Un tinkerer motivado podía descompilar un .swf y modificarlo, pero eso estaba lejos del modelo de HyperCard, que daba herramientas de edición a todos los usuarios y convertía cada stack en una colección de piezas reutilizables
      Decker puede exportar decks independientes “bloqueados” que ocultan el editor, pero reactivarlo es algo trivial. He visto casos diseñados para “desbloquearse” solos al completar un juego, y me parece una recompensa bastante genial
    • También me da curiosidad por qué, si era tan querido, HyperCard desapareció y nada similar ocupó su lugar
    • Si nos enfocamos solo en el aspecto de “permitía crear muchas herramientas pequeñas y útiles”, lo más cercano que se me ocurre hoy es el motor de “juegos” Godot: https://godotengine.org
      En muchos sentidos no encaja exactamente con HyperCard, pero en tres áreas relacionadas es un candidato especialmente fuerte. La descarga inicial es pequeña (<100MB), los tiempos de carga/ejecución son cortos y admite un flujo de desarrollo iterativo y hackeable que encaja bien con las primeras etapas de exploración para crear “algo que funcione”. GDScript es muy adecuado para esto, y con añadidos recientes como el tipado gradual también va ganando solidez con el tiempo
      La forma de distribución/instalación de Godot también es muy potente. En este aspecto creo que está a años luz de cualquier otro ecosistema[0]. Descargas las plantillas de exportación para las plataformas que quieras soportar, es decir, ejecutables binarios genéricos por plataforma, y luego empaquetas y exportas el código y los recursos de cada proyecto[1]
      Donde Godot actualmente queda sorprendentemente más corto frente a HyperCard o Visual Basic “clásico” es en la creación de UI mediante arrastrar y soltar. Godot tiene un sistema de UI bastante potente, pero a veces es opaco, y la experiencia actual para crear UI te obliga a estar muy consciente del árbol de nodos de la escena, en vez de simplemente arrastrar widgets desde una barra de herramientas a una ventana
      Parece que esta experiencia de usuario podría mejorarse con relativa facilidad mediante un Editor Plugin, y quizá algún día haga un prototipo para meterme en ese agujero de conejo :)
      No es una solución perfecta, pero hoy en día definitivamente es mi opción predeterminada para crear utilidades basadas en GUI. Algunas de ellas incluso las he terminado lo suficiente como para “lanzarlas” de verdad :D
      [0] En este punto, Python en particular se cae estrepitosamente
      [1] También permite exportar a WASM para la web, así que se puede hacer una distribución de dos vías: que la gente pruebe primero la utilidad en una versión web y, si le resulta lo bastante útil, descargue también el ejecutable local
  • Decker me encanta de verdad, y es muy divertido
    Si estás buscando scripting con HyperTalk, quizá también disfrutes Wyldcard
    https://github.com/defano/wyldcard

  • Empecé a investigar Decker después de que lo mencionaran la semana pasada en una discusión sobre alternativas a HyperCard
    Me intriga mucho el empaquetado de decks. Me gusta el enfoque de Redbean: incluir Lua, SQLite, etc., todo en un solo archivo, poder abrirlo con una herramienta zip, meter el HTML y el código Lua, cambiarle el nombre y que ya quede listo para distribuir
    Me pregunto si Decker está considerando algo de ese estilo para facilitar la distribución