91精品国产综合久久四虎久久_国产成人午夜高潮毛片_99er视频精品免费观看_2020亚洲熟女在线观看_日本女优人体写真_国内黄色毛片_年轻的老师中文版在线_丰满女邻居做爰_久久久久久精品成人免费图片

Jupyter項(xiàng)目的現(xiàn)狀
Jupyter項(xiàng)目是如何發(fā)展到現(xiàn)在的以及未來(lái)將會(huì)往哪里去
編者注:Fernando Pérez是將在2017年8月23-25日紐約舉辦的JupyterCon會(huì)議的議題主席。點(diǎn)擊這里了解更多。

在本博文里我們會(huì)著眼于Jupyter項(xiàng)目回答下面三個(gè)問(wèn)題:

1.為什么這個(gè)項(xiàng)目會(huì)存在?也就是說(shuō),我們的動(dòng)機(jī)、目標(biāo)和愿景是什么?

2. 我們是如何發(fā)展到現(xiàn)在的狀態(tài)的?

3. 從Jupyter自身和它所處的數(shù)據(jù)和計(jì)算的大環(huán)境看,接下去它會(huì)關(guān)注于什么事情?

Jupyter項(xiàng)目旨在提供一套開(kāi)源工具的生態(tài)系統(tǒng)來(lái)方便交互式計(jì)算和數(shù)據(jù)分析。在此分析中,人直接參與到計(jì)算的循環(huán)(通過(guò)執(zhí)行代碼來(lái)理解一個(gè)問(wèn)題,并迭代式地改進(jìn)他們的方法)是Jupyter項(xiàng)目最主要的考慮。

圍繞人來(lái)定位Jupyter是整個(gè)項(xiàng)目的關(guān)鍵。這幫我們?cè)谀承┓较蛏舷薅朔秶ɡ纾覀儾粫?huì)開(kāi)發(fā)一個(gè)通用的圖形用戶(hù)界面框架),同時(shí)在其他方面進(jìn)行了泛化(例如,我們的工具是編程語(yǔ)言獨(dú)立的,盡管我們團(tuán)隊(duì)有非常強(qiáng)的Python背景)。為了滿(mǎn)足這一目標(biāo),我們:

1. 試圖去獲取人在使用計(jì)算機(jī)去理解和推斷數(shù)據(jù)、模型和算法過(guò)程中的本質(zhì),并為此來(lái)探索想法和開(kāi)發(fā)公開(kāi)的標(biāo)準(zhǔn)。比如,這就是Jupyter消息協(xié)議notebook文件格式為了它們所針對(duì)的問(wèn)題所提供的功能。

2. 開(kāi)發(fā)構(gòu)建能支持一個(gè)生態(tài)系統(tǒng)發(fā)展的庫(kù)。在這里的工具可以很好地交互,而不用每個(gè)人自己再去“造輪子”。例子包括創(chuàng)建新的Jupyter kernel(執(zhí)行用戶(hù)代碼的組件)的工具,或者把notebook轉(zhuǎn)化成其他文件格式的工具。

3. 開(kāi)發(fā)終端用戶(hù)應(yīng)用程序,將這些想法應(yīng)用于科研、教育和工業(yè)界中反復(fù)重現(xiàn)的日常工作流程。這是一系列的工具,包括從現(xiàn)在值得尊重的IPython命令行shell(其正在不斷發(fā)展和改進(jìn)中)以及我們廣泛使用的Jupyter Notebook,到諸如為機(jī)構(gòu)準(zhǔn)備的JupyterHub等新型工具,以及我們下一代JupyterLab模塊化和可擴(kuò)展接口。 我們努力構(gòu)建高可用性、非常高質(zhì)量的應(yīng)用程序,但我們更專(zhuān)注于具體的使用模式:例如,JupyterLab的架構(gòu)主要針對(duì)Web-first方法進(jìn)行了優(yōu)化,而目前我們生態(tài)系統(tǒng)中的其他項(xiàng)目則針對(duì)個(gè)人計(jì)算機(jī)桌面使用,如開(kāi)源的nteract客戶(hù)端或在商業(yè)化的PyCharm IDE中支持Jupyter Notebook文件。

