Do you know Jupyter is now full-fledged IDE?

Author: neptune | 15th-Apr-2022
#Python

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
How to extract Speech from Video using Python?
Author: neptune | 16th-Jun-2023
#Python #Projects
Simple and easy way to convert video into audio then text using Google Speech Recognition API...

How to download video from youtube using python module ?
Author: neptune | 15th-Jun-2023
#Python
We will let you know how you can easily download the Youtube high quality videos along with subtitle, thumbnail, description using python package..

Best Python package manager and package for virtual environment ?
Author: neptune | 18th-Jun-2023
#Python #Pip
We will explore the options of Pip, Virtualenv, Anaconda, and also introduce Pyenv as a helpful tool...

Deploy Django project on AWS with Apache2 and mod_wsgi module.
Author: neptune | 25th-May-2023
#Python #Django
In this blog I use the AWS Ubuntu 18.22 instance as Hosting platform and used Apache2 server with mod_wsgi for configurations. We create a django sample project then configure server...

Mostly asked Python Interview Questions - 2023.
Author: neptune | 30th-May-2023
#Python #Interview
Python interview questions for freshers. These questions asked in 2022 Python interviews...

Core Python Syllabus for Interviews
Author: neptune | 26th-Jul-2023
#Python #Interview
STRING MANIPULATION : Introduction to Python String, Accessing Individual Elements, String Operators, String Slices, String Functions and Methods...

How to reverse string in Python ?
Author: neptune | 16th-May-2022
#Python
We are going to explore different ways to reverse string in Python...

Python Built-in functions lambda, map, filter, reduce.
Author: neptune | 15th-Jun-2023
#Python
We are going to explore in deep some important Python build-in functions lambda, map, filter and reduce with examples...

Python 3.9 new amazing features ?
Author: neptune | 26th-Jul-2023
#Python
Python 3.9 introduces new features such as dictionary union, string methods to remove prefixes and suffixes, type hinting, and speed improvements for built-in functions...

5 Languages that Replace Python with Proof
Author: neptune | 13th-Apr-2023
#Python
Julia, Rust, Go, Kotlin, and TypeScript are modern languages that could replace Python for specific use cases...

Input and Output in Python
Author: neptune | 13th-Jul-2023
#Python
In this article, we will see how Python take input from user and How it display the output to user. First we cover input then output...

5 Best Python Testing Frameworks.
Author: neptune | 12th-Apr-2023
#Python #Testing
Python offers various testing frameworks, including Pytest, unittest, Nose, Robot Framework, and Behave, to build robust and reliable software...

10 Proven Ways to Earn Money Through Python
Author: neptune | 11th-Apr-2023
#Python
Python offers numerous earning opportunities from web development to teaching, data analysis, machine learning, automation, web scraping, and more...

Monkey Patching in Python: A Powerful Yet Controversial Technique
Author: neptune | 01st-Aug-2023
#Python
Monkey patching in Python is a dynamic technique to modify code at runtime. It can add/alter behavior, but use it judiciously to avoid maintainability issues...

View More