Version incompatibilities and operating system incompatibilities make your life painful it can literally take days just to install the software needed to run a complex project. One of the biggest problems facing developers in any programming language is installing the software and libraries you need to run someone else’s code.
I’ve said that sharing becomes even easier when Jupyter is combined with Docker. O’Reilly has Orioles (cloud-based notebooks with video tracks added) demonstrating Scala and Go. The Toree kernel is especially useful: it supports the Scala programming language and the Spark distributed computing platform (plus Python and R), simplifying the task of building large, data-intensive distributed applications. In addition to Julia, Python, and R, there are Jupyter kernels for JavaScript, Java, Scala, Go, C#, Ruby, Kotlin, and Haskell, and more than 50 other languages. Language support comes by way of modular kernels, and there are kernels in existence or under way for many programming languages. The name itself comes from three languages: Ju(lia) + Py(thon) + (e)R. While Jupyter’s roots are in Python (it evolved from IPython Notebooks), it is now multi-lingual. They can experiment with it and modify it, all within the context of a private instance.
GitHub and GitLab (a host-it-yourself git server) automatically convert notebooks into static HTML for access over the web, and platforms like Binder allow others to run your code in the cloud.
You can even push Jupyter Notebooks into the cloud. You can run a multi-user Jupyter server, JupyterHub, behind your corporate firewall. You can run a Jupyter server on your laptop, largely inaccessible to anyone else. You can go further by using container technology, such as Docker, to package your notebook, a notebook server, any libraries you need, your data, and a stripped-down operating system, into a single downloadable object.
It’s a lot easier to maintain an up-to-date archive on GitHub than to hand distribute your code, data, supporting files, and results. GitHub users can download (clone) their own copy of the notebook and any supporting files so they can expand on your work: they can inspect the results, modify the code, and see what happens. You can put the notebook in a GitHub repository and let others read it there GitHub automatically renders the notebook to a static web page. You can save it and send it as an attachment, so someone else can open the notebook with Jupyter. Jupyter is a tool for exploring, sharing, and discussing.Ī notebook is easily shareable. Data analysis means little if you can’t explore and experiment with someone else’s results. As IBM puts it, Jupyter lets you build a “computational narrative that distills data into insights.” Data means nothing if you can’t turn it into insight, if you can’t explore it, share it, and discuss it. Jupyter lets you build a “lab notebook” that shows your work: the code, the data, the results, along with your explanation and reasoning. This is particularly true for data analysis, but it’s true for almost any application. It’s part of a thought process, an argument, even an experiment. Your page contains your thoughts, your code, and the results of running the code.Ĭode is never just code. That server can be anywhere: on your laptop, behind your firewall, or on the public internet. The code runs on a server, and the results are turned into HTML and incorporated into the page you’re writing. It’s built for writing and sharing code and text, within the context of a web page. That’s what Jupyter is, in a nutshell: it’s a tool for collaborating.
Get a free trial today and find answers on the fly, or master something new and useful. Join the O'Reilly online learning platform.