Libo Li

View Original

Observable Notebooks are the future of collaborative code

It has never been a better time to learn to or code in than 2019. In true unleashed fashion, observable notebooks have arrived. Detailed manuals and guides have just been released. After using it for a while, I cannot stop raving about it to everyone who will lend a ear. So in true millennial fashion, here's a blog post about it.

Observable notebooks are at first sight very similar to jupyter notebooks. However, the javascript based core and web forward principles make observable much friendlier to the new coder, and makes it incredibly easy to share and build off of the work of others. If you have access to the internet, you can use observable notebooks with one click. Without having to figure out pyenv, conda, pip, and all assortments of setup requirements just to get a jupyter notebook running, observable puts you in front of interactive code immediately.

This paradigm presents an entire shift in accessibility to coding with the web. No setup not only means it takes a lot less technical know how to get started, but it additionally makes a powerful IDE that can publish interactive work available to mobile devices. This, more than anything, makes observable available to people without the hardware privilege to practice and learn data science techniques.

Accessibility is an area that coding and data science tools are generally not very good at. In an environment where data literacy is increasingly a requirement rather than a nice to have, tools like observable make learning and training more intuitive. Data and digital literacy as a baseline skill-set dramatically improves a team's ability to accelerate process, as well as an additional benefit of passive learning from understanding how to read the work of others.

Observable notebooks take collaboration like this to an entirely new level. New, non-technical, users don't need to setup git, github, and understand both coding and environment setup to get the benefits of version control, forking, and diffing changes. The interactivity allowed by using javascript gives us the ability to produce usable test products that anyone can interact with. Easy forking and merging means that any proposed edits can just happen and be tested with minimal risk.

On top of many other killer features, the ability to import code from not only any content delivery network, but also import code from other notebooks allows for incredibly complex prototyping and learning. Building notebooks along the pattern of micro-services is not only possible, but unbelievably easy. As an added benefit, importing notebooks generates a direct link. This allows the end user of a notebook sent to them drill back into the component logic that produces the result.

If you couldn't tell already, I've very excited about Observable notebooks and the collaborative future it brings us. There are a ton of awe inspiring tutorial and example notebooks at observablehq.com. It takes about three clicks to get coding so there's no excuse to try it out. Happy experimenting!