4. 提供一些服務(wù)來(lái)方便Jupyter工具的采用和使用。例子包括NBViewer,我們的一個(gè)在線notebook文件共享系統(tǒng),以及一個(gè)免費(fèi)的演示服務(wù):try.jupyter.org。 這些服務(wù)本身是完全開(kāi)源的,使其他人可以在自己的環(huán)境中部署它們,也可以基于它們構(gòu)建新技術(shù),例如這個(gè)mybinder.org系統(tǒng)。該系統(tǒng)提供一鍵式部署的GitHub存儲(chǔ)庫(kù),用來(lái)存放自己的代碼、數(shù)據(jù)和notebook文件。以及這個(gè)GitHub上的Jupyter Notebook文件的原始渲染器。

一路走來(lái)的一些關(guān)鍵點(diǎn)

這里不是要做一個(gè)詳細(xì)的歷史回顧展。相反,我們將重點(diǎn)介紹一些里程碑,它們展示了與現(xiàn)在繼續(xù)相關(guān)的一系列重要的觀點(diǎn)是如何產(chǎn)生的。

交互式的Python和科學(xué)Python生態(tài)系統(tǒng)。Jupyter是從IPython項(xiàng)目演變而來(lái)的,專(zhuān)注于使用Python進(jìn)行交互式計(jì)算來(lái)應(yīng)對(duì)科學(xué)計(jì)算的需求和工作流程。從2001年開(kāi)始,IPython就在道義上承諾構(gòu)建一個(gè)完全開(kāi)源的項(xiàng)目(從而讓研究結(jié)果可以無(wú)障礙地被共享),并且認(rèn)識(shí)到Python的特性可以使其成為學(xué)術(shù)界中那些收費(fèi)的計(jì)算軟件的挑戰(zhàn)者。這意味著IPython會(huì)與科學(xué)Python生態(tài)系統(tǒng)一起成長(zhǎng),為使用NumPy、SciPy、Matplotlib、pandas和其他功能強(qiáng)大的工具包提供“入口”。因此從一開(kāi)始,我們發(fā)現(xiàn)了一個(gè)很好的分工:IPython可以專(zhuān)注于人機(jī)交互的問(wèn)題,而由其他項(xiàng)目提供數(shù)據(jù)結(jié)構(gòu)、算法和可視化等。各種項(xiàng)目通過(guò)一個(gè)共同的許可證結(jié)構(gòu)自由共享代碼,使每個(gè)項(xiàng)目能夠增加自己的內(nèi)容的同時(shí),一起為最終的終端用戶(hù)創(chuàng)建強(qiáng)大的系統(tǒng)而提供各種工具。

開(kāi)放的IPython Notebook協(xié)議和文件格式。2010年左右,在為IPython構(gòu)建notebook進(jìn)行了多次實(shí)驗(yàn)后,我們朝著今天所建立的架構(gòu)邁出了第一步。 我們希望保留“IPython體驗(yàn)”的設(shè)計(jì),這意味著IPython終端的所有特性和工作流都會(huì)被保留,但它將通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行操作,以便不管客戶(hù)端在哪里,它都可以連接到提供計(jì)算的服務(wù)器。使用ZeroMQ網(wǎng)絡(luò)庫(kù),我們定義了一個(gè)協(xié)議來(lái)捕獲我們?cè)贗Python中熟悉的所有操作,從執(zhí)行代碼到自動(dòng)補(bǔ)充完成對(duì)象的名稱(chēng)(內(nèi)省操作)。這一決定,在隨后的一年多一點(diǎn)的時(shí)間里,帶來(lái)了在2011年夏季發(fā)布的圖形客戶(hù)端(仍然使用的Qt控制臺(tái))和Jupyter Notebook(那個(gè)時(shí)候的名子還叫IPython)的第一個(gè)迭代(更多的細(xì)節(jié)可以在這篇博文中找到)。

