Observable 2.0,数据应用程序的静态站点生成器
Observable 2.0, a static site generator for data apps

原始链接: https://observablehq.com/blog/observable-2-0

引入 Observable 框架 - 解决数据应用程序开发“最后一英里”问题的革命性工具 Observable 是一个提供计算笔记本来探索和呈现数据的平台,最近推出了名为 Observable 2.0 的新版本,其中添加了一个非凡的功能:Observable 框架。 借助这一创新功能,设计人员和开发人员可以轻松构建令人惊叹的数据应用程序、仪表板和报告。 借助 Observable Framework,您可以获得一切 — 交互式图表、响应式网格、键盘、多种语言,包括从用于前端的 JavaScript 到用于后端处理的 SQL、Python、R、Rust 或 GO 的任何编程语言。 数据。 该软件通过其令人印象深刻的功能提供了非凡的体验,例如闪电般的页面加载、交互式地图、动态表格、实时协作机会和黑暗模式。 该框架的一个令人着迷的组件是其出色的加载器,可显着减少数据创建过程中的数据准备时间,通过交互式分析、仪表板和报告以最佳效率提供无缝洞察。 其适应性强的设计可以轻松地与现有系统兼容,并促进针对个人喜好和项目特殊性的个性化编码。 通过支持文件操作并使开发人员能够采用既定实践并利用编写单元测试或 linting 等标准技术,Observable Framework 可确保更快的生产流程,提供高质量的结果。 它还通过在安全服务器上托管项目来保证针对网络威胁的卓越保护。 最后,借助 Observable Framework,开发人员可以快速将创作发布到 Observables 专用网络上,以确保处理敏感或专有数据时的机密性,从而增强整体保护并保障客户隐私和数据安全。 立即加入我们热情的社区,提出问题、提供反馈并了解有关 Observable 框架的更多信息。 浏览我们的文档,链接在个人资料、Twitter 句柄、github 平台、YouTube 频道、时事通讯、发行说明、客户案例、博客和公司详细信息,以及定价计划、服务条款和联系信息中。 欲了解更多信息,请访问 www.observablehq.com。 © 2024 Observable, Inc. 隐私 | 服务条款。

社区对这一公告的反应似乎大多是积极的,人们对团队之间加强协作的潜力、提高计算速度、易于理解过程以及消除在教其他人使用观察方法时所经历的挫败感表示兴奋。 人们提出了有关访问控制以及现有 Observable 笔记本是否可以转换为新引入的格式的问题,并提出了进一步改进的建议。 一位人士提到了他们对简化数据准备方法的赞赏,并强调了能够以非专业人士易于理解的方式清晰呈现技术材料的重要性。 此外,还与其他流行工具(例如 Quarto 和 Streamlit)进行了比较。 总体而言,人们似乎对新的发展充满了真正的热情,并对所取得的重大进展表示认可。
相关文章

原文

Today we’re launching Observable 2.0 with a bold new vision: an open-source static site generator for building fast, beautiful data apps, dashboards, and reports.

Our mission is to help teams communicate more effectively with data. Effective presentation of data is critical for deep insight, nuanced understanding, and informed decisions. Observable notebooks are great for ephemeral, ad hoc data exploration. But notebooks aren’t well-suited for polished dashboards and apps.

Enter Observable Framework.

With Framework, you can build the best data apps your team has ever seen. Framework combines the power of JavaScript on the front-end for interactive graphics, with any language on the back-end for data preparation and analysis. SQL, Python, R, Rust, Go… you name it. It’s the polyglot programmer’s dream. Everything you need is at your fingertips: interactive charts and inputs, responsive grids, themes, dark mode, keyboard-friendly navigation, and more. And because it’s code, there’s no limit to customization!

Framework is free and open-source. Projects are just local files. Use your favorite editor, preview locally, check it all into git, write unit tests, add CI/CD, even work offline. You can host projects anywhere or deploy instantly to Observable to share them securely with your team.

Observable Framework solves the “last mile” problem of data apps: loading data. Conventional dashboards are slow because they run queries on view while the user waits; Framework’s data loaders run on build so that pages load instantly. And because data loaders run on your servers, you control privacy and security. If you’re ready to dive in, visit our Getting started tutorial, or open a terminal and run:

npm init @observablehq

If you’d like to hear more about why we built Framework, please read on.

Beyond notebooks 📓

This moment — Observable 2.0 — reflects lessons learned over many years.

We believe the lightweight, collaborative nature of computational notebooks makes them ideal for exploring data and answering ad hoc questions. We founded Observable in 2016, pioneering a reactive, web-first approach to notebooks and seeking to make data visualization easier, more practicable, and more social. We dreamed that notebooks might be the “one ring to rule them all” — powering not just notes, but apps, dashboards, and reports.

Yet no single interface can excel at every task. As cool as reactive notebooks are, a notebook can’t compete with a custom web app in terms of user experience. Notebooks are constrained by:

  • A single-column, narrow layout

  • Low visual information density

  • Always-visible editor chrome

