visit
How Jupyter Notebooks played an important role in the incredible rise in popularity of Data Science and why they are its future.
Nowadays, many individuals and teams are flocking to the tools and techniques that enable them to leverage large amounts of data. What makes Jupyter Notebooks so appealing to data scientists?In this article I will dive into some of the underlying trends that have contributed to the success of Jupyter Notebooks and why I decided to build to leverage and further contribute to its success.Something that is less talked about is the connection between the many advances of machine learning and data science, and the underlying technologies that have been developed over the past decades. Specifically I'm talking about programming languages such as Python, operating systems like Linux, compiler infrastructure like LLVM, and version control systems such as Git. Just to name a few. It's important to realize that fundamental projects like these have enabled the vast growth and advances in machine learning and data science.
The previously mentioned technologies have, among others, created fertile ground for individuals and companies to start leveraging data science tools and techniques. However, in order to leverage these technologies data scientists need to find a way to use them without requiring a significant time investment.Technological building blocks are crucial when it comes to dealing with complexity. The modern computing stack has done an outstanding job of layering systems to make sure that whenever you want to perform a task, you are not encumbered with the many lower-level implementation details. Take for example the seemingly simple task of interacting with files. A simple Python snippet
file = open('hello.txt', 'w')
executes many low-level operations under the hood in order to give the engineer a high level, easy to use abstraction to interact with files. Having the high-level concept and implementation of files available increases programming productivity by orders of magnitude.For data science, high level frameworks such as TensorFlow let you define complex layered neural networks with just a few lines of code:model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10)
])
Jupyter Notebooks are great for hiding complexity by allowing you to interactively run high level code in a contextual environment, centered around the specific task you are trying to solve in the notebook.
By ever increasing levels of abstraction data scientists become more productive, being able to do more in less time. When the cost of trying something is reduced to almost zero, you automatically become more experimental, leading to better results that are difficult to achieve otherwise."an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract knowledge and insights from many structural and unstructured data."It is exactly the application of the scientific methods that requires you to be able to run many experiments in order to validate your hypotheses. The value of tools therefore lies in making this as frictionless as possible.
When data science is compared to traditional software engineering this point is often overlooked. The iterative and experimental nature of data science makes it fundamentally different from regular software engineering for which the development process is more planned out and less explorative.
Power of immediate feedback: visualizing the consequences of your changes. Let the character make the jump by finding the correct y-velocity. [2]
I believe that the benefits of immediate feedback have been instrumental to Jupyter Notebooks' rise in popularity. Notebooks enable you to rapidly try ideas and experiment by providing you with immediate feedback when executing snippets of code. Through their cell-based structure and markdown support, they provide a scratchpad for your ideas which facilitates exploratory work even further.[1]
[2] Bret Victor - Inventing on Principle