在与成百上千的开发者讨论的基础上,以及根据我们自己对于开发开放性网络的经验,我们得出了一整套提议的特性,以及一些优先级较高的目标:
- 方便使用——编辑器的用户体验不能是咄咄逼人的,而应该带来简单直接的代码感受。
- 实时协作——应该能很容易地与同事实时分享编码过程,并和一个甚至多个伙伴协作编码。
- 集成命令行——像vi和Emacs这样的工具已经证明了编辑器中集成命令行的威力;Bespin也需要一个命令行。
- 可扩展并自托管——Bespin的接口和功能应该高度可扩展,并且可以让用户很容易地通过Ubiquity——像命令或者插件API进行访问。
- 速度极快——如果编辑器不能保证运行流畅,编辑大尺寸文件仍有很好的反应速度,那它只是个玩具。
- 随处可访问——在任何地方,使用任何设备,通过任何现代标准兼容的浏览器,代码编辑器都应该运行自如。
我们看到了Bespin,问自己,如果Eclipse也能在这个领域有所作为岂不更棒?如果我们能使用已经存在的Eclipse插件实现一个Bespin服务器岂不更酷?
然后,就在两天的开发完成后,基于Eclipse的Bespin服务器就诞生了!
Simon Kaegi和我把自己锁在了一个屋子里,就这样开发出来了。现在,我们宣布开发结束,并把代码作为e4项目的一部分分享给任何感兴趣的人们。如果你想试试,请阅读这个wiki页。
Eclipse
IDE你是知道的,是个基于OSGi的应用程序,完全由组件构成(也叫做插件或者bundle)。这些组件中的大部分可以无显示地在服务器上运行,比如底
层的资源模型、增量Java编译器等等。使用无显示组件,可以很容易地实现Bespin客户端-服务器API。就跟Mozilla的Bespin服务器一
样,我们的服务器支持文件和文件夹的浏览,以及编辑文件。除了这些,我们还实现了显示编译错误和警告,并能使用匿名CVS从CVS服务器上检出项目。
既然应用程序不得不运行在网络上,而且源码就是最后执行的代码(Ruby是解释性的),那为什么不把IDE也放到网上呢?拥有了这些工具,在线的代码和运行时环境会让一些事情变得更加容易:
- 立刻开始工作:可以从任何地点即时访问到源代码。不需要搭建IDE。不需要搭建本地的RoR环境。不需要检出什么代码。你的数据就在那呢。
- 即时协作:创建一个开发者帐号。把登录页面的链接发给开发人员。马上开始协作。(我希望它以后能支持协作编辑)。
- 应用部署非常简单。不再需要寻找并配置一个合适的服务器。
- “托管一切”会带来一种“源码和托管”的混合物。想象一下,你可以找到一个很棒的web应用,只需要点击一下“部署并运行在我的帐户上”,就可以对它进行测试了。
这看起来对Ruby尤其合适,我正打算着测试一下。
那么,它如何应用于Java的web应用呢?
codepad.org是个在线编译器/解释器,也是个简单的协作工具。它是可以为你执行代码的pastebin。你粘贴一段代码,codepad运行它,然后返回给你一个简短的你可以用来分享的URL。你可以把这个URL贴在聊天工具或者邮件中,以求获得帮助或者给别人演示。或者仅仅是因为你没有方便的解释器,而需要执行一下你的代码。它在许多手机上运行得也很好。