今天无意中浏览到一个网站,cloud9 ide,从字面意思理解就是云集成开发环境,从名字上来看就已经吸引了我的注意,然后就顺便了解了一下。

Cloud9 IDE介绍

 

 

Cloud9 IDE是一个基于Node.JS构建的JavaScript程序开发Web IDE。它拥有一个非常快的文本编辑器支持为JS, HTML, CSS和这几种的混合代码进行着色显示。Cloud9 IDE还为node.js和Google Chrome集成调试器可以在IDE中启动、暂停和停止。能够在云计算环境中测试和部署你的代码。使用WebDAV,它还可以连到远程工作台。Cloud9 IDE拥有一个插件系统用来扩展现有功能,当前该IDE已经捆绑好几个插件。

从界面上看是不是很酷,已经实现了桌面ide的一部分功能了。

Node.js介绍

Node.js是一套用来编写高能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设你是在POSIX环境下运行它Linux 或 Mac OS X。如果你是在Windows下,那就需要安装MinGW以获得一个仿POSIX的环境。在Node中,Http是首要的。Node为创建http服务器作了优化,所以你在网上看到的大部分示例和库都是集中在web上(http框架、模板库等)。
 

这个软件被一个网站评为2011最佳开源软件之一。可见其中的分量,据说具有极高的并发量。当然也要看应用了。

 

Cloud9 ide项目最初的时候,Cloud9仅仅是重新组织了一下Eclipse的视觉元素,而且它也同样使用了Eclipse的插件思想。所有的功能都是由插件来完成 的,包括编辑器,视图,行为等。JavaScript插件的一个好处是可以轻松处理JSON格式的元数据描述字符,让插件开发者省心不少。

从功能上来说,至少和成熟的IDE相比功能还是不够的。不过现在它已经有很多很方便的功能了。JavaScript Debugging已经支持GUI、Node.js脚本调试的连接器以及Chrome runtimes,并且在GUI中能够挂起,恢复和设置断点。这个特性的关键在于使用了JavaScript VM的内建调试器。

Cloud9使用ACE作为编辑器组件。编辑器的窗格是DIV元素;ACE能够决定在编辑器中哪些能够显示,把这些内容作为DIV元素渲染 然后加入到编辑器的DIV中。ACE使用多层DIV来渲染编辑器中不同的元素,尤其是光标和选择高亮的实现。
看起来现在的HTML渲染器和DOM已经足够强大,能够让ACE高速运行,给用户感觉是像一个原生的编辑器组件。

对编辑器组件大有裨益的一个HTML5 API是Web Worker API,这个组件允许JavaScript代码能够新建JavaScript进程,而不是所谓的无共享的进程,它们之间的通信是使用JSON格式的数据。 在程序员的编辑器中,在后台运行任务是非常重要的;每次敲击键盘或者操作都会产生大量的工作。使用正则表达式的语法高亮就是其中之一,但是,现代编辑器需 要解析源代码来做语义高亮,例如,用不同颜色表示局部变量和全局变量,静态方法和虚拟方法等。其他的特性还包括代码折叠支持等。可以聪明地通过使用 setTimeout来在前台线程中运行这些任务。Web工程师从而不需要破解内部结构,而能够直接在后台运行额外的任务,充分利用多核结构。

虽然名字中带有云的概念,但是Cloud9还可以默认在本地安装和运行,并且可以访问本地文件系统。它在后端使用JavaScript编写的Node.js文件来通过socket进行通信。Node.js将文件内容封装成jsdav库所支持的WebDAV格式。

ACE介绍

ACE是一个独立的JavaScript编写的代码编辑器,是创建一个基于浏览器的编辑器TextMate,VIM或Eclipse,提供和本地编辑功能类似,可用性和性能匹配和扩展。它可以很容易地嵌入到任何网页或JavaScript应用程序。
特点
  • 语法高亮
  • 自动缩进和升级
  • 一个可选的命令行
  • 处理巨大的文件(100,000行,是没有问题的)
  • 完全可定制的,包括VI和Emacs模式的按钮绑定
  • 主题(TextMate的主题可以导入)
  • 用正则表达式搜索和替换
  • 突出显示匹配的括号
  • 软标签和真正的标签之间切换
  • 显示隐藏字符
  • 使用鼠标拖放文本
  • 换行
  • 非结构化/用户代码折叠
  • 语法检查器(目前JavaScript / CoffeeScript的)

RStudio、Qooxdoo playgroundNeutron IDE、cloud9 ide等都用的这个编辑器。

看一下类似的界面感觉是不是很酷啊。
按照这个趋势,浏览器的作用是越来越大的,大有可取代大部分桌面功能的趋势了。不知道未来是不是这样,也许是把。