Share

Do you know Jupyter is now full-fledged IDE?

Author: neptune | 25th-May-2021 | views: 31
#Python #Jupyter

Motivation

We know that Jupyter Notebook is widely used to explore and experiment on lots of data or code. But there is a big gap between IDEs and Notebooks in terms of the development of libraries.

We will explain how developers fill this gap? Now you can use Jupyter for libraries development with ease. 

Before we move in deep let’s understand few things like literate programming.

Literate programming

Literate programming is a methodology that combines programming language into documentation language. It makes the program robust, portable, and easy to maintain using High-Level Language.

Developers inclined towards IDEs 

Jupyter Notebook is a widely used tool by Data scientists and developers. Scientists in explore and experiment algorithms. Using Notebook they can also develop new approaches and observe outcomes quickly.

Now, days programmers and developers are leaned towards IDEs (Integrated Development Environment) such as Pycharm, VCS, etc. for the development of libraries.

The reason behind this is that they can easily maintain code and documentation of libraries. Developers find a way to overcome this gap.

They said “They’re a way to convert Jupyter into a full-fledged IDE, where new concepts are turned into robust and reusable modules”.

 

So developers from institutions like Two Sigma, QuantStack, Bloomberg and fast.ai. developed tools:-

1. nbdev

nbdev is a library that allows developers to develop a library in Jupyter Notebooks, putting all your code, tests and documentation in one place.

2. Visual Debugger

A JupyterLab debugger UI extension is a visual debugger. Right now, xeus-python is the only Jupyter kernel that supports debugging.

To install it just run:

conda install xeus-python -c conda-forge

Then, run Jupyter Lab and on the sidebar search for the Extension Manager and enable it, if you haven’t so far.

Main Idea behind nbdev?

In 1983, Donald Knuth came up with a powerful idea of a programming paradigm, he called it  literate programming. The main idea behind is to use a program as a piece of literature, spoke to human beings rather than to a computer”.

What is literate programming? 

It is a methodology that combines programming language into documentation language. It makes the program robust, portable and easy to maintain. Programs are almost written in high-level language. This framework will let you to compose code in Jupyter Notebook.

Jupyter equipped with following support after nbdev:-

  • creation of python modules automatically from notebooks
  • Navigation and editing of the code in a standard IDE
  • synchronize any changes back into the notebooks
  • automatic creation of searchable, hyperlinked documentation from the code
  • pip installers readily uploaded to PyPI
  • Testing of code
  • Continuous-integration of code
  • Handle version control conflict

More importantly It will enable software developers and data scientists to develop well-documented python libraries. Without leaving the Jupyter environment.

It is also available on PyPI so you can install it 

Using  pip

# using pip
pip install -e nbdev

For more info click here.

Using Git

# using git
git clone https://github.com/fastai/nbdev

To get started, read instructions by its developers, describing the notion behind nbdev and follow the detailed tutorial here.

Conclusion

Jupyter notebooks have always been a great way to explore and experiment with your code. However, software developers always leaned toward a full-fledged IDE, for the development of production-ready libraries.

Moreover, notebooks provide an environment for better documentation, including graphs, images and videos, and sometimes better tools, such as auto-complete functionality.

nbdev and the visual debugger are two projects that aim at closing the gap between notebooks and IDEs. We saw what power nbdev have and how it makes literate programming a reality.

Thanks for Reading.





Related Blogs
Python 3.9 new amazing features ?
Author: neptune | 25th-May-2021 | views: 110
#Python
Some of the best new feature of Python 3.9 like Dict union, Type hinting with examples..
Best Python package manager and package for virtual environment ?
Author: neptune | 29th-May-2021 | views: 57
#Python #Anaconda #Virtualenv #Pip
Which is the best package manager for python and Virtual environment management using Virtualenv and Anaconda...
Will, AI kills developers and programmers job ?
Author: neptune | 05th-Jun-2021 | views: 46
#Python #Machine learning #AI
GPT-3’s performance has convinced that Artificial intelligence is closer or at least AI-generated code is closer than we think. It generates imaginative, insightful, deep, and even excellent content...
Python Built-in functions lambda, map, filter, reduce.
Author: neptune | 26th-May-2021 | views: 36
#Python
We are going to explore in deep some important Python build-in functions lambda,map,filter and reduce with examples..
How to download video from youtube using python module ?
Author: neptune | 26th-May-2021 | views: 31
#Python
We will let you know how you can easily download the Youtube high quality videos along with subtitle, thumbnail, description using python package..
What exactly you can do with Python?
Author: neptune | 29th-May-2021 | views: 31
#Python
Well, it's a tricky question to answer because there are lots of application of Python. But, I will tell you about 3 main applications of Python...
How to extract Speech from Video using Python?
Author: neptune | 25th-May-2021 | views: 28
#Python
Simple and easy way to convert video into audio then text using Google Speech Recognition API..
View More