直到最近,嚴(yán)肅的開發(fā)者也許還沒有考慮基于云的集成開發(fā)環(huán)境(IDE)。但是底層技術(shù)的改進(jìn)有望令基于云的IDE成為許多開發(fā)工具必須重視的競爭對手。“基于云的IDE是我孩子的未來,是企業(yè)的未來,因?yàn)榇蠹以僖矝]有閑功夫去安裝東西了,”獨(dú)立云架構(gòu)師及Teaching Kids Programming的創(chuàng)始人Lynn Langit如是說。
Langit大概是在1年前開始與基于云的IDE Codenvy合作的。她對后者在自己的愜意架構(gòu)咨詢中發(fā)揮的潛在作用感興趣。“作為架構(gòu)師我不必為客戶設(shè)置自己的環(huán)境。只需建個(gè)Codenvy項(xiàng)目然后跟它們共享即可。”
Codenvy是在Google云上做了一些生產(chǎn)工作并研究了一些基于云的IDE后發(fā)現(xiàn)了Codenvy的。“大多數(shù)基于瀏覽器的IDE只支持JavaScript和Python。Codenvy支持Java和C++這兩點(diǎn)我很喜歡,”她說。
云工作空間已雕琢成器
一開始她發(fā)現(xiàn)Codenvy還略顯粗糙,但是后者對于她要求的更好數(shù)據(jù)庫集成能力的需求反饋速度快得驚人。這使得基于云的IDE變得可行,讓開發(fā)企業(yè)應(yīng)用也具備了很高的生產(chǎn)力。
利用基于云的IDE其中最大的挑戰(zhàn)之一是可能的時(shí)延會(huì)拖慢開發(fā)速度。程序員受益于在錄入時(shí)自動(dòng)改變代碼顏色的智能感知之類功能帶來的實(shí)時(shí)反饋。這樣的話馬上發(fā)現(xiàn)問題可以變得更加容易。瀏覽器實(shí)現(xiàn)的改進(jìn)也讓這個(gè)不大成為問題了,因?yàn)樗迅m當(dāng)?shù)闹悄芨兄壿嬕约坝脩趔w驗(yàn)元素緩沖進(jìn)瀏覽器本身。“我已經(jīng)無法分辨它跟桌面編輯器的區(qū)分了,”Langit說。
但是跟原生IDE如Eclipse相比,Codenvy仍然存在限制。Codenvy還沒有重構(gòu),Langit說。但另一方面,它也包含了許多開發(fā)者需要的功能,如構(gòu)建、運(yùn)行及調(diào)試。
安裝更快 協(xié)作更好
Langit還決定利用Codenvy來為小孩的高中課程開發(fā)一個(gè)基于瀏覽器的IDE和工作流。這很重要,因?yàn)閷W(xué)生使用的計(jì)算機(jī)安裝原生軟件并不容易。有個(gè)基于瀏覽器的IDE還能讓與之程序環(huán)境更加簡單,這樣孩子們馬上就可以開始寫代碼。
基于瀏覽器的IDE也讓開發(fā)者在做不同的開源項(xiàng)目時(shí)切換工作區(qū)更加容易,Codenvy CEO Tyler Jewell說。開發(fā)者只需開啟一個(gè)新的預(yù)置環(huán)境即可,他說。“開發(fā)者的配置生命周期是如此的無所不在,以至于部分人報(bào)告說他們花費(fèi)了一半的時(shí)間去處理這件事,也就是說只有一半時(shí)間在編碼。”
Langit認(rèn)為,基于云的IDE也使得擴(kuò)充和促進(jìn)更大團(tuán)隊(duì)利用同一環(huán)境更加容易。當(dāng)大型團(tuán)隊(duì)訪問同意本地?cái)?shù)據(jù)庫時(shí)開發(fā)會(huì)放緩。但是云數(shù)據(jù)庫可以自動(dòng)根據(jù)需要伸縮。“云IDE令開發(fā)者更有效率,因?yàn)樗麄儾恍枰却恍〇|西,”她說。
基于云的IDE還可以讓協(xié)作開發(fā)實(shí)踐更加容易。預(yù)置的GitHub工作流確保了團(tuán)隊(duì)在恰當(dāng)?shù)姆种瞎ぷ?。此外,開發(fā)者工作區(qū)之間的實(shí)時(shí)溝通可以讓敏捷方法論的實(shí)施以及配對編程實(shí)踐更加簡單。
新項(xiàng)目推動(dòng)云IDE
Eclipse Foundation開源社區(qū)致力于將標(biāo)準(zhǔn)化與和諧帶給基于云的IDE,Eclipse Foundation的營銷總監(jiān)Ian Skerrett說。Codenvy把95%的功能都帶到了Che項(xiàng)目上。這就好比是云端的一個(gè)基于Java的編譯器,他說。Che讓組織根據(jù)一套大家都需要的共同的東西設(shè)置工作區(qū)。
Flux做的是一個(gè)允許開發(fā)者在機(jī)器(無論采用的是基于Web的IDE還是桌面IDE)之間遷移的框架。“這就像是開發(fā)者的Dropbox,工作區(qū)可以利用Flux進(jìn)行遷移,” Skerrett說。
與此同時(shí),Orion項(xiàng)目則專注于創(chuàng)建一個(gè)集成了JavaScript的云環(huán)境。通過它可以利用若干平臺(tái)即服務(wù)提供商,包括IBM Bluemix以及像CodeFresh這樣更小一點(diǎn)的初創(chuàng)企業(yè)。CodeFresh的聯(lián)合創(chuàng)始人兼CEO Raziel Tabib說,這一方案消除了開發(fā)、測試以及部署應(yīng)用的所有摩擦。“同一應(yīng)用可以通過Docker以平滑的方式轉(zhuǎn)入測試、展現(xiàn)以及生產(chǎn),”他說。