IPythonJupyter。 IPython Notebook被SciPy社區(qū)迅速采用,但很快大家就很清楚地發(fā)現(xiàn)它的底層架構(gòu)可以用于任何交互式的編程語(yǔ)言。隨后在很短的時(shí)間內(nèi),除Python之外的其他語(yǔ)言(Julia、Haskell、R)的內(nèi)核就被連續(xù)地創(chuàng)建了出來(lái)。我們自己開(kāi)發(fā)了一些,但大多數(shù)內(nèi)核都是由這些語(yǔ)言的用戶(hù)獨(dú)立開(kāi)發(fā)的。這種跨語(yǔ)言的使用場(chǎng)景迫使我們?nèi)プ屑?xì)地驗(yàn)證我們的架構(gòu),以消除它對(duì)IPython的任何意外依賴(lài)。并且在2014年,這也導(dǎo)致我們將該項(xiàng)目的大部分重命名為Jupyter。這個(gè)名字的靈感來(lái)自Julia、Python和R(數(shù)據(jù)科學(xué)的三種開(kāi)源語(yǔ)言),但這個(gè)名字代表了超越了任何特定語(yǔ)言的通用思想:即計(jì)算、數(shù)據(jù)和人類(lèi)的理解、共享和協(xié)作的活動(dòng)。

今天的觀點(diǎn)來(lái)看趨勢(shì)

把Juypter帶到這一步的這些想法已經(jīng)編織成更大的計(jì)算和數(shù)據(jù)科學(xué)的框架,我們預(yù)計(jì)它未來(lái)將會(huì)產(chǎn)生重大影響。以下是我們?cè)贘upyter生態(tài)系統(tǒng)中看到的六個(gè)趨勢(shì):

1. 交互式計(jì)算已經(jīng)是一件真實(shí)正經(jīng)的事情。面向數(shù)據(jù)的計(jì)算已經(jīng)向更多的從業(yè)者展示了交互式計(jì)算的想法??茖W(xué)計(jì)算領(lǐng)域的人們已經(jīng)通過(guò)Matlab、IDL和Mathematica等程序語(yǔ)言熟悉了這種人機(jī)交互式的計(jì)算。然而,當(dāng)我們?cè)诙兰o(jì)初期開(kāi)始開(kāi)發(fā)IPython時(shí),這種工作流程對(duì)于傳統(tǒng)軟件工程領(lǐng)域的開(kāi)發(fā)人員而言還是很陌生的。諸如Python和Ruby之類(lèi)的語(yǔ)言提供了交互式的shell,但它們的功能有限,只是輕量級(jí)的實(shí)驗(yàn)項(xiàng)目,而不是首選的開(kāi)發(fā)環(huán)境。當(dāng)IPython的第一個(gè)版本在2001年出現(xiàn)時(shí),它就試圖使Python的交互式計(jì)算對(duì)于那些全職用Python的人來(lái)說(shuō)是愉快的。諸如Jupyter、RStudio、Zeppelin和Databricks等工具已經(jīng)進(jìn)一步推動(dòng)了基于Web的交互式計(jì)算。從而使數(shù)百萬(wàn)統(tǒng)計(jì)學(xué)家、數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師和人工智能/機(jī)器學(xué)習(xí)人員每天都在進(jìn)行交互式計(jì)算。傳統(tǒng)的集成開(kāi)發(fā)環(huán)境(IDE)正在被交互式計(jì)算環(huán)境所取代:Jupyter、JupyterLab和RStudio是這一趨勢(shì)的杰出例子。與交互式計(jì)算共同發(fā)展的是基礎(chǔ)模塊的形式化、被識(shí)別和開(kāi)發(fā)出來(lái):內(nèi)核(運(yùn)行代碼的進(jìn)程)、網(wǎng)絡(luò)協(xié)議(正式的消息規(guī)范來(lái)發(fā)送代碼到內(nèi)核并獲得結(jié)果)、用戶(hù)界面(提供與內(nèi)核的人機(jī)接口)和基于MIME的輸出(除簡(jiǎn)單文本之外的任何類(lèi)型的結(jié)果的表示)等。