These same limitations make notebooks great for tinkering and learning — the code is always at your fingertips, adjacent to the output — but not so great for presentation. To fill that latter role, we need better data apps.

A good data app embodies an empirical perspective; it fosters a shared understanding. Whereas notebooks tend to be for individuals, data apps are more often for a team. And whereas notebooks tend to be transient byproducts of point-in-time exploration, data apps often sustain value over time as people return to see how things change.

The differences between notebooks and data apps extend to development. A notebook editor desires speed: jotting down thoughts, running a query, sketching a chart. A data app developer prioritizes correctness, performance, and maintainability: making careful, deliberate changes that others depend on, favoring code review and testing before publishing.

We had three goals in mind when we set out to reimagine data app development:

  1. A better developer workflow — meeting the needs of developers

  2. A better user experience — the “proof is in the pudding”

  3. A better data architecture — solving the “last mile” problem

A better developer workflow 👩‍💻

Modern development is built on files. Files have myriad strengths, but the strongest is interoperability. When every tool uses files, it’s far easier to incorporate a new tool — and now Observable — into your workflow.

This isn’t just about using your preferred text editor. Now you can bring your own source control and code review system, too. You can write unit tests and run linters. You can automate builds with continuous integration or deployment. You can work offline. You can self-host. You can generate or edit content programmatically, say to format code or to find-and-replace across files.

As we break new ground with Observable Framework, we’re further improving interoperability by adopting vanilla JavaScript syntax. And we’re deprecating require in favor of modern ES import. These changes make Observable easier to learn, and to share code with other applications. (We’ll port these improvements back to Observable notebooks in the future.)

A better user experience 😍

A toolmaker can’t care only about the developer experience — what does the developer experience matter if the resulting app is not demonstrably better? The merit of a creative tool should be judged by the quality of its creations, not its process. Or: “the proof of the pudding is in the eating.”

We believe that well-designed tools help developers build more efficiently by focusing their efforts on high-value work. We favor opinionated tools, with defaults and conveniences that foster a good user experience. We nudge you into the pit of success.

Framework’s lightweight Markdown syntax — with light and dark mode, thoughtful colors, responsive grids, and built-in navigation — gives you beautiful pages from the start. It’s highly customizable if you need it, but it’s quick to get started with batteries included.

Most importantly, Framework’s data architecture practically forces your app to be fast because data is precomputed. Performance is critical for dashboards: users don’t like to wait, and dashboards only create value if users look at them. Slow dashboards waste time. (And you certainly don’t want your database and dashboard falling over under load!)

A better data architecture

Every data visualization requires data. Obviously. But less obviously, each data visualization requires highly-specific data prepared with that visualization in mind. In fact, most of the work of visualization isn’t choosing visual encodings or laying out axes or visualizing per se — it’s preparing data. As I wrote previously,

working with data should be 80% of the work of visualization. Visualization is the end result of analysis — the visible manifestation of data, to be seen, shared, and appreciated by experts and non-experts alike — and as such it sometimes gets too much credit. To produce a visualization, one must first find data, clean it, transform, join, model, etc. Working with data is sometimes needlessly denigrated as “janitorial” when it represents the critical step of understanding the data as it is, warts and all.

Given how much work goes into preparing data, it follows that developers want

  • to use any language (say Python or R or SQL),

  • to use any library (say NumPy or dplyr),

  • to use any data source (database, data warehouse, API, files, etc.), and

  • to crunch data ahead of time (offline)

while still leveraging JavaScript in the browser for interactive graphics.

Framework’s data loaders solve this “last mile” problem by computing static data snapshots at build time. These snapshots can be highly-optimized (and aggregated and anonymized), minimizing the data you send to the client. And since a data loader is just a fancy way of generating a file on-demand (with clever caching and routing), loaders can be written in any language and use any library. This flexibility is not unlike CGI from 30 years ago, and Unix pipes. And since data loaders run on your servers, viewers don’t need direct access to the underlying data sources, and your dashboards are more secure and robust.

The speed of modern data warehouses is astonishing. But far too often something is missing for new analysis — some untapped data source, some not-yet-materialized view for a query to run at interactive speeds. Framework’s data loaders let you bypass these hurdles and produce a fast dashboard without “heavy lifting” in your data warehouse. And once your analysis demonstrates value, you can shift work to your data warehouse and simplify your data loaders. Framework lets you build faster and quickly validate your ideas.

We believe Framework will change how you think about data, and effect a better user experience. And by securely hosting apps alongside notebooks, Observable now offers an end-to-end solution for data analysis and presentation.

Thank you 🙏

We wouldn’t be here without the support, feedback, and encouragement from you — our community. Thank you for using Observable notebooks, Observable Plot, and D3. We’re thrilled to share Observable Framework with you now, and can’t wait to hear what you think.

To learn more about Framework, read the docs.

To share your questions or feedback, please visit our forum.

联系我们 contact @ memedata.com