GitHub Supports Literate Programming Environment For Python
Written by Kay Ewbank   
Thursday, 03 December 2020

GitHub has announced it is supporting Fast.ai in developing a new, literate, programming environment for Python called nbdev.

Fast.ai has been working on nbdev for some time,and GitHub is supporting it in this as part of GitHub's drive to make software development more approachable and to make it easier to employ best practices, such as continuous integration, distribution, and documentation of software.

fastai

 

Nbdev is a library that allows you to develop a Python library in Jupyter Notebooks, so all your code, tests and documentation are stored in one place. The developers say this equates to a true literate programming environment, as described by Donald Knuth back in 1983. 

Knuth described literal programming as a methodology that combines a programming language with a documentation language, thereby making programs more robust, more portable, more easily maintained, and arguably more fun to write than programs that are written only in a high-level language. The main idea is to treat a program as a piece of literature, addressed to human beings rather than to a computer. The program can also be viewed as a hypertext document.

nbdev

The nbdev environment consists of a web server for previewing a docs site, a Jupyter server for writing code, and a series of CLI tools that are set up to work with GitHub Codespaces.In nbdev, you work in Jupyter notebooks hosted on GitHub pages, and this generates docs that are searchable and automatically hyperlinked to appropriate documentation pages. The environment supports continuous integration (CI) via GitHub Actions, which will run unit tests automatically for you.

The environment also has utilities to automate the publishing of pypi and conda packages including version number management. The developers say it offers a robust, two-way sync between notebooks and source code, meaning you can use your IDE for code navigation or quick edits if desired. It also provides fine-grained control on hiding/showing cells: you can choose to hide entire cells, just the output, or just the input. Math equation support is also provided using LaTeX.

fastai

 

More Information

Nbdev Website

Nbdev On GitHub

Related Articles

GitHub Strengthens Team Working

Deep Learning from the Foundations

New From GitHub Universe

GitHub Launches Actions

Microsoft Buys GitHub - Get Ready For a Bigger Devil

CoffeeScript Supports Literate Programming

Knuth at Google Tech Talks  

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on, Twitter, Facebook or Linkedin.

Banner


New To Perl? What Do You Need?
08/01/2021

Developers who use Perl are invited to take a survey to provide feedback on what help and guidance they would find useful. It's a Perl Foundation initiative to guide developers in their journey of lea [ ... ]



Ruby 3 Released Offering Three Times Better Performance
31/12/2020

Ruby 3 has been released. This major new version has goals of improving performance, concurrency and support for Typing. The headline improvement is the performance, with Yukihiro Matsumoto, aka Matz, [ ... ]


More News

square

 



 

Comments




or email your comment to: comments@i-programmer.info