2. 計(jì)算型敘述被廣泛地創(chuàng)造出來(lái)。實(shí)時(shí)運(yùn)行的代碼、敘事性的文本和可視化被整合在一起,方便使用代碼和數(shù)據(jù)來(lái)講述故事。在書(shū)籍、博文、同行評(píng)審的學(xué)術(shù)出版物、數(shù)據(jù)驅(qū)動(dòng)的新聞等不同用戶(hù)和業(yè)務(wù)場(chǎng)景下,這種計(jì)算型敘述正在被用于制作和分享技術(shù)內(nèi)容。諸如Jupyter Notebook和R Markdown等文件格式將這些計(jì)算型敘述編碼成可共享和可重現(xiàn)的單位。然而,計(jì)算型敘述的實(shí)踐已經(jīng)遠(yuǎn)遠(yuǎn)超出了這些開(kāi)源的格式,擴(kuò)展到許多交互式的計(jì)算平臺(tái)。

3. 為具體的洞察編程而不是泛化的任務(wù)。計(jì)算機(jī)科學(xué)的總體目標(biāo)是泛化和抽象。軟件工程專(zhuān)注于為多種問(wèn)題設(shè)計(jì)統(tǒng)一的庫(kù)和應(yīng)用。隨著交互式計(jì)算作為一種實(shí)踐的興起,并將這一過(guò)程納入計(jì)算型敘述(我們稱(chēng)之為Literate Computing),我們現(xiàn)在有一個(gè)新的人群,他們使用編程語(yǔ)言和開(kāi)發(fā)工具的目的不一樣了。他們通常為非常具體的目的來(lái)探索數(shù)據(jù)、模型和算法,甚至可能在單個(gè)數(shù)據(jù)集上花費(fèi)巨大的努力,但會(huì)提出復(fù)雜的問(wèn)題并找到可以共享、發(fā)表和擴(kuò)展的見(jiàn)解。由于數(shù)據(jù)普遍存在于各個(gè)學(xué)科領(lǐng)域,這表示編程語(yǔ)言和工具的受眾群體會(huì)極具擴(kuò)張,但是這些受眾的需求和興趣與“傳統(tǒng)”的軟件工程師的需求是不同。

4. 擁抱多種語(yǔ)言的個(gè)人和組織。在處理數(shù)據(jù)時(shí),許多個(gè)人和組織認(rèn)識(shí)到利用多種編程語(yǔ)言?xún)?yōu)點(diǎn)的好處。在一個(gè)以數(shù)據(jù)為重點(diǎn)的研究組或公司中,看到Python、R、Java和Scala都被使用的情況并不少見(jiàn)。這迫使大家開(kāi)發(fā)和構(gòu)建協(xié)議(Jupyter消息規(guī)范)、文件格式(Jupyter Notebook、Feature、Parquet、Markdown、SQL、JSON)和用戶(hù)界面(Jupyter和nteract)等這些可以跨語(yǔ)言統(tǒng)一運(yùn)行并最大化互操作性和協(xié)作的工具。

5. 交互式計(jì)算的開(kāi)放標(biāo)準(zhǔn)。十年前的業(yè)界重點(diǎn)是為互聯(lián)網(wǎng)創(chuàng)建開(kāi)放的標(biāo)準(zhǔn),如HTML、HTTP及其相應(yīng)的設(shè)備。今天,我們看到為交互式的、面向數(shù)據(jù)的計(jì)算開(kāi)發(fā)的相同類(lèi)型的標(biāo)準(zhǔn)。Jupyter Notebook文件格式是用于計(jì)算型敘述的JSON文檔格式的正式規(guī)范。Markdown是敘事文本的標(biāo)準(zhǔn)(雖然是有點(diǎn)狡猾)。Jupyter消息規(guī)范是允許任何交互式計(jì)算客戶(hù)端與任何語(yǔ)言?xún)?nèi)核通信的開(kāi)放標(biāo)準(zhǔn)。Vega和Vega-Lite是用于交互式可視化的JSON模式。這些開(kāi)放標(biāo)準(zhǔn)使得大量的工具和語(yǔ)言可以無(wú)縫地協(xié)同工作。

