Live data from Hacker News

Why We're Building Observable

observablehq.com

51–60 of 86 posts

Re: Why We're Building Observable

#51
post #2

I really like Observable a lot, and have made a couple of brief, messy visualisations with it (messy in terms of code at least). I hope at some point they can offer some sort of offline support. The focus on ease of sharing is great, and the volume and breadth of content has really helped me to get more proficient with d3. The inability to open and edit notebooks offline/locally is a real inconvenience, however. I ha…

Indeed having the environment offline would be great. But this doesn't seem to fit their model for profit.

Re: Why We're Building Observable

#52

Extremely dumb question: how is this different from tableau and/or jupyter notebooks? I don't use visualizations and don't understand this space :)

Tableau offers templated visualizations. You generally do not need to program to create stuff. Observable is a notebook environment where you can write JS (mostly) to create and tweak highly customized visualizations. It's similar to Jupyter on a very high level (they all have reactive cells for example), but for JS and visualizations.

Re: Why We're Building Observable

#53

Skimming the docs... the tutorials are really nicely done but it's hard to find a clear description of what exactly is possible. Can you install libraries (from npm?) Can you build and share custom components, not just notebooks? Can you connect to a web server?

You can install npm libraries. You can connect to DBMS servers (not sure about arbitrary web servers). I believe they offer iframes to facilitate embedding but not frontend components.

Interactive vis is not very well integrated with the frontend ecosystem IMHO. Integrating a very interactive D3 vis with React, for example, can be painful.

Re: Why We're Building Observable

#54
post #45

Observable is fantastic, but as others have hinted at, IMO, I think it's trying to lock you in. I want the raw JS, in one click, so that I can build out a visualization locally, just hacking on HTML/JS. Steps to doing this are highly obfuscated when they could be a single button. Overall you can see its evolution from prior sites- someone spent a huge amount of time demonstrating cool visualizations, then tried to ma…

I kind of thought that too, but somewhere around the start of the pandemic, I was able to quickly develop an interactive dataviz on Observable (https://observablehq.com/@mistidoi/coronavirus-tests-positiv...) and drop it into a blog post trivially (https://relevant.healthcare/blog/2020-04-02-covid-state-visu...). Beyond the work on the viz itself, it took something like 15 minutes to get it into the blog post, and it's more or less seamless.

Confession though, I might have been powered by Mike Bostock fanboy juice. d3 is part of what made me fall in love with programming.

Re: Why We're Building Observable

#55
post #45

Observable is fantastic, but as others have hinted at, IMO, I think it's trying to lock you in. I want the raw JS, in one click, so that I can build out a visualization locally, just hacking on HTML/JS. Steps to doing this are highly obfuscated when they could be a single button. Overall you can see its evolution from prior sites- someone spent a huge amount of time demonstrating cool visualizations, then tried to ma…

I agree that Observable is fantastic, but also wish it was more open.

I'm building something similar called Starboard Notebook[0] that has a different set of trade-offs. It ends up being something in between Jupyter and Observable:

* One of the goals is to build Jupyter how it would have been if it was designed for the web (only).

* It's open source [1], plays nice with git (the format is plaintext), and supports local viewing & editing [2]

* Because of that you can host it yourself, put it on your blog / github pages, anywhere.

* There is little magic, it actually is just Javascript at it's base. This means you can use standard browser APIs and HTML, and when you are ready to "graduate" the notebook implementation that should be straightforward. In my eyes notebooks are only for the first 20% of the work that does 80% of the job for small applications/experimentation (which is often where it ends anyway).

* You can "build the ship as you sail": you can load new cell types dynamically at runtime. This is also how Python is supported (through WebAssembly).

* You can have interop with Python and Javascript which is really powerful. Example: Create a drag an drop form using HTML+JS, then process the dropped CSV file using Pandas and visualize using matplotlib.

[0]: https://starboard.gg [1]: https://github.com/gzuidhof/starboard-notebook [2]: https://github.com/gzuidhof/starboard-cli

Re: Why We're Building Observable

#56

I really like Observable and have used it quite a bit, but I absolutely hate that it is the default documentation form for D3, because D3 is a javascript library, and Observable is not javascript. At the very least it would be nice if there was a way to take an example and press a button to get the same thing in javascript.

Yeah I pulled out d3 for a project recently, having used it before–quite a bit at one point–but not for several years. I just wanted to browse some basic examples for the current version, to refresh my memory and familiarize myself with the current API, but the reliance on Observable drove me up the wall. Even a lot of the old examples from bl.ocks.org just redirect to Observable now.

The presentation is one more layer to understand between "here's the code" and "here's what the code produces". I do generally like the notebook format for exploratory data work, but it's not at all ideal as part of a workflow for writing code that will fit into a larger application, in my experience.

Re: Why We're Building Observable

#57

Extremely dumb question: how is this different from tableau and/or jupyter notebooks? I don't use visualizations and don't understand this space :)

Tableau offers templated visualizations. You generally do not need to program to create stuff. Observable is a notebook environment where you can write JS (mostly) to create and tweak highly customized visualizations. It's similar to Jupyter on a very high level (they all have reactive cells for example), but for JS and visualizations.

That makes sense! Thank you!

Some more questions: 1) Assuming the bulk of folks use jupyter notebooks for analysis, why not integrate with jupyter or use d3.js in jupyter directly? I assume there would be a learning curve for data manipulation on js where analysts/scientists would prefer python 2) Assuming that this isn't even meant for the jupyter audience, who is it meant for within a company?

Re: Why We're Building Observable

#58
post #40
post #7

My gripe with Observable is I can't fit into a Python-based workflow. I.e., a machine learning or gpu-training worfklow. It is a nice place to create explainers, though. I almost think of it as being like a Medium alternative.

Can you run arbitrary libraries like Tensorflow.js?

You can run just about anything that can be run in the browser (all code in an Observable notebook executes in your browser). Though depending on the flavour of packaging/module system a given package uses, you may need to figure out a correct magic incantation to import it.

Re: Why We're Building Observable

#59
post #48
post #44

Earlier quoted context omitted.

Check the link provided. It's just running inside of vscode, with no communication to their servers whatsoever.

I did, it's not the same literate programming environment like I said. Are we misunderstanding each other?

"You can't self-host with Observable."

You can self host observble, but you can't self host observablehq.

Literate programming just means the combination of code and documentation/visualisation.

Observablehq provides a nice inline code editor, but that's incidental to what observable is.

Git can also be used with a GUI but that GUI is not essential to what git is.

Simularly observable notebooks can just as well be created without the GUI, in a quite convenient way.

Re: Why We're Building Observable

#60
post #47
post #43

Earlier quoted context omitted.

Hosting the notebook and hosting the development environment are two different things. It's like saying git (observable) can't be self hosted because github (observablehq) is not open source.

Just to jump in and say my comment that you said wasn't true was "... improvement over an existing literate programming environment.".

I don't argue that you might find a different notebook environment more suitable. That's totally up to taste, preferences, and silly do argue about.

But observable (the reactive notebook technology) can do everything a jupyter notebook can do, you just need to write a bit of communication code to hook up a websocket. (For me sandboxing the ui is a feature not a bug.)

And you can also self host it on a machine of your choice, and edit it locally.

We do that internally for all our dashboards.

Post reply on HN