写点什么

Glimmer—使用 JRuby 和 SWT 开发 Eclipse RCP 应用

  • 2008-02-26
  • 本文字数:1500 字

    阅读完需:约 5 分钟

JRuby 可以使用 Java 的 GUI 库,因而诞生了很多访问JRuby GUI APIs 的方式 Glimmer 就是其中一个使用了SWT工具集的后起之秀。

我们采访了 Glimmer 的创建者 Andy Maleh ,以此来了解该项目及其未来发展趋势。Andy 这样论述 Glimmer 背后的设计原则说:

Glimmer 起初的目标是通过一个健壮的平台、独立的 UI 技术来简化使用 Ruby 开发桌面应用的过程。Eclipse SWT 正好符合上述要求,因此在对 Ruby 的 JRuby 实现过程中它得到了重用。 Glimmer 的 API 设计遵循以下原则:

  • 简明而不重复
  • 以最小的代价去完成任务
  • 规则优于配置
  • 对 SWT 开发者友好

此外,API 的设计充分利用了 Ruby 的每个语言技术优势来简化桌面应用开发。构建式语法就是上述技术之一,开发者利用该技术构建桌面应用的界面就像使用 HTML 来构建 web 界面一样。这是通过编写与界面相匹配的代码来实现的。

然而,Glimmer 的目标超出了这个范畴。例如,Glimmer 拥有内建的数据绑定支持以及可定制的默认设置。

Glimmer 不仅在语法上求简,在架构上也是。它很容易扩展,而且无须开发者对要增加的关键字硬编码。这实际上也是为什么 Glimmer 能够支持第三方小部件的原因。

JFace 是构建在基本的 SWT 部件之上的一套组件,Glimmer 也一样:

Glimmer 现在与 JFace 协同工作。事实上,只要有构造方法,它就可以支持任何 SWT/JFace 组件的定制。Glimmer 还可以用来构建如视图和编辑器这样的 RCP UI 组件。在我刚着手开发 Glimmer 的数据绑定支持时,我确实曾考虑过重用 JFace 的数据绑定框架。然而,最新的 API 需要调用静态类型的方法,这与 Ruby 的动态特性背道而驰,因此在 Ruby 中从头开始开发数据绑定支持可能会更简单。

查看 Glimmer 的数据绑定方式 来了解更多。

GUI 库非常重要的一个方面是组件布局,Glimmer 当然也没有忽视这一点:

Glimmer 对组合部件如 Shell,Composite 和 Group 有非常棒的默认布局支持。例如在声明一个 Composite 时,常用的 GridLayout 就会作为其默认布局。当然也可以根据需要改变该默认的布局。

当被问及 Glimmer 的现有特性及未来计划时,Andy 说:

Glimmer 现在支持:

  • 以合适的默认值对 SWT 和 JFace 组件进行渲染,这包括 Shell、Composite、Group、Text、Button、Spinner 以及 Label
  • Text、Spinner、Check-box Button、Radio Button 和 Table 的数据绑定
  • 对于新的关键字通过编写命令处理器来扩充语法的能力

在不久的将来,Glimmer 将对其他部件提供数据绑定支持,例如:Tree、Combo 和 List,同时还会对 SWT 和 JFace 中其他的部件提供默认值。

未来计划包括:

  • 探索简化 RCP 开发的方案
  • 当 SWT 提供对 Ajax 的支持时,增加拥有 Ajax 组件的 Rails 支持

Glimmer 被提议将其作为 Eclipse 项目。Andy 解释了背后的原因:

创建 Eclipse 项目有几个动因:

  • 通过 Eclipse 社区的帮助提高 Glimmer 的健壮性和可靠性
  • 从经验丰富的 Eclipse 开发者那里获得反馈
  • 提升知名度,获取更广泛的支持

