如何轻松和安全地构建的满足合规要求的智能产品,实现业务需求?4月26日,告诉你答案! 了解详情
写点什么

原生 IDE 新军:JRuby 阵营的 RedCar,JavaScript 阵营的 Cloud9

  • 2010 年 11 月 13 日
  • 本文字数:1673 字

    阅读完需:约 5 分钟

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

2010 年 11 月 13 日 18:402505
用户头像

发布了 90 篇内容, 共 29.9 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL next-key lock 加锁范围总结

程序员小航

MySQL 索引 锁机制

深度分享丨如何使用微细分仪打造金融场景下的战术级客户分群

索信达控股

大数据 金融科技 用户细分 客户数据平台 客户画像

vue3 效率提升主要表现在哪些方面?

法医

大前端 Vue 3 6月日更

开发感想 基于8051的数据采集系统(人文向)

万里无云万里天

经验总结 6月日更

react源码解析8.render阶段

全栈潇晨

React react源码

安卓内存监控悬浮窗,算法题+JVM,知识点总结+面试题解析

欢喜学安卓

android 程序员 面试 移动开发

上新!H3C Magic NX54双频5400M Wi-Fi 6路由器:549元

科技热闻

AI缘起——达特茅斯会议

行者AI

人工智能

Service worker 的概念和用法

编程三昧

大前端 ServiceWorker

Java 并发编程—— Exchanger

Antway

6月日更

企业管理软件开发新模式:抛开旧思维,轻松做系统

雯雯写代码

软件开发 企业管理

Go timer 是如何被调度的?

HHFCodeRv

Go 语言

百度Geek们教你怎样成为复盘高手

百度Geek说

读深入ES6记[一]

蛋先生DX

ES6 6月日更

Bzz云算力挖矿app开发,Bzz分币系统搭建

13823153121

如何看懂常用原理图符号、如何阅读原理图

不脱发的程序猿

电路设计 原理图符号 阅读原理图

智能家居弱电布线设计注意事项

不脱发的程序猿

智能家居 弱点布线

真香!SpringBoot+SpringCloud Alibaba全套脑图+学习笔记+大厂面试题

Java架构追梦

Java 架构 微服务 springboot SpringCloud

Chia奇亚挖矿app开发|系统搭建

開發I3O6O643Zq7

挖矿 #区块链# IPFS怎么挖矿 Chia奇亚挖矿

阿里云,让「服务」成为一种先进生产力

ToB行业头条

云计算 阿里云

独热编码&词向量

Qien Z.

nlp 6月日更 独热编码 词向量 句子向量

【LeetCode】汉明距离Java题解

HQ数字卡

算法 LeetCode 6月日更

分布式管理员zookeeper

卢卡多多

zookeeper CAP 6月日更

不看绝对血亏!跳槽面试大厂被拒,2021最新版!

欢喜学安卓

android 程序员 面试 移动开发

数仓建设之路(一)

undefined

美团主办国际顶会ICCV 2021研讨会,食品视觉领域顶级挑战赛开启报名

科技热闻

双向链表,还能这么实现

实力程序员

公安警情研判分析系统搭建,警情可视化指挥调度

13823153121

云图说|OLAP开源引擎的一匹黑马,MRS集群组件之ClickHouse

华为云开发者社区

Clickhouse MRS 华为云 云图说 OLAP开源引擎

【Flutter 专题】126 图解自定义两侧对齐 ACETabBar 标签导航栏

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

视频监控系统供电方式及选择方法

不脱发的程序猿

视频监控系统 供电方式 智能监控

原生IDE新军:JRuby阵营的RedCar,JavaScript阵营的Cloud9_Java_Werner Schuster_InfoQ精选文章