写点什么

Anvil:Ruby MVC GUI 库

  • 2008-02-21
  • 本文字数:1724 字

    阅读完需:约 6 分钟

Anvil 是一个打算在 Ruby 开发跨平台GUI应用中大展宏图的MVC框架。目前它需要 WxRuby —— WxWidgets 这个流行的 C++ 框架的 Ruby 绑定——的支持,不过它的目标是成为一个与工具无关的抽象层(例如,它也把 RubyCocoa 和 FxRuby 作为了目标方向)。虽然这个项目目前还正处于发展初期(当前的版本是 0.0.1),但它已经引起了 Ruby 社区的关注,它的DSL 可能会使Ruby 中的GUI 开发如同当前使用Rails 和Merb 框架开发Web 应用一样简单。

我们与Anvil 框架的作者 Lance Carlson进行了座谈,希望能够了解他对项目的展望和未来计划。

Antonio Cangiano (InfoQ):你目前是自己独立开发着 Anvil。你能讲一下你自己和你的 Ruby 生涯么?
Lance Carlson:嗯,目前 Anvil 的代码都是我自己写的,不过我已经带了几个人进来干活,这个情况很快就会改变了。到目前为止,这个项目要得到任何帮助还是非常困难的,但我希望这也能很快好转!说一下我自己吧,我在 RoR 方面已经有了三年的编程经验,大多数时间都是作为一个订约人(Contractor)工作的。最近我被 Engine Yard 雇了,在时间允许的情况下会参与某些著名的开源项目,如 Merb、Sequel 和其它一些相关项目。

AC:你对 Ruby 方面 GUI 开发的现状有什么看法呢?又是什么想法促使你启动了 Anvil 项目?
LC:比起其它语言,目前 Ruby 的 GUI 开发包还是相当新而且相当原始的,甚至于相应的框架都很少。而且目前可用的一些工具包也是倾向于使用类似 C 的语法,而不是用 Ruby-esk 的 DSLs 来表示代码。我对 Anvil 的构想就是创建一个框架,把 GUI 工具包和 Ruby 狂热者熟知并热爱的 Ruby 语法糖(Syntactic Sugar)之间的断链连接起来,同时也为敏捷 GUI 开发环境提供必需的工具支持。这些工具包括有一个测试套件、MVC 架构、代码生成器、基于 gem 的插件、环境场景,以及轻便的应用程序配置。将来我打算支持与所有流行 ORM 的集成(ActiveRecord、Sequel、DataMapper),并支持 Ruby Cocoa 和 FxRuby,在 WxRuby 以外还会支持其它 GUI 工具包。等 Anvil 成熟以后,与 ActiveResource 的集成也会被纳入考虑范围。

AC:从我的角度来看,感觉 Anvil 打算为 Ruby 的桌面程序开发提供支持,就像 Rails 为 Web 开发所做的一样。你在 Engine Yard 和 Merb 项目中的经历对 Anvil 有什么影响吗?你能否再讲一些有关项目架构的事情?
LC:Anvil 框架的很多优秀思想都是在 Merb 的开发经历中学到的,比如 Anvil 控制台、配置程序设置、环境、插件系统等等。我主要想从 Web 框架中借鉴的就是把开发过程自动化。Anvil 框架剩下的部分会使用 Ruby 目前可用的种种 GUI 工具,把它们的语法用 DSL 更加声明式的表示出来,从而自动化开发体验。这种更高层的抽象应该可以把开发人员从为应用程序的 GUI 部分的担忧中解放出来,让他们更多的专注应用的核心。

AC:一个月以前刚发布了 0.0.1 版,你紧接下来有什么计划呢?
LC:在下个版本中我计划解决前一版中的问题,并加入一些新特性。我打算引入一个从 Merb 的基于 gem 的插件系统源生出来的一个插件框架。我还希望用 widgetwrapper 所提供的 DSL 覆盖 WxRuby 的更多特性。

