HBuilder是数字天堂出品的一款支持HTML5的Web开发IDE,InfoQ中文站独家专访了数字天堂的创始人王安,就开发者关心的问题一一作了解答。
记者:HBuilder作为一个HTML5的IDE,都能做什么?主要面向哪些开发者?
王安:HBuilder是我们认为当前***的web开发工具。它能大幅提升开发效率,对程序员也设计了更人文关怀的UI,它包括最全面的语法库和浏览器兼 容性数据。HBuilder是面向追求效率的极客开发者的,比如HBuilder强调的手不离键盘、飞一样编码。与之相对应的另一面代表是 dreamweaver,dreamweaver拥有可视化拖拉拽布局页面的设计器,更多的是面向设计师或初学者。
记者:在HBuilder开发的过程中,你们参考了哪些前人的解决方案?能介绍一下HBuilder的实现方案么?比如,采用了什么语言编写,是否基于Eclipse等开源IDE的架构,等等。
王安:HBuilder有4种编程语言,Java、Web、C、Ruby。里面用到了Eclipse,这让我们省了不少事,可以把精力用到更多创新的功能 上。至于为什么编程语言这么多,其实我们团队都是一群会多种编程语言的极客,我们清楚每个语言的优劣,每个功能该用什么语言做就用什么语言做。举个例 子,HBuilder的启动速度是3秒,如果全是基于Java的Eclipse,是不可能做到的。并且我们的每种编程语言之间都有桥来保障底层接口的通畅 度,不会造成混乱。
记者:相比之前那些工具,HBuilder的优势是什么?
王安:我们认为是全面超越竞争对手的。当然优势那么多,最值得记住的优势还是那4点:
- 最快的开发工具,五大助手大幅提升编码效率
- 绿柔主题,保护健康
- 最全的语法库
- 最全的浏览器兼容性数据
记者:在HBuilder的实现过程中,你们遇到了哪些问题?是如何解决的?
王安:Web IDE是所有IDE中最难做的,因为Web有3个特点:Web太灵活了、规范太多了、更新太快了。我想这些难题也是这些年Web IDE进化比较慢的一个重要原因。
- 以颜色举例,开发者写成black、#000000、#000、RGB(0,0,0)...我们都得能识别。一个变量,一会是字符串,一会就可能变成数字,这都给我们造成了很大的工作量,要判断非常多情况。
- 目前全世界没有一个地方拥有所有Web语法。我们动用了几十种手段才收集了3万多语法,包括W3C的html、Javascript、 CSS的正式标准和推荐标准...,ECMAScript中浏览器支持的部分,还有各大浏览器的扩展语法。我们目前拥有最全的语法库,但我相信也还不是全 部web语法,所以我们还建了UGC,让用户来反馈数据。
- 我们都知道Web标准的发展速度是非常快的,去年底HTML5推荐标准出台,今年前段时间HTML5.1也发布了。而至于各个浏览器的扩 展语法,几乎每次浏览器版本升级,都会产生新的标签或语法。而浏览器升级的速度也是非常快的。这就要求Web IDE必须抛弃瀑布式开发流程,引入互联网的快速迭代理念。其实HBuilder整个就是一个服务,而不是一个单机工具,我们称之为live service,或者叫HBuilder是活的。
记者:从截图看起来,HBuilder似乎是一个Windows客户端。HBuilder是否会提供Mac、Linux或Web版,乃至于移动平台?
王安:HBuilder的Windows版本相对比较成熟,MAC版本也基本开发完,稍晚一点也会发出来。Linux版本要看需求的踊跃程度了,毕竟有很 多更有意义的创新功能还在排队中。纯Web版目前不考虑,响应速度还不够快。至于移动平台,敲代码太不方便了,主工程不会有移动版本,但是以后的问答功能 上线后会有移动版本。
记者:HBuilder在代码调试方面有哪些特点?自身使用了哪种JS和渲染引擎,是否支持开发者在多钟浏览器平台上调试和兼容性测试?
王安:看下界面会更直观。目前点击运行菜单如下。 如果本机没装,会提示下载地址。点击后可以直接启动相应的浏览器。由于HBuilder内置了webserver,所以可以直接运行网站工程,而不是使用file:///C:那种方式。
比较有特点还有手机的真机连调,插上数据线后,在HBuilder中点真机运行,可以直接在手机上看效果。在HBuilder中保存代码更改,手机会自动刷新界面。
至于调试,我们有计划,但本版不会包含。因为目前大多数Web工程师都习惯于直接用浏览器来调试,集成调试在IDE里确实方便了一些,但并非杀手功能。
记者:在企业级Web开发中,开发人员需要对JS\CSS代码做压缩打包服务,HBuilder是否提供相应的支持?代码重构支持方面做了哪些工作?
王安:压缩打包的问题与调试类似,都是有计划但***版不包含,因为他们都属于方便但不是杀手功能。目前开发者有很多选择,比如YUI或GCC,把HBuilder里的工程放到yui下再压一次就好了。YUI有Eclipse插件,可以装在HBuilder中。
关于重构,这个是一款好IDE不可或缺的,HBuilder的重构还是很强大的。不管是变量的重命名、删除,还是文件的重命名、删除、移动,都可以进行重构。比如把一张图片从A目录移动到B目录,各个层级的页面对该图片的引用都会重新匹配。
记者:HBuilder的发展路线图是什么?未来有哪些重量级特性?
王安:HBuilder致力于给开发者提供***的Web开发工具。我们会搭建一个需求调研系统,把一些候选项列出来让开发者投票,看他们更需要哪个。目前已经比较明确要做的包括:
- Mac版本支持
- 服务器端语言(PHP,Node.js)强化集成。虽然这些服务端语言也有Eclipse插件,但目前这些插件调不了我们的代码助手。
- PC浏览器的边改边看模式。目前保存代码时手机端可以自动刷新,但PC上还不行。我们希望左边编辑代码,右边就能实时看到效果。
- 画中画:用户可以把一段代码固定在屏幕的小窗里,在另一处编辑代码时一直参考看着这段代码的实现。还可以直接更改小窗里的代码。
- 发行(包括压缩、混淆)
- 断点调试
记者:HBuilder是免费的,在这种模式下如何维持长期稳定的发展?
王安:DCloud走的是互联网模型,先做用户,找投资,然后再考虑商业模式。我们现在的目的就是HBuilder成为全世界Web工程师都在用的工具。 当我们拥有数百万开发者时,我们不担心自己设计不出来共赢商业模式。就像Facebook在做到上千万用户之前没人想商业模式,之后一群聪明的高管花了一 个月设计共赢商业模式,结果很好。
王安透露,目前HBuilder在实施公测。邀请的公测用户是那些确实对HBuilder感兴趣,为了追求效率愿意接受一个可能还有bug的产品, 并愿意反馈问题给我们的热心用户。计划近期发给首批试用者。根据试用反馈的情况来调整更大规模开放的时间。预计在9月份把质量水平提升到可规模发行。但即便是更大规模的发行,并不代表所有人都可以随意使用,有可能是类似于Gmail的邀请码方式,由早期的用户分发他的邀请码给朋友。