6. 有意義的共享數(shù)據(jù)。政府和組織的開(kāi)放數(shù)據(jù)計(jì)劃為普通人和機(jī)構(gòu)提供了豐富的數(shù)據(jù)來(lái)源。這些數(shù)據(jù)可被用于探索、再現(xiàn)之前的實(shí)驗(yàn)和研究,以及為別人構(gòu)造服務(wù)。但是數(shù)據(jù)只有在配合正確的工具(Jupyter、nteract、RStudio、Zeppelin等)后才有意義,才能讓用戶(hù)可以探索這些數(shù)據(jù)集并分享其結(jié)果,能將把數(shù)據(jù)分析過(guò)程人性化,能支持協(xié)作,以及能用敘述性?xún)?nèi)容和可視化來(lái)展現(xiàn)數(shù)據(jù)的意思。

那么接下來(lái)的問(wèn)題就是:所有這些趨勢(shì)是否意味著一種更大的模式?我們認(rèn)為它們都預(yù)示著為了優(yōu)化人機(jī)交互和理解所進(jìn)行的計(jì)算的代碼、數(shù)據(jù)和用戶(hù)界面的出現(xiàn)和發(fā)展。

過(guò)去,人類(lèi)不得約束自己以適應(yīng)計(jì)算機(jī)的各種限制(網(wǎng)絡(luò)、內(nèi)存、CPU、磁盤(pán)空間等)?,F(xiàn)在這些先前的約束已經(jīng)顯著地得到了放松,我們可以享受使用高級(jí)語(yǔ)言(Python、R、Julia)和豐富的網(wǎng)絡(luò)接口(Web瀏覽器和JavaScript框架)。我們可以使用精心設(shè)計(jì)的基于瀏覽器的用戶(hù)界面構(gòu)建出強(qiáng)大的分布式系統(tǒng),使我們能夠使用計(jì)算資源和數(shù)據(jù),而不管它們所在的地理位置是哪里。我們現(xiàn)在可以開(kāi)始優(yōu)化我們最重要的資源:人的時(shí)間。

先前這些的約束放松并沒(méi)有神奇地觸發(fā)以人為本的計(jì)算系統(tǒng)的創(chuàng)造,但是打開(kāi)了它的大門(mén)。真正的動(dòng)力可能是每個(gè)可以想像得到的組織和活動(dòng)里出現(xiàn)的數(shù)據(jù)的爆炸式增長(zhǎng)。這使人們深刻地需要以更重要和有意義的方式與代碼和數(shù)據(jù)進(jìn)行交互。如果沒(méi)有這個(gè)動(dòng)力,Jupyter項(xiàng)目也依然會(huì)存在,但它可能只會(huì)局限在非常小范圍的學(xué)術(shù)科學(xué)計(jì)算社區(qū)里。

組織機(jī)構(gòu)需要在制定數(shù)據(jù)戰(zhàn)略時(shí)開(kāi)始關(guān)注人的因素。Jupyter能在一些機(jī)構(gòu)中取得的巨大成功并不是高層管理人員做出的購(gòu)買(mǎi)決定。它是那些每天都要必須花時(shí)間糾結(jié)于編碼和數(shù)據(jù)的開(kāi)發(fā)人員和數(shù)據(jù)科學(xué)家自己的決定。在未來(lái),把人的因素放到前沿和中心,并把設(shè)計(jì)和可用性與性能一樣優(yōu)先考慮的工具和系統(tǒng)才將會(huì)被實(shí)際使用和廣泛采用。我們開(kāi)發(fā)了Jupyter的思路是因?yàn)槲覀冏约合胧褂盟?,而我們將基于這些想法繼續(xù)前進(jìn)。