AC:Anvil 并不是 Ruby 上唯一的一个 GUI 框架。Why(The Luck Stiff)的(Ruby)Shoes 也是一个微型的 DSL 框架,它也在尝试简化在 Ruby 里创建 GUI 的工作。Anvil 和它的区别在哪里?你的项目对 Ruby 开发人员的吸引力在哪里呢?
LC:Anvil 的一些灵感也是来自于 Why 的 Shoes。从他的 DSL 里面,我意识到了 Ruby 在表示 GUI 应用时能够起到多么强大的作用。Anvil 的区别是,它计划成为 Ruby GUI 框架的一个一步到位的解决方案,正如 Web 开发中的 Rails 一样。对于轻量级应用而言,Shoes 仍会继续作为一个不错的备选方案,不过如果你想要一个完整的解决方案,同时还可以使用任意 GUI 工具包时:来用 Anvil 吧。Ruby 开发人员应该参与到 Anvil 的开发进程来,扩展 Ruby 可以使用的技术范围。框架的通用布局将会让 Rails 开发人员没有丝毫陌生感,而且也不大可能有踏入“GUI 大陆”的水土不服症状。让 Rails 开发人员可以用最小的代价转向 GUI 开发也是 Anvil 的目标之一。

补充阅读:请关注InfoQ 先前关于Ruby GUI 开发的报导

查看英文原文: Anvil - Ruby MVC GUI library

2008-02-21 22:001877
用户头像

发布了 197 篇内容, 共 62.6 次阅读, 收获喜欢 21 次。

关注

评论

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

短视频批量下载提取软件功能|采集下载工具

Geek_16d138

短视频获客 爬虫工具

短视频评论ID采集提取软件|评论关键词下载爬取工具

Geek_16d138

短视频获客 爬虫工具 爬虫技术

Vben-admin 修改Primary Color

麦兜

鸿蒙HarmonyOS实战-ArkUI组件(Button)

蜀道山

鸿蒙 HarmonyOS 鸿蒙开发 button arkui

明道云HAP合作伙伴计划全解析:开辟业务增长新路径

明道云

JProfiler for Mac v14.0.0永久注册码 Java性能调优利器

Rose

Proxifier for mac,让网络隐私与安全触手可及

Rose

轻松驾驭大数据,IBM SPSS Statistics 26让统计分析更智能!

Rose

视频批量采集下载工具|短视频提取软件

Geek_16d138

短视频 爬虫工具 爬虫技术

姑苏寻韵~庆开放原子开源大赛 OpenTiny 前端 Web 应用开发挑战赛路演圆满落幕。

OpenTiny社区

开源 前端 低代码 组件库

支付系统概述(九):外汇系统

agnostic

支付系统设计与实现

HagoBuy淘宝代购集运系统类似软件是哪家公司开发的?

tbapi

淘宝代购系统

HAP官方示范应用大更新:开箱即用,全面整合新功能

明道云

Macs Fan Control Pro for mac:智能风扇控制,优化散热,提升性能

Rose

《JAVA多线程设计模式》PDF

程序员李木子

华为Pura 70系列,一种关于世界之美的可能

脑极体

AI 手机

国产化里程碑:明道云HAP私有部署版获信创评估证书,荣登会员单位

明道云

安装plsql developer 64位

麦兜

机器狗巡视功能PRD

执于业务

Vue.js 如何在Vue应用中导入wasm文件

Changing Lin

Vue 前端

superbuy淘宝代购集运系统类似软件是哪家公司开发的?

tbapi

淘宝代购系统 superbuy

Pandabuy淘宝代购集运系统类似软件是哪家公司开发的?

tbapi

淘宝代购系统 淘宝代购集运系统 Pandabuy

【实时更新】天猫商品详情数据接口采集揭秘!

tbapi

淘宝商品详情数据接口 天猫API接口 天猫商品详情接口 天猫商品数据采集

FeignClient从默认的httpClient升级为okhttpclient踩坑记录

追随月光的战士

k8s Wireshark Spring boot Feign 404

基于AB32VG1的冬笋探测器设计

芯动大师

lcd 微波

Termius:全平台SSH神器,连接管理更高效!

Rose

Anvil:Ruby MVC GUI库_Ruby_Antonio Cangiano_InfoQ精选文章