專訪王安:HTML5開發(fā)工具HBuilder的特別之處
HBuilder是數(shù)字天堂出品的一款支持HTML5的Web開發(fā)IDE,InfoQ中文站獨家專訪了數(shù)字天堂的創(chuàng)始人王安,就開發(fā)者關心的問題一一作了解答。
記者:HBuilder作為一個HTML5的IDE,都能做什么?主要面向哪些開發(fā)者?
王安:HBuilder是我們認為當前***的web開發(fā)工具。它能大幅提升開發(fā)效率,對程序員也設計了更人文關懷的UI,它包括最全面的語法庫和瀏覽器兼 容性數(shù)據(jù)。HBuilder是面向追求效率的極客開發(fā)者的,比如HBuilder強調(diào)的手不離鍵盤、飛一樣編碼。與之相對應的另一面代表是 dreamweaver,dreamweaver擁有可視化拖拉拽布局頁面的設計器,更多的是面向設計師或初學者。
記者:在HBuilder開發(fā)的過程中,你們參考了哪些前人的解決方案?能介紹一下HBuilder的實現(xiàn)方案么?比如,采用了什么語言編寫,是否基于Eclipse等開源IDE的架構(gòu),等等。
王安:HBuilder有4種編程語言,Java、Web、C、Ruby。里面用到了Eclipse,這讓我們省了不少事,可以把精力用到更多創(chuàng)新的功能 上。至于為什么編程語言這么多,其實我們團隊都是一群會多種編程語言的極客,我們清楚每個語言的優(yōu)劣,每個功能該用什么語言做就用什么語言做。舉個例 子,HBuilder的啟動速度是3秒,如果全是基于Java的Eclipse,是不可能做到的。并且我們的每種編程語言之間都有橋來保障底層接口的通暢 度,不會造成混亂。
記者:相比之前那些工具,HBuilder的優(yōu)勢是什么?
王安:我們認為是全面超越競爭對手的。當然優(yōu)勢那么多,最值得記住的優(yōu)勢還是那4點:
- 最快的開發(fā)工具,五大助手大幅提升編碼效率
- 綠柔主題,保護健康
- 最全的語法庫
- 最全的瀏覽器兼容性數(shù)據(jù)
記者:在HBuilder的實現(xiàn)過程中,你們遇到了哪些問題?是如何解決的?
王安:Web IDE是所有IDE中最難做的,因為Web有3個特點:Web太靈活了、規(guī)范太多了、更新太快了。我想這些難題也是這些年Web IDE進化比較慢的一個重要原因。
- 以顏色舉例,開發(fā)者寫成black、#000000、#000、RGB(0,0,0)...我們都得能識別。一個變量,一會是字符串,一會就可能變成數(shù)字,這都給我們造成了很大的工作量,要判斷非常多情況。
- 目前全世界沒有一個地方擁有所有Web語法。我們動用了幾十種手段才收集了3萬多語法,包括W3C的html、Javascript、 CSS的正式標準和推薦標準...,ECMAScript中瀏覽器支持的部分,還有各大瀏覽器的擴展語法。我們目前擁有最全的語法庫,但我相信也還不是全 部web語法,所以我們還建了UGC,讓用戶來反饋數(shù)據(jù)。
- 我們都知道Web標準的發(fā)展速度是非??斓?,去年底HTML5推薦標準出臺,今年前段時間HTML5.1也發(fā)布了。而至于各個瀏覽器的擴 展語法,幾乎每次瀏覽器版本升級,都會產(chǎn)生新的標簽或語法。而瀏覽器升級的速度也是非??斓摹_@就要求Web IDE必須拋棄瀑布式開發(fā)流程,引入互聯(lián)網(wǎng)的快速迭代理念。其實HBuilder整個就是一個服務,而不是一個單機工具,我們稱之為live service,或者叫HBuilder是活的。
記者:從截圖看起來,HBuilder似乎是一個Windows客戶端。HBuilder是否會提供Mac、Linux或Web版,乃至于移動平臺?
王安:HBuilder的Windows版本相對比較成熟,MAC版本也基本開發(fā)完,稍晚一點也會發(fā)出來。Linux版本要看需求的踴躍程度了,畢竟有很 多更有意義的創(chuàng)新功能還在排隊中。純Web版目前不考慮,響應速度還不夠快。至于移動平臺,敲代碼太不方便了,主工程不會有移動版本,但是以后的問答功能 上線后會有移動版本。
記者:HBuilder在代碼調(diào)試方面有哪些特點?自身使用了哪種JS和渲染引擎,是否支持開發(fā)者在多鐘瀏覽器平臺上調(diào)試和兼容性測試?
王安:看下界面會更直觀。目前點擊運行菜單如下。 如果本機沒裝,會提示下載地址。點擊后可以直接啟動相應的瀏覽器。由于HBuilder內(nèi)置了webserver,所以可以直接運行網(wǎng)站工程,而不是使用file:///C:那種方式。
比較有特點還有手機的真機連調(diào),插上數(shù)據(jù)線后,在HBuilder中點真機運行,可以直接在手機上看效果。在HBuilder中保存代碼更改,手機會自動刷新界面。
至于調(diào)試,我們有計劃,但本版不會包含。因為目前大多數(shù)Web工程師都習慣于直接用瀏覽器來調(diào)試,集成調(diào)試在IDE里確實方便了一些,但并非殺手功能。
記者:在企業(yè)級Web開發(fā)中,開發(fā)人員需要對JS\CSS代碼做壓縮打包服務,HBuilder是否提供相應的支持?代碼重構(gòu)支持方面做了哪些工作?
王安:壓縮打包的問題與調(diào)試類似,都是有計劃但***版不包含,因為他們都屬于方便但不是殺手功能。目前開發(fā)者有很多選擇,比如YUI或GCC,把HBuilder里的工程放到y(tǒng)ui下再壓一次就好了。YUI有Eclipse插件,可以裝在HBuilder中。
關于重構(gòu),這個是一款好IDE不可或缺的,HBuilder的重構(gòu)還是很強大的。不管是變量的重命名、刪除,還是文件的重命名、刪除、移動,都可以進行重構(gòu)。比如把一張圖片從A目錄移動到B目錄,各個層級的頁面對該圖片的引用都會重新匹配。
記者:HBuilder的發(fā)展路線圖是什么?未來有哪些重量級特性?
王安:HBuilder致力于給開發(fā)者提供***的Web開發(fā)工具。我們會搭建一個需求調(diào)研系統(tǒng),把一些候選項列出來讓開發(fā)者投票,看他們更需要哪個。目前已經(jīng)比較明確要做的包括:
- Mac版本支持
- 服務器端語言(PHP,Node.js)強化集成。雖然這些服務端語言也有Eclipse插件,但目前這些插件調(diào)不了我們的代碼助手。
- PC瀏覽器的邊改邊看模式。目前保存代碼時手機端可以自動刷新,但PC上還不行。我們希望左邊編輯代碼,右邊就能實時看到效果。
- 畫中畫:用戶可以把一段代碼固定在屏幕的小窗里,在另一處編輯代碼時一直參考看著這段代碼的實現(xiàn)。還可以直接更改小窗里的代碼。
- 發(fā)行(包括壓縮、混淆)
- 斷點調(diào)試
記者:HBuilder是免費的,在這種模式下如何維持長期穩(wěn)定的發(fā)展?
王安:DCloud走的是互聯(lián)網(wǎng)模型,先做用戶,找投資,然后再考慮商業(yè)模式。我們現(xiàn)在的目的就是HBuilder成為全世界Web工程師都在用的工具。 當我們擁有數(shù)百萬開發(fā)者時,我們不擔心自己設計不出來共贏商業(yè)模式。就像Facebook在做到上千萬用戶之前沒人想商業(yè)模式,之后一群聰明的高管花了一 個月設計共贏商業(yè)模式,結(jié)果很好。
王安透露,目前HBuilder在實施公測。邀請的公測用戶是那些確實對HBuilder感興趣,為了追求效率愿意接受一個可能還有bug的產(chǎn)品, 并愿意反饋問題給我們的熱心用戶。計劃近期發(fā)給首批試用者。根據(jù)試用反饋的情況來調(diào)整更大規(guī)模開放的時間。預計在9月份把質(zhì)量水平提升到可規(guī)模發(fā)行。但即便是更大規(guī)模的發(fā)行,并不代表所有人都可以隨意使用,有可能是類似于Gmail的邀請碼方式,由早期的用戶分發(fā)他的邀請碼給朋友。