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

2020-12-15 讀芯術

全文共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學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 上手jupyter notebook神器
    一、簡介Jupyter Notebook是一個開源的 Web 應用,能夠讓你創建、分享包含可執行代碼、可視化結構和文字說明的文檔。Jupyter Notebook的應用非常廣泛,它可以用在數據清理與轉換、數字模擬、統計模型、數據可視化、機器學習等方面。Jupyter Notebook非常活躍於深度學習領域。在項目的實驗測試階段,它相比於用 py 文件來直接編程更方便。
  • 純愛小說《c語言修仙》|在敲代碼的路上成長,在廢墟中與愛重逢
    推小說時間!今日推薦純愛修仙文,敲得一手好代碼,妖魔鬼怪都不怕。雖然文章是修仙文,但是卻寫得非常有科技感,虛擬的系統以及科技的發展,一切都是因你而存在。《C語言修仙》——一十四洲林潯x東君一個靠敲代碼修仙的小透明,在微博小號記錄和男神相關的心情日記時,卻真的偶遇男神,並把順利將男神劃為己有的故事,但這不是現實。這一切虛擬的故事都是,以愛為起點才能延伸,虛擬的世界中,你是真實的,愛是真實的。林潯是一個程式設計師,通宵編代碼後發現自己身體內多了一個程序輸入窗口。
  • 一款容易上手jupyter notebook神器
    在項目的實驗測試階段,它相比於用 py 文件來直接編程更方便。在項目結束之後如果要寫項目報告,用 Jupyter 也比較合適。二、安裝與使用Jupyter Notebook主要有以下三個非常實用的功能:執行代碼、數據可視化以及使用 Markdown 功能寫報告執行代碼。
  • 樹莓派打造python在線編程工具Jupyter Notebook
    安裝jupyter notebookdocker pull maxjiang/rpi-jupyter #看這個名字不知道是不是中國人用python生成一個密碼這一步是生成一個sha1密碼python代碼from notebook.auth import passwdpasswd()#這裡輸入兩遍密碼
  • jupyter notebook在線平臺和教程
    jupyter logo很多同學都在了解學習python過程中,都聽過jupyter和jupyter notebook的大名,但默認的python安裝是不包含jupyter的,因此很多人還不了解jupyter是幹什麼用的
  • 編程入門應該先學什麼?敲代碼?不不不!
    有很多朋友都發現編程,成為了網際網路時代風口上的行業,就像有句名言說的一樣:" 抓住時代風口,豬也能飛起來 ",於是就有許多朋友想要抓住這個網際網路的風口(當然不是說大家是豬哈)。那麼對於零基礎的小白,想要入門編程該怎麼做呢?
  • 誰說女生不能學編程?超模KK放棄500萬年薪只為敲代碼!
    但是偏偏有個女孩,走得了維秘,也寫得了代碼,還放棄500萬年薪,就為了去學習編程,當個程序媛。就因為迷戀編程。死都沒想到會有這樣的女孩子吧。比別人美就算了,還要負責智商碾壓!這個女孩就是維秘超模Karlie Kloss超模界的小Kk。高顏值高智商高學歷。人生贏家啊。小kk1992年出生,身高180CM,擁有魔鬼的三圍:32-24-34 IN。真是仍人羨慕嫉妒。
  • Jupyter 進階教程
    執行不同程式語言在 Jupyter notebook 中可以執行不同的程式語言,儘管選擇的核有既定的語言,比如本文例子選擇的就是 Python3 ,但通過魔法命令可以執行不同的程式語言,在 %lsmagic 的輸出結果也可以找到。
  • Jupyter Notebook介紹、安裝及配置教程
    Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種程式語言。Jupyter Notebook 的本質是一個 Web 應用程式,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等。二、組成部分1.
  • 如何用Android手機或平板編程寫代碼
    人工智慧時代來臨,不學點編程怎麼行?編程寫代碼,往往都需要在電腦上搭建IDE環境。而且在電腦上編程寫代碼做開發,可供選擇的就太多了。琳琅滿目的程式語言和五花八門的編譯環境,讓你隨便挑隨便選。針對不同的用途,自己學習的重點,可以選擇不同的集成開發工具,那麼手機上呢?
  • 敲代碼從小孩抓起 編程機器人是新世代的童年玩具?
    計算機科學教師協會常務理事Jake Baskin說:「編程已經成為像電學和重力一樣的基礎知識,我們有必要向最年輕的學生傳授一些基礎計算機科學,這有利於他們了解自己所處的世界並與之形成互動。」以Botzee為例,孩子們可以用像樂高一樣的積木拼一個機器人,然後利用虛擬實境增強技術,讓機器人穿梭在安卓或蘋果設備上的虛擬世界並完成各種謎題。Botzees的生產商Pai Technology的營銷和傳播負責人Amy Braun說:「將積木和虛擬行為相結合是設計的關鍵,我們覺得這種運動類遊戲對孩子是很有必要的。」
  • Jupyter Notebook不為人知的秘密
    爬蟲俱樂部將於2019年10月2日至10月5日在湖北武漢舉行Python編程技術培訓,本次培訓採用理論與案例相結合的方式,旨在幫助零基礎學員輕鬆入門Python,由淺入深學習和掌握Python編程技術,尤其是爬蟲技術和文本分析技術。
  • 敲代碼5年的碼農:編程學不好的只有3種人
    要說這兩年比較火的職業,程式設計師一定是其中之一,即便是很多外行人分不清前端、後端、工程師、架構師,但他們也都有一個共同的認知:那些對著電腦噼裡啪啦敲著看不懂代碼的人,工資都很高。而這個邏輯能力與數學的學習有很大的關係,如果你的數學怎麼學都學不好,你可能成為不了一個出色的程式設計師。英語方面大家都知道,編程是英文的,如果你英文學不好無法去閱讀英文文檔,基本上只能靠公司和漢文資料,學習後勁不足。如果只當一個普通的底層碼工,可能用到的英文的確不多;但越往上走越需要。數學和英語算是編程的基礎知識。假如說你不適合學數學和學英語,那麼你的編程之路將會十分坎坷。
  • 15個應該掌握的Jupyter Notebook 使用技巧
    Jupyter Notebook是一個基於瀏覽器的交互式編程環境(REPL, read eval print loop),它主要構建在IPython等開源庫上,允許我們在瀏覽器上運行交互式python代碼。並且有許多有趣的插件和神奇的命令,大大增強了python的編程體驗。1.
  • 雲端寫代碼+錄播答疑+少兒編程,ITbegin還想將Scratch代碼化
    目前,ITbegin旗下主要包括三個方面的業務:院校通,大學編程教育SaaS平臺,支持代碼在雲端運行,同時可以多人協作;在線職業教育,大牛將自己寫代碼的過程錄成視頻,小白可以跟著學習、練習;小編程家,主要為6-18歲的孩子提供編程教育,採用一對一直播教學模式。
  • Python3 量化分析筆記從小白到破產-編程環境準備
    文:藍兔子讀難NOTES圖: 配圖 來源於網絡Python3 量化分析從小白到破產筆記編程環境準備編碼:0001首先python是個什麼東西我們就不說了,既然大家都已經點進來了,相信大家應該也知道,即便不知道,網絡上鋪天蓋地的信息
  • 蘋果一堂編程課 讓我"寫的"代碼能遙控機器人了
    坐在Apple Store零售店,聽了講師一節編程入門課,我「寫的」代碼,居然讓機器人動起來了。這一切,都是在蘋果Swift語言和編程入門軟體,Swift Playgrounds中實現的。
  • Jupyter Notebook 的這些tips你了解嗎?
    本文作者:陳丹慧 文字編輯:戴  雯 技術總編:張馨月爬蟲俱樂部於2020年7月在線上舉辦的Stata與Python編程技術訓練營已圓滿結束
  • 這些Jupyter Notebook的黑科技,你使用過嗎?(附代碼)
    - 可以在此區域中運行和測試代碼,且同時不會更改Jupyter Notebook中的任何內容。4. 在代碼單元內實現代碼摺疊 – 有效彌補了Jupyter Notebook中此類功能的空缺。5. 一鍵隱藏代碼單元格 - 這是數據可視化時的重要功能,因為聽眾通常對圖表而不是代碼感興趣!6. 一個超級酷的變量檢查器。7.
  • 跨過編程入門門檻,從寫一首「代碼詩」開始
    全文共6143字,預計學習時長25分鐘或更長對很多人來說,學寫代碼很難。本文將通過編寫與眾不同且富有詩意的代碼來克服學習代碼最初遇到的困難。如果你是個JavaScript新手,或者是在編程學習過程中遇到了困難,本文介紹的方法也許可以幫到你。