写点什么

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

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

关注

评论

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

人工智能 | ReACT 推理模式

测吧(北京)科技有限公司

测试

快递行业定义以及特点简单分析

行云管家

等保 等级保护 快递

并发编程体系概述

京东科技开发者

SentenceTransformers×Milvus:如何进行向量相似性搜索

Zilliz

Milvus SentenceTransformers 向量相似性搜索 embedding向量

京东商品详情数据接口(JD.item_get)丨京东API接口指南

tbapi

京东API接口 京东商品详情接口

配置NVIDIA Container Runtime和容器运行GPUStack教程

SEAL安全

Docker 容器 大模型 LLM GPU集群

配置NVIDIA Container Runtime和容器运行GPUStack教程

GPUStack

Docker 容器 大模型 LLM GPU集群

大促系统优化之应用启动速度优化实践

京东科技开发者

质量视角下的系统稳定性保障--稳定性保障常态化自动化实践

京东科技开发者

HyperWorks一维单元创建与模型连接管理

智造软件

教程 仿真 hyperworks 有限元

文献解读-Unifying comprehensive genomics and transcriptomics in individual cells to illuminate oncogenic and drug resistance mechani

INSVAST

基因数据分析 生信服务 基准与方法研究 Sentieon

WebAssembly--目标及核心优势

江湖修行

前端 Web WebAssenbly

如何绘制ER图?10个常用的ER图模板盘点!

职场工具箱

效率工具 职场 ER图 在线白板 办公软件

Rokid Glasses AR 眼镜发布,搭载通义 AI;3D 社交平台 SEELE 完成千万美元融资丨RTE 开发者日报

声网

安徽淮南有等保测评机构吗?在哪里?

行云管家

等保 等保测评 淮南

软件测试/人工智能 | ReACT 推理模式

测试人

软件测试 测试开发

如何使用Java开发抖音API接口?

科普小能手

API Java 开发 1688 API 接口 1688商品详情接口

注塑MES如何帮企业提高生产效率?

万界星空科技

mes 万界星空科技mes 注塑MES 注塑行业 生产管理MES系统

项目上线之后,出现过线上问题吗?怎么排查和解决的?

王中阳Go

Go 面试

弹性存储关键技术介绍

天翼云开发者社区

hash 弹性存储

维度爆炸背景下uv计算在Feed业务的高效实践

百度Geek说

模具企业MES系统需求分析及解决方案

万界星空科技

mes 模具mes 万界星空科技mes 模具行业 模具加工

百度智能云千帆大模型平台引领企业创新增长

Baidu AICLOUD

智能体 agent LLMOps 模型精调

探索 GreptimeDB 中的索引技术:优化大规模时序数据查询性能

Greptime 格睿科技

数据库 索引 数据查询

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