Even if you have been working in the database industry for a long time, there is a good chance that you have never heard of notebooks. Meanwhile, your colleagues down the hall in the data science or business intelligence department may have been enjoying the powerful utility of notebooks their entire multi-decade career.
The History of Computing Notebooks
Back in the 1980s, a Stanford University computer scientist and professor named Donald Knuth introduced the concept of “literate programming,” in which a computer program's logic is explained in a natural language such as English. The “literate” program would be further enriched with images, graphs, traditional source code, related macros, and scripts almost as if the programmer were writing an essay, and using all of these components together could still be compiled as usual. The most notable products to arise from this concept were notebooks, such as Azure Notebooks, Jupyter Notebooks, Apache Zeppelin, and the Apache Spark Notebook.
Notebooks have increased in popularity during the last few decades and have grown to support a variety of languages, such as MATLAB, Python, Julia, Scala, and others. Just reading that list of programming languages lets you immediately know that notebooks are especially popular in the data science and analytics community, but are growing even beyond that realm. They are so handy for packaging and executing code, and sharing data visualization and related information that it is not uncommon to see them used entirely as a substitute for tools such as PowerPoint, especially at technical conferences and events.
Microsoft Capitalizes on Popular Tech Such as Notebooks
Under Microsoft CEO Satya Nadella, every team I work with at Microsoft has cultivated a very strong “make the customer happy” philosophy. One example of this philosophy in action is how the Microsoft Data and AI teams have embraced notebooks and are extending them for the public as well as making heavy use of them for their own internal projects.
Once you see Azure Notebooks (currently in public preview), it is hard not to love them. You can use Azure Notebooks online as a free hosted service for Jupyter Notebooks from inside of Azure Data Studio. (The name Jupyter refers to its first three supported languages of Julia, Python, and R.) As a data specialist, I’m thrilled that I can get started immediately combining code, markdown, images, videos, graphs, GIFs, and even data-driven charts and visualizations. And since it is browser-based, you can create, share, and run notebooks from any Windows, Mac, or Linux system. Imagine scenarios such as the following:
- Delivering a programming training session on Python and R to a live classroom without requiring the students to install any software.
- Pulling up a notebook as a quick code scratchpad while you watch YouTube tutorials and Pluralsight courses, or read a book.
- Working on a data science project with a full Anaconda environment without having to install anything, then sharing it with your co-workers instantly with no need to email files or use a source-control repository.
Requirements, Components, and Pricing
Azure Notebooks are free, but are limited to 4GB of memory and 1GB of data storage. The ceilings are there to deter abuse, but you can actually go above those limits by answering a Captcha. Active sessions are not guaranteed beyond an 8-hour usage threshold and may occasionally experience shutdowns for system stability. Azure Notebooks currently support Python 2, Python 3, R, and F# kernels. For some reason, SQL is not listed in the online documentation, but I have installed and used both a Spark and SQL kernel. Don’t worry, they are there. Additionally, more packages are included such as the NumPy, pandas, scikit-learn, Matplotlib, and Bokeh libraries, along with visualization extensions such as RISE (a nifty slide show extension), JupyterLab, Altair, bqplot, and ipywidgets. It is extremely easy to expand Azure Notebooks with other extensions and then to share them as you wish.
How to Get Started with Azure Notebooks
The Azure Notebook Documentation website (https://docs.microsoft.com/en-us/azure/notebook) has loads of great information, with 5-Minute Quickstarts tutorials for creating and sharing notebooks, cloning and migrating notebooks, and oodles of sample notebooks. You can peruse and open a large number of sample notebooks at https://notebooks.azure.com/Microsoft/projects/samples. (Note that viewing a notebook is possible without even opening an Azure account.) In addition, you can get started with a preview at https://notebooks.azure.com/#. Finally, my friend and fellow Microsoft MVP, Grant Fritchey, has a quick tips-and-tricks session at https://youtu.be/OUPj0ohHEQQ. Check it out!