在简化使用 Ruby 进行 Eclipse 开发上,GUI DSL 是一个好的开始,但仅仅是冰山一角。未来的计划确定会包括探索如何简化 RCP 的开发,使用 JRuby 脚本来创建 Eclipse 插件也可能会被列入计划。

我尚且还没有仔细思考目前插件开发中存在的问题,但有两个地方可能会从 Ruby 的表达式语法中获益,那就是扩展点定义及插件的配置和集成。

查看英文原文: Glimmer - using JRuby and SWT for Eclipse RCP apps - - - - - -

译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于 Java 轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的 J2EE 培训讲师经历。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2008-02-26 01:161190
用户头像

发布了 88 篇内容, 共 259.7 次阅读, 收获喜欢 8 次。

关注

评论

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

程序员的护城河是什么 ?

代码生成器研究

低代码技术之争:表单驱动和模型驱动,谁更能代表未来的方向?

代码生成器研究

PingCAP 荣获亚马逊云科技 2023 年度合作伙伴奖项

编程猫

一款LED段码显示屏驱动芯片方案

芯动大师

程序员,你会尝试一门新的编程语言吗?

代码生成器研究

渗透率不到5%,低代码怎么就不受企业待见

代码生成器研究

“通识+产业”大模型,“Alaya元识”的赋能路径

九章云极DataCanvas

RightFont for Mac:优雅管理,字体无忧

晴雯哥

瑞云科技参与《数字孪生世界白皮书》编写,实时云渲染助力数字孪生

3DCAT实时渲染

数字孪生 云渲染 实时渲染

TG Pro for mac温度和风扇速度控制工具

加油,小妞!

TG Pro 下载 TG Pro

8个程序员常用的开发工具,各位老铁请收好!

伤感汤姆布利柏

低代码 开发工具

编程到底难在哪里?

代码生成器研究

TableAgent:首个国产可私有部署的企业级Code Interpreter

九章云极DataCanvas

SQL HAVING 子句详解:在 GROUP BY 中更灵活的条件筛选

小万哥

MySQL 数据库 程序员 sql 后端开发

视频素材传输慢?大文件传输软件一步到位

镭速

大文件传输 大文件传输软件

Whimsical:在线协作必备工具!一文弄懂功能 | 使用场景 | 优势 | 替代软件推荐

彭宏豪95

效率工具 科技 在线白板 办公软件 在线协作

月薪两万,大厂疯抢AI数据标注员

自象限

大模型

ps 2024 Mac破解版-Photoshop 2024 (ps) for Mac v25.1正式版,无限期激活使用

晴雯哥

滴滴、阿里云、语雀相继宕机,损失巨大,软件的高可用失效了么?

极狐GitLab

阿里云 高可用 滴滴 geo

简便的看图软件:Pixea激活版

胖墩儿不胖y

Mac软件 看图软件 看图工具

编程需要天分吗?

代码生成器研究

一切为了应用!九章云极DataCanvas大模型系列成果重磅发布!

九章云极DataCanvas

CI/CD 最佳实践,让研发团队效率起飞!

极狐GitLab

DevOps 敏捷开发 持续集成 CI/CD 持续交付

Mac写作工具:WonderPen for Mac最新 「终端激活」

加油,小妞!

WonderPen妙笔 WonderPen

【重磅合作】九章云极DataCanvas公司与生态伙伴强强联手,构建人工智能强生态!

九章云极DataCanvas

Raft理论篇

Geek_44385e

KaiwuDB 亮相中国国际供应链促进博览会

KaiwuDB

KaiwuDB 中国国际供应链促进博览会

低代码开发前景如何,大家都真的看好低代码开发么?

代码生成器研究

探索DevOps文化

FunTester

gRPC C++快速编译与上手

王玉川

c++ gRPC 进程通信 Protocol Buffers

永久激活Dropzone 4 for Mac:提升效率的文件拖放神器

晴雯哥

Glimmer—使用JRuby和SWT开发Eclipse RCP应用_Java_Werner Schuster_InfoQ精选文章