致謝

在此,我們無(wú)法一一感謝所有那些讓Jupyter成為可能的人,但是我們想統(tǒng)一感謝你們所有人:用戶(hù)、開(kāi)發(fā)人員和與我們互動(dòng)的許多社區(qū)在線論壇和活動(dòng)的參與者。無(wú)論您是高中教師、音樂(lè)學(xué)家、癌癥研究員,還是為公司構(gòu)建數(shù)據(jù)科學(xué)工具的開(kāi)發(fā)人員,這個(gè)項(xiàng)目首先并會(huì)繼續(xù)服務(wù)于一個(gè)公開(kāi)分享的想法、工具和素材的世界。從我們的長(zhǎng)期開(kāi)發(fā)人員到把這一工具帶給你的新同事的人員,感謝你們參與這個(gè)項(xiàng)目。

如果沒(méi)有下述慷慨支持我們的機(jī)構(gòu),Jupyter是不可能的存在的:Alfred P. Sloan基金會(huì)、Gordon和Betty Moore基金會(huì)、Helmsley慈善信托基金會(huì)和Simons基金會(huì)。最后,我們要感謝為項(xiàng)目提供資金、資源和開(kāi)發(fā)工作的行業(yè)合作伙伴:Bloomberg、Continuum Analytics、Enthought、Google、IBM、MaxPoint Interactive、Microsoft、Netflix和Rackspace。

我們要感謝Jamie Whitacre和Lisa Mann對(duì)這篇文章所做的寶貴貢獻(xiàn)。

Fernando Pérez是勞倫斯伯克利國(guó)家實(shí)驗(yàn)室的科學(xué)家,也是加州大學(xué)伯克利分校的伯克利數(shù)據(jù)科學(xué)研究所的創(chuàng)始人,這個(gè)研究所創(chuàng)始于2013年。他在科羅拉多大學(xué)大石城分校獲得粒子物理博士學(xué)位,隨后在應(yīng)用數(shù)學(xué)領(lǐng)域進(jìn)行博士后研究,并開(kāi)發(fā)數(shù)值算法。今天,他的研究重點(diǎn)是為跨領(lǐng)域?qū)W科創(chuàng)建現(xiàn)代計(jì)算研究和數(shù)據(jù)科學(xué)的工具,重點(diǎn)是高級(jí)語(yǔ)言、交互和敘述型計(jì)算,以及可重復(fù)的研究。他在2001年讀研期間開(kāi)發(fā)創(chuàng)造了IPython,并在它進(jìn)入Project Jupyter項(xiàng)目后繼續(xù)領(lǐng)導(dǎo)著IPython的逐步演進(jìn)?,F(xiàn)在這個(gè)工具在一個(gè)有才華的團(tuán)隊(duì)的合作努力下繼續(xù)發(fā)展。他定期講授科學(xué)計(jì)算和數(shù)據(jù)科學(xué)。他是Python軟件基金會(huì)的成員,還是NumFOCUS基金會(huì)的創(chuàng)始成員,他也是美國(guó)國(guó)家科學(xué)院Kavli Frontiers科學(xué)家成員。他獲得了自由軟件基金會(huì)2012年度免費(fèi)軟件獎(jiǎng)。

Brian Granger是加州州立理工大學(xué)San Luis Obispo分校的物理學(xué)助理教授。他擁有理論原子、分子和光學(xué)物理學(xué)的背景,以及科羅拉多大學(xué)的博士學(xué)位。他目前的研究興趣包括量子計(jì)算、并行和分布式計(jì)算,以及用于科技計(jì)算的交互式計(jì)算環(huán)境。他是IPython項(xiàng)目的核心開(kāi)發(fā)人員,也是許多其他專(zhuān)注于Python中的科學(xué)計(jì)算的開(kāi)源項(xiàng)目的積極貢獻(xiàn)者。

Cairn on rocks. (source: Doug Kerr via Flickr)