敲代碼就像寫小說?Jupyter讓文學編程成爲現實

全文共1670字,預計學習時長7分鐘

 

圖源:datacamp

 

Notebooks一直是增進軟件創意開發的工具。數據科學家用Jupyter記錄他們的工作、探索和實驗新算法,快速實踐新方法並實時觀察結果。當時機成熟時,軟件開發人員就會用經典的IDE(集成開發環境),如VisualStudio Code和Pycharm,來將創意實現爲庫和框架。

 

那麼,有沒有一種方法可以將Jupyter轉化成一個成熟的IDE,將最初概念變成功能強大且可重用的模塊呢?

 

爲了解決這個問題,包括QuantStack、Two Sigma、Bloomberg和fast.ai在內的幾家機構開發了兩個新工具:在Jupyter中添加了nbdev和可視化調試器。

 

 

文學編程與nbdev

 

1983年,Donald Knuth提出了一種新的編程範型,稱爲“文學編程”。

 

他說文學編程是“一種將編程語言與文檔語言相結合的方法,從而使編寫的程序比只用高級語言編寫的程序更強大、更便捷、更易維護,而且可以說更有趣。主要思想是把程序當作文學作品,用人的語言而不是計算機的”。

 

圖源:unsplash

 

Jeremy Howard和Sylvain Gugger對這個概念的設計非常着迷,去年年底他們推出了nbdev。該框架可以在熟悉的Jupyter Notebook環境中編寫代碼,探索和實驗不同的方法,直到找到問題的有效解決方案。然後通過使用某些關鍵詞,nbdev可以將實用功能提取到一個完整的python庫中。

 

確切來說,nbdev通過添加以下支持來補充Jupyter:

 

· 根據最佳實踐,從notebook中自動創建python模塊

· 從代碼中自動創建可搜索的超鏈接文檔

· 將pip安裝程序上傳到PyPI

· 在標準IDE中編輯和導航代碼

· 將所有更改同步回notebook

· 測試

· 連續集成

· 處理版本控制衝突

 

nbdev使軟件開發員和數據科學家能夠在Jupyter環境中,根據最佳實踐,開發完整的python庫。nbdev設置於PyPI上,要進行安裝只需運行:

 

pip install nbdev

 

對於可編輯安裝,請使用以下命令:

 

git clone https://github.com/fastai/nbdev pip install -e nbdev

 

查缺補漏

 

雖然nbdev涵蓋了在Jupyter內部進行類似IDE開發所需的大部分工具,但仍然缺少一個部分:可視化調試器。

 

圖源:unsplash

 

因此,由多家機構的開發人員組成的團隊,近日首次公開發布了Jupyter可視化調試器。該調試器具有人們期望的IDE調試器的大部分功能:

 

· 變量探測器、斷點窗口列表和源預覽

· 顯示當前執行已停止位置的標誌

· 可以瀏覽調用堆棧(下一行、插入、跳出等)

· 可以在興趣線旁邊直接設置斷點窗口

 

爲了利用這個新工具,需要一個在後端實現Jupyter調試協議的內核。第一步是安裝這樣的內核。到目前爲止唯一可以實現的是xeus-python。要進行安裝,只需運行:

 

conda install xeus-python -c conda-forge

 

然後,運行Jupyter Lab,在側邊列上搜索“擴展管理器”並啓用(如果已經啓用可以跳過這一步)。

 

側邊列會出現一個新按鈕。要安裝調試器,只需轉到新啓用的“擴展管理器”按鈕並搜索“調試器”擴展。

 

啓用調試器

 

安裝後,Jupyter Lab將要求執行構建,以包含最新的更改。點擊接受,幾秒鐘後,就可以運行了。

 

爲了測試調試器,我們創建了一個新的xpython notebook並編寫了一個簡單的函數。像往常一樣運行函數並觀察結果。若要啓用調試器,請點擊窗口右上方的關聯按鈕。

 

啓用調試器

 

現在準備再次運行該函數。只是這一次,執行將在設置的斷點窗口停止,這樣就能夠查看程序的狀態。

 

調試代碼

 

可以看到程序在斷點窗口處停止。打開調試器面板,可以看到變量、斷點窗口列表、調用堆棧導航和源代碼。

 

Jupyter的新可視化調試器提供了期望的IDE調試器的所有功能。它仍在開發中,因此還有很多新功能可以期待。其開發者計劃在2020年發佈以下功能:

 

· 在變量探測器中可呈現豐富的mime類型

· 啓用儘可能多的內核調試

· 用戶界面中可支持條件斷點窗口

· 從JupyterLab Voilà預覽擴展中啓用Voilà控制面板的調試

 

Jupyter Notebook一直是探索和實驗代碼的好方法。然而,軟件開發人員通常會使用一個成熟的IDE,記錄工作,以創建可用於生產的庫。這不僅低效,而且會造成Jupyter價值的損失。

 

圖源:unsplash

 

nbdev和可視化調試器是兩個旨在縮小notebook和IDE之間差距的項目。此外,notebook可實現更好的文檔,包括圖表、圖像和視頻,有時還提供了更好的工具,如自動補全功能。

 

讓編程就像寫小說,這樣的Jupyter你值得擁有!

 

留言 點贊 關注

我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”

(添加小編微信:dxsxbb,加入讀者圈,一起討論最新鮮的人工智能科技哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章