3 puntos por GN⁺ 2024-03-04 | 1 comentarios | Compartir por WhatsApp

Nuevas ideas de Observable Framework

  • Observable Framework es un generador de sitios estáticos que compila una mezcla de Markdown y JavaScript en páginas interactivas de carga rápida.
  • Ofrece un servidor con recarga en caliente que permite editar y guardar archivos en tiempo real para ver los cambios de inmediato en el navegador.
  • Una vez terminado el trabajo, puede convertirlo en archivos estáticos para desplegarlos en un servidor o publicarlos directamente en la plataforma para compartir de Observable.

JavaScript dentro de Markdown

  • Los bloques de código con la etiqueta js dentro de Markdown se ejecutan como JavaScript en el navegador del usuario.
  • Una variable especial llamada now proporciona la hora actual en milisegundos desde la época Unix y se actualiza continuamente.
  • Observable Framework integra Markdown y JavaScript en un solo documento de texto para crear documentos interactivos.

Todo sigue siendo reactivo

  • Observable Framework conserva la reactividad de los cuadernos de Observable y se actualiza automáticamente cuando cambian otras celdas de las que depende.
  • Esto es especialmente útil al trabajar con entradas de formularios y facilita agregar interactividad en tiempo real a los documentos.

Solo incluye el código que se usa

  • Observable Framework implementa carga diferida en modo de desarrollo para cargar únicamente el código que se utiliza.
  • Al compilar y desplegar la aplicación, solo carga automáticamente desde el CDN de jsdelivr el código de las bibliotecas que están referenciadas.

Caché de datos en tiempo de compilación

  • El Framework construye datos de paneles en tiempo de compilación mediante un mecanismo de cargadores de datos y los empaqueta como archivos estáticos.
  • Los cargadores de datos son scripts que pueden escribirse en cualquier lenguaje de programación, se ejecutan en tiempo de compilación y guardan su salida en archivos.

Comparación con los cuadernos de Observable

  • Observable Framework reutiliza ideas y código de los cuadernos de Observable, pero está compuesto por un único archivo de texto y es completamente de código abierto.
  • Usa JavaScript estándar y puede registrarse en Git con un formato de archivo más simple.

Cambio de estrategia

  • Observable Framework representa un cambio estratégico de la empresa Observable, más inclinada ahora hacia el espacio de herramientas para desarrolladores.
  • Además del respeto por la tecnología de los cuadernos de Observable, Observable Framework resuelve problemas que limitaban su uso debido a la naturaleza propietaria de la plataforma y a las restricciones de las cuentas gratuitas.

Opinión de GN⁺

  • Observable Framework es una nueva herramienta para visualización de datos y construcción de paneles, con potencial para ofrecer a los desarrolladores una mejor colaboración y mayor eficiencia.
  • La plataforma facilita la creación de documentos interactivos y paneles que apoyan la toma de decisiones basada en datos, por lo que puede resultar útil tanto para científicos de datos como para desarrolladores.
  • Sin embargo, el éxito de Observable Framework dependerá en gran medida de su adopción por parte de la comunidad de desarrolladores y del nivel de integración con las herramientas existentes.
  • Otros proyectos con funciones similares incluyen Jupyter Notebook y R Shiny; compararlo con ellos puede ayudar a entender mejor las fortalezas y debilidades de Observable Framework.
  • Al adoptar Observable Framework, conviene considerar factores como la compatibilidad con los pipelines de datos existentes, la optimización del rendimiento y el soporte de la comunidad.

1 comentarios

 
GN⁺ 2024-03-04
Opiniones en Hacker News
  • Comparan Observable Framework con "Avengers: Endgame" dentro del universo cinematográfico de Mike Bostock.

    • Se describe como una combinación de d3, Observable, Observable Plot y HTL, con nuevas ideas añadidas.
  • Se menciona como problema al usar Observable Framework su función como recurso de ejemplos de d3.

    • Está diseñado para ejecutarse solo dentro de ese framework, así que no se puede copiar y pegar el código tal cual.
    • d3 en sí no es fácil de usar y tiene problemas de compatibilidad entre versiones, pero en el sitio se pueden encontrar gráficos sorprendentes.
  • Se menciona que Observable Framework puede publicarse fácilmente en GitHub Sites.

    • Se proporciona un enlace a una nota con los pasos de publicación y un ejemplo de GitHub Action.
  • Se comparte la experiencia de haber completado un primer proyecto usando notebooks de Observable.

    • Se invirtió bastante energía en aprender varias herramientas, como Observable Plot, Arquero, reaprender parte de JavaScript e integrarlo con un simulador basado en Rust.
    • Gracias al Markdown y la reactividad, el notebook se siente realmente utilizable.
    • Resuelve los problemas de control de versiones y la confusión basada en estados causados por los formatos personalizados de Jupyter y la falta de reactividad.
    • También hubo intentos de integrar Observable con Quarto, pero se sentía incompleto y fragmentado.
    • Fue una experiencia alegre y emocionante escribir y compartir notebooks, y seguirá siendo su herramienta de primera elección.
  • Se comparte una experiencia positiva con Observable Framework.

    • Se menciona que fue muy sencillo configurar gráficos interactivos y que el proceso de graficar datos fue muy simple.
    • Expresa el deseo de que el cargador de datos de Python pueda configurarse para usar virtualenvs.
  • Se plantea la pregunta de si debería hacerse la transición de los notebooks de Jupyter a Observable.

  • Se explica que si hay una pista de contenido js dentro de un bloque de código, este se ejecuta de inmediato en el navegador del usuario.

    • Para mostrar el código, se debe usar la pista js echo.
    • Se plantea el problema de tener que gestionar la ejecución al integrar el renderizador en una app existente.
  • Se menciona que Observable se integra bien con la REST API de ClickHouse y que es interesante el ejemplo de consultar la base de datos en tiempo real.

    • Como la app debe ser interactiva, espera que precargar y almacenar en caché los datos no sea la única opción.
  • Se configuraron devcontainers de Codespace con entornos de Node y Python ajustados automáticamente para poder probar y experimentar rápidamente con Framework en el navegador.

  • Se plantea la opinión de que Observable limita su base de usuarios al admitir solo JavaScript.

    • Aunque JavaScript es un lenguaje esencial para las pantallas interactivas en el navegador, se considera menos conveniente para ciencia y análisis de datos que Python o R.