zoukankan      html  css  js  c++  java
  • 原生 IDE 新军:JRuby 阵营的 RedCar,JavaScript 阵营的 Cloud9

    作者 Werner Schuster 译者 杨晨 发布于 2010年11月13日 下午6时40分

    除了Smalltalkers之外,动态语言程序员使用的工具和IDE等都是用底层语言编写的。但是是对于用户(例如开发者)来说,使用原生开发工 具是大有裨益的。例如如果编辑器和IDE是原生的话,这就意味着开发者能够即时扩展他们的工具,而不需要在另外一种语言和平台上浪费时间。Java开发者 现在有一大批Java原生IDE可供选择,而且均可以编写一些Java代码进行扩展。不过这种情况对于JavaScript和Ruby来说并不适用。 但是,两个新发布的IDE改变了这种现状:JavaScript原生IDECloud9和JRuby原生IDE RedCar

    Cloud9 - Javascript

    使用JavaScript和HTML编写编辑器和IDE在五年前还是一件很难想象的事情。但是在接下来的数年内,JavaScript VM变得更快,HTML的组件也有足够的能力构建复杂的编辑器。Mozilla程序员的编辑器Skywriter(前身是Bespin)就是使用Canvas元素和API来绘制的。

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

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

    Cloud9使用ACE作为编辑器组件。Skywriter 使用Canvas和ACE来绘制编辑器以及操作DOM。编辑器的窗格是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格式。

    Skywriter和Cloud9团队最近声称将兴趣放在协作和开发插件共享,特定语言功能等特性。要是这是真的的话,那就又避免了一场IDE战争。

    Cloud9 IDE博客提供了新版本的更新信息。GitHub是代码托管的好地方。Cloud9 IDE可以能够通过代码下载安装,在后端服务器运行Node.js和在浏览器中直接安装。

    RedCar - JRuby

    RedCar是一个可扩展的编辑器,以发展成为IDE为目标。它是使用Ruby,更准确的说是JRuby编写的。RedCar使用SWT作为GUI框架,这样使其能够跨平台使用。

    内建的REPL使得程序员能够通过API来探索和发现更多的功能,现存的插件能够帮助程序员更加简单地扩展系统。实际上,RedCar也能够使用HTML/JavaScript进行扩展,而不是仅仅只使用SWT组件或者绘图API。

    TextMate用户听到RedCar能够支持TextMate插件将会非常高兴,因为这将使得迁移工作更加轻松。

    对RedCar的深入介绍以及如何扩展之类的信息都可以在InfoQ对RedCar创建者Dan Lucraft的采访记录中找到。RedCar Twitter账户或者博客都是获取这些信息的好场所。RedCar还可以和Ruby Gem共存。

    转自:http://www.infoq.com/cn/news/2010/11/cloud9ide-redcar-javascript-ruby


    本文是使用 B3log Solo简约设计の艺术 进行同步发布的
  • 相关阅读:
    OnEraseBkgnd、OnPaint与画面重绘
    .编译ADO类DLL时报错的解决方案
    VC列表框样式
    Codeforces 131D. Subway 寻找环树的最短路径
    Codeforces 103B. Cthulhu 寻找奈亚子
    Codeforces 246D. Colorful Graph
    Codeforces 278C. Learning Languages 图的遍历
    Codeforces 217A. Ice Skating 搜索
    Codeforces 107A. Dorm Water Supply 搜图
    Codeforces 263 D. Cycle in Graph 环
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6468427.html
Copyright © 2011-2022 走看看