本文關鍵字:online language,在線語言系統,jupyter,ipython jupyter,在線編譯器,在線解釋語言,engitor
在《engitor:基於jupyter,一個一體化的語言,IDE及通用分佈式架構環境》一文中我們提到,jupyter不止是一個分佈式IDE它還是個分佈式架構,更準確地說,它使任何使用engitor開發的程序變成WEB架構下的程序,而這個“WEB”,是jupyter webiz之後的web,然而它比web更自然,更強大。
jupyter作為一個極具創新的普通的產品不可忽視性,在於它是一個能改變現有軟件開發,發佈,甚至教育,用戶體驗端的東西,使之秒變WEB,做成WEB架構下的該程序版本,正如jupyter主頁上提到的interacting computing,利用這二字官方強調的重點還主要在這:可用於編程=可用於開發佈署=可用於定義一個appmodel,也就是利用jupyter可以達成一個計算。這個計算就是WEB化。
因為jupyter system實際上是作為一個一體化的多語言開發測試部件live code,debug+demolet show engine和ide,meta container環境。而存在的。有點拗口?
第一,它增強了分級容器的範疇。使程序接上WEB式的組件開發環境,以及UGC支持。
普通的容器就是PAAS,RUNTIME AAS,像gae這樣的東西,lamp這樣的東西,在ipynb面前只是基礎建設。前者沒有細化到具體應用級,是從雲服務到語言服務到語言框架服務的分級細化過程,提供服務的廠商只能算是ISP。而後者可以做到應用生態內部。為具體應用定義一個由.ipynb 組成的demolet定義的容器環境。
jupyter將應用接上了一個任意式的demolet容器,如果說傳統分佈式方案是從雲服務到語言服務到語言框架服務的分級細化過程,那麼jupyter就是直接具體應用分佈式。
jupyter是langsys as distributed srv,langsrv,這跟容器/applicationsrv —- 語言庫api as services 不同,它更適用當前者完成了之後,要將容器運用到具體應用層之後的情形,
PS:語言即庫,庫即API,API即組件。始終要記得可複用件在編程史上的演化(特別是其與平臺,語言系統結合,脫離語言系統後變成分佈式可開發複用件之後那些形態),可複用件必定存在一個容器或hosting backend.接下來談到的分佈式API也是如此。
第二,它增強的是WEB等分佈式API,從程序的開發發佈方式變成類WEB的分佈式架構。
分佈式架構要納入被開發,首先要API。程序的最上層無非開發發佈,最原始的開發件叫API,最原始的部署件叫庫,傳統WEB和桌面分佈下,都有自己的方案。從本地組件到到分佈式組件,到接口到服務性API,到腳本(甚至開發件和部署件在腳本環境下最終做到了統一,這就是組件,demo即api,能在語言環境下動態運行services方式被識別為api的,都是組件),都要跨網絡和socket這層。WEB是直接整合HTTP。更通用的WEB是退一步將HTTP換成了websocket,可是於任何方案將API做成分佈式,都免不了要解決網絡這一層。
jupyter的架構最上層CS二端用消息通訊,消息是文本化的協議表示。更接近語言處理支持需要和持久化定義需要。比如json,xml-rpc,soap就是用對象化的方式來持久表示協議的方案。
jupyter基於消息,可用於BS,CS,它免HTTP是一種比HTTP WEB還要通用的通用分佈式CS協議。是另一種websocket之類的等價品。它使純粹一體化的CS式WEB變得可能,即jupyter WEB(jupyter console,qtconsole as common jupyter app based appbroswer)。甚至不用到websocket和jupyter notebook時免傳統瀏覽器。
第三,它增強了WEB等綜合通用分佈式APP的範疇,使任意程序變成page based applets。
這裡的APP用來指終端程序(VS庫框架等),用jupyter來構建WEB,代碼和運行可維持only in a page unit…發行單元以一體化的ipynb page(含界面+邏輯一體化不再是分散的html+服務端處理腳本)為單元。是富文本界面(js+.ipynb needed)和渲染過程的傳統WEB界面的等價品。而且,天然CS,no bs式的web可分離部署是個巨大優點( 有時候省事做站要求我們將邏輯後端和界面大量靜態資源的前端分開部署)。
綜合一,二,三,api的發行直接源於語言系統並如一所講提供了由任何.ipynb demolet組成的容器環境,能採用WEB開發架構且脫離瀏覽器的分佈式程序,這已經是個“通用分佈式”的WEB環境了,於此,jupyter做到並增強了WEB。能將任務jupyter支持下的語言系統的任何程序變成WEB架構。
一切的一切,是對於分佈式架構開發部署來說,jupyter的斷層和抽象切入面是:從語言層就集成cs和WEB支持就開始將自己化身為langsys based srv that micmicing a websrv,,所以免bs.免分佈式API..軟件界偉大抽象的二大特點,一是選擇正確的粒度選擇,另一個就是jupyter聰明的斷層,從精巧的切入面去正確的斷層抽象。當然這可能是jupyter設計者沒想到的而我只是個事後諸葛而已。
(此處不設回覆,掃碼到微信參與留言,或直接點擊到原文)