【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:001369
用户头像

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

关注

评论

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

优秀的代码的分层结构

xcbeyond

架构 28天写作 12月日更

Apache Log4j 2 安全漏洞扫描及启示录

极狐GitLab

gitlab 安全 供应链 漏洞扫描 Apache Log4j 2

记录我开发工作中遇到HTTP跨域和OPTION请求的一个坑

Jerry Wang

JavaScript ajax 跨域 28天写作 12月日更

探探的IM长连接技术实践:技术选型、架构设计、性能优化

JackJiang

网络编程 websocket 即时通讯 IM

Go 语言快速入门指南:第一篇 介绍

宇宙之一粟

Go golang 编程入门 签约计划第二季 12月日更

国产分布式数据库StarDB核心技术大揭秘二:智能运维管控

京东科技开发者

【Spring Boot 快速入门】五、Spring Boot集成Lombok

小阿杰

SpringBoot 2 lombok 内容合集 签约计划第二季

完善跨境金融区块链服务平台,支持区域开放创新和特殊区域建设

CECBC

重新定义分析 - EventBridge实时事件分析平台发布

阿里巴巴云原生

阿里云 云原生 EventBridge

一周信创舆情观察(12.6~12.12)

统小信uos

百度王海峰:深耕自然语言处理近30年,推进AI融合创新

百度开发者中心

自然语言处理

元宇宙100讲-0x004

hackstoic

【教程直播第4期】揭秘数据迁移之 OceanBase CDC & OMS 社区版能力

OceanBase 数据库

数据库 开源 直播 课程 oceanbase

最好用的七大顶级 API 接口测试工具

蒋川

API 测试工具

潮玩盲盒一番赏盲盒星球app专业源码搭建

风行无疆

一篇教你代码同步 Github 和 Gitee

冴羽

JavaScript GitHub 自己搭建博客网站 GitHub Pages vuepress

【Spring Boot 快速入门】二、Spring Boot集成MyBatis可以连接数据库啦!

小阿杰

SpringBoot 2 mybatis配置 内容合集 签约计划第二季

【Spring Boot 快速入门】四、Spring Boot集成Swagger UI

小阿杰

SpringBoot 2 swagger 内容合集 签约计划第二季

手把手快速入门Spring Boot实战系列

小阿杰

SpringBoot 2 内容合集 签约计划第二季

【Spring Boot 快速入门】一、周末建立了Spring Boot专栏,欢迎学习交流

小阿杰

SpringBoot 2 spring Boot Starter 内容合集 签约计划第二季

SD-WAN、SASE 和多云空间的未来趋势

devpoint

5G SD-WAN sase 12月日更

国产分布式数据库StarDB核心技术大揭秘一:内核分解之数据分片

京东科技开发者

微信朋友圈高性能复杂度

ren

架构师训练营 4 期

多点 DMALL x StarRocks:实现存储引擎的收敛,保障高查询并发及低延迟要求

StarRocks

数据库 数据分析 高并发 StarRocks

RingCentral铃盛技术干货精选合集

RingCentral铃盛

敏捷 前端 框架 技术专题合集

分布式架构与性能优化

高性能架构探索

分布式 微服务 性能优化 内容合集 签约计划第二季

ClickHouse在工业互联网场景的OLAP平台建设实践

京东科技开发者

点击下载 | 世界经济论坛全新推出深度AI洞察报告

澳鹏Appen

人工智能 机器学习 深度学习

京东云PostgreSQL在GIS场景的应用分享

京东科技开发者

京东云ClickHouse和ES双引擎设计在零售选品中的应用实践

京东科技开发者

【Spring Boot 快速入门】三、Spring Boot集成JUnit

小阿杰

SpringBoot 2 JUnit 内容合集 签约计划第二季

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