I've used it for fun to analyze some data of some community in real time without having to host anything on my side.
Doing data analysis in javascript feels a bit weird at first, but it allows you to write a bit more functional code than python which I ended up liking.
I dislike the plotting api but the pro of being automatically updated without me needing to do/host anything is cool.
I would have liked to, but I found D3 to be an unintelligible mess and the reverse evaluation of observable notebooks to be counterintuitive, given I do litterally anything else from top to bottom. I like notebooks and I wish there was a proper JS alternative to Jupyter, but this isn't it for me.
The notebooks aren't evaluated in reverse, but rather in the order they need to be to get the final results. Observable builds a DAG, similar to Marimo. You can put cells in any order you'd like.
I think that in all the notebook solutions I've seen that allow this, a culture emerges where the "final result" is put at the top so that you can find it easily and interact with it as a user. The actual development process involves writing stuff top down and then re-ordering it for use.
You can just write your observable notebook from top to bottom if you want. The reactive cells just means that you don't have to, and it will still work.
My team at <random faang company> uses Observable Framework for building dashboards. (I don't know who'd be the core customer of Observable Notebooks enough to pay, tbh).
I really like using Observable. Coming from years of d3 and not having a lot of R or Python to do, Observable feels great and things look beautiful. Lots of examples and it is great to see what others are making. Also love that I can use SQL on data in the notebook. The Plot functions can make quick work of various charts. I am looking forward to the static output future, and to see what they mean by more vanilla js in the app.
Not saying it is better or worse than Jupyter etc. Just that it has been exciting to think I can make viz that would not look out of place in major pubs, etc.
I use it regularly to make articles, reports, and especially maps for local decision makers. You'd be surprised, terrified to learn how little the elected officials know about their cities.
Thanks for pointing this out! The attention to exploration is why I enjoy using Observable so I am glad that this will be paired with the framework features to get us Notebooks 2.0
It's possible to make (via polyglot JS/HTML files[1]) apps that offer both a command-line interface that can be invoked with NodeJS (or other JS-ish runtime) or can be opened in the browser (via double-click, the browser's File Open dialog, or by just typing the file path into the location bar) if the right version of NodeJS isn't available (or for people who just don't want to give carte blanche to run outside the safety of the browser sandbox to programs downloaded from the internet, given the poor track record of NPM-based program creators/maintainers to stay on top of their dependencies).
A ton more programs, especially one-shot programs that operate on a single batch input (e.g. a directory of files) and then generate some output—like a ZIP copy of the files for your static site—should offer this but unfortunately don't. At best they'll put out an Electron app for cross-platform compatibility, but it doesn't sidestep the problem of granting overbroad capabilities to NPM modules (or the massive memory footprint). Then, in this case, there's Observable Desktop, which as a Mac-only app, falls short even of that mark.
Isn't the idea to write notes? I think constantly running a script to generate a static webpage would drive me insane. Isn't the whole point of a computational notebook to have some kind of integrated GUI?
have you taken a look at what the CLI is for? like you mentioned, it's pretty much just a build step! but there are some runtime things basked that are interesting [0]. i just have a watcher listening to file changes to trigger a rebuild. i have no need for real-time queries so just having the current state at build works for my purposes.
if you must know, the product i work on is primarily a data lake. we have our own query language -> i have a fork of the CLI w added support for parsing custom cells. i don't know of any alternatives that give me a notebook so easily!
> running a script to generate a static webpage would drive me insane
possibly web-brained take but i don't mind it much. builds are instant for me, network latency is the only thing i find myself waiting around on.
> Isn't the whole point of a computational notebook to have some kind of integrated GUI
well yea, pretty sure the entire point of the desktop app is to show what you can build atop the new api! this preview is meant to expand the capability of observable within your own custom web app. the original framework was too close to some of the frustrations you mentioned, so they're trying to make it more amorphous :)
Is anyone using Observable for something?
In theory sounds good, I like the demos, but never actually saw anyone actually using it.
We use Marimo notebooks as a great improvement over Jupyter.
I've used it for fun to analyze some data of some community in real time without having to host anything on my side.
Doing data analysis in javascript feels a bit weird at first, but it allows you to write a bit more functional code than python which I ended up liking.
I dislike the plotting api but the pro of being automatically updated without me needing to do/host anything is cool.
I would have liked to, but I found D3 to be an unintelligible mess and the reverse evaluation of observable notebooks to be counterintuitive, given I do litterally anything else from top to bottom. I like notebooks and I wish there was a proper JS alternative to Jupyter, but this isn't it for me.
The notebooks aren't evaluated in reverse, but rather in the order they need to be to get the final results. Observable builds a DAG, similar to Marimo. You can put cells in any order you'd like.
I think that in all the notebook solutions I've seen that allow this, a culture emerges where the "final result" is put at the top so that you can find it easily and interact with it as a user. The actual development process involves writing stuff top down and then re-ordering it for use.
You can just write your observable notebook from top to bottom if you want. The reactive cells just means that you don't have to, and it will still work.
My team at <random faang company> uses Observable Framework for building dashboards. (I don't know who'd be the core customer of Observable Notebooks enough to pay, tbh).
I really like using Observable. Coming from years of d3 and not having a lot of R or Python to do, Observable feels great and things look beautiful. Lots of examples and it is great to see what others are making. Also love that I can use SQL on data in the notebook. The Plot functions can make quick work of various charts. I am looking forward to the static output future, and to see what they mean by more vanilla js in the app.
Not saying it is better or worse than Jupyter etc. Just that it has been exciting to think I can make viz that would not look out of place in major pubs, etc.
I use it regularly to make articles, reports, and especially maps for local decision makers. You'd be surprised, terrified to learn how little the elected officials know about their cities.
I never quite understood what their value proposition was for their lock-in.
How does this fit with Framework? Is Framework still part of the plans?
Based on mb's response [0], it seems existing Framework features are being refitted to the new notebook format.
[0]: https://github.com/observablehq/framework/discussions/2022
Thanks for pointing this out! The attention to exploration is why I enjoy using Observable so I am glad that this will be paired with the framework features to get us Notebooks 2.0
This website seems to be broken. The page is full grey, until we scroll down to half way down the page.
IDK why people keep making apps that are 99% web stack, but only run on mac... Maybe it's a good thing I can't waste my time on your tech.
what? this runs on all platforms
It's possible to make (via polyglot JS/HTML files[1]) apps that offer both a command-line interface that can be invoked with NodeJS (or other JS-ish runtime) or can be opened in the browser (via double-click, the browser's File Open dialog, or by just typing the file path into the location bar) if the right version of NodeJS isn't available (or for people who just don't want to give carte blanche to run outside the safety of the browser sandbox to programs downloaded from the internet, given the poor track record of NPM-based program creators/maintainers to stay on top of their dependencies).
A ton more programs, especially one-shot programs that operate on a single batch input (e.g. a directory of files) and then generate some output—like a ZIP copy of the files for your static site—should offer this but unfortunately don't. At best they'll put out an Electron app for cross-platform compatibility, but it doesn't sidestep the problem of granting overbroad capabilities to NPM modules (or the massive memory footprint). Then, in this case, there's Observable Desktop, which as a Mac-only app, falls short even of that mark.
1. <https://news.ycombinator.com/item?id=44229684>
i believe they're referring to the observable desktop[0] macos app, a gui client for notebook kit[1]. the cli works great, fwiw!
[0]: https://observablehq.com/notebook-kit/kit) [1]: https://observablehq.com/notebook-kit/desktop
The CLI works great for... what?
Isn't the idea to write notes? I think constantly running a script to generate a static webpage would drive me insane. Isn't the whole point of a computational notebook to have some kind of integrated GUI?
have you taken a look at what the CLI is for? like you mentioned, it's pretty much just a build step! but there are some runtime things basked that are interesting [0]. i just have a watcher listening to file changes to trigger a rebuild. i have no need for real-time queries so just having the current state at build works for my purposes.
if you must know, the product i work on is primarily a data lake. we have our own query language -> i have a fork of the CLI w added support for parsing custom cells. i don't know of any alternatives that give me a notebook so easily!
> running a script to generate a static webpage would drive me insane
possibly web-brained take but i don't mind it much. builds are instant for me, network latency is the only thing i find myself waiting around on.
> Isn't the whole point of a computational notebook to have some kind of integrated GUI
well yea, pretty sure the entire point of the desktop app is to show what you can build atop the new api! this preview is meant to expand the capability of observable within your own custom web app. the original framework was too close to some of the frustrations you mentioned, so they're trying to make it more amorphous :)
[0] https://github.com/observablehq/notebook-kit/tree/main/src/r...