Answers:
Ruby的巨大好处之一就是能够非常轻松地创建DSL。Ruby允许您以自然语言的方式创建“业务规则”,通常对于业务分析师来说足够容易使用。为此,存在许多Web开发之外的Ruby应用程序。
我强烈建议您使用Googling的“ ruby dsl”阅读一些出色的文章,但我想特别留给您一个帖子。Russ Olsen 在DSL上写了一个由两部分组成的博客文章。我看到他在DSL上作了演讲,这非常好。我强烈建议阅读这些文章。
我还发现Obie Fernandez在Ruby DSL上的出色演示。强烈建议阅读!
我在工作中广泛使用Ruby,但都不是基于Rails(甚至是Web)的。
我的域通常是客户端Windows应用程序(wxRuby GUI)和脚本,它们可以自动执行Excel,Internet Explorer,SQL Server查询和报告生成(win32ole COM自动化)。我还将sqlite,pdf编写器和gruff库用于各种数据处理和图形生成任务。
Rails的成功对Ruby来说是巨大的,但是我同意Rails受到了如此多的关注,以至于Ruby在网络之外的价值常常被忽视。
我们主要是C ++商店,但是我们发现Ruby在许多领域都非常有用。这里有一些:
基本上,Ruby是我在有意义的地方使用的工具。在很多地方都有意义。
去年,我参与了一个博物馆项目,该项目使用了很多Ruby。(http:// http://ourspace.tepapa.com/home)
我大部分时间都花在的部分是交互式平面图。地板上的地图具有传感器,因此当人们在其上行走时,会触发灯光并在墙上的显示中播放图像或视频以及音轨。
展览这部分的所有控制代码都是红宝石。我用红宝石包装纸编写了C接口,以便与地面传感器和照明控制器进行通信。系统在MYSQL数据库中查询要显示的媒体文件,然后告诉墙上的计算机通过UDP播放媒体。
这是整个展览中最可靠的部分。
Ruby被用于展览的其他主要部分,Wall,尽管我与此并没有多大关系。在移植到纯Obj-C之前,大多数图形都是使用OpenGL界面,一些可可粉和一个物理库在ruby中进行原型制作的。
我在工作中使用Ruby完成的唯一网站是使用Rails,但我想尝试Merb。
除此之外,我在Ruby中做了很多小的实用程序-例如,一个读取RSS feed并将新帖子导入到dabase中的应用程序。
这很有趣,所以我也写一些愚蠢的东西,因为它太快了。昨天我写了一个应用程序,可以播放100,000次Monty Hall问题,以帮助一位朋友说服她的教授切换是正确的策略。
我几乎侮辱了红宝石是一种无稽之谈。就像当CGI是最新趋势时一样,每个人都认为,如果您知道perl,那么一定要这么做是因为您对CGI应用程序进行了编程。Ruby对我来说只是一种脚本语言,尽管还不如python成熟,所以我有点后悔不得不跳过它的某些方面和最新变化,但我仍然喜欢并使用它。尽管我在Java商店工作,因此groovy是脚本语言的理想选择,但我仍然在家中使用ruby并丢弃不需要在工作中共享的脚本。
我一直在考虑从所有嗡嗡声入手RoR,以及它有多快速/简单,但是在浏览Rails之后,我看不到任何令人惊奇的东西,甚至与任何其他东西相比,它的发展都没有什么令人惊奇的,甚至一点点创新或快速的框架。我看到的唯一好处是我可以用ruby编写代码,这很好,但是初始设置,服务器维护和扩展更困难,因此重新抵消了使用ruby编写代码的乐趣。
我创建了一个演示文稿(恰好名为Off The Rails)来讨论基于Rack的Web应用程序:
https://github.com/alexch/Off-The-Rails
git repo包括Markdown格式的幻灯片和示例代码(以正在运行的应用程序和中间件的形式)。这是摘要:
Ruby on Rails是Ruby最受欢迎的Web应用程序框架。但这不是唯一的一个!如果您认为Rails太大,太自以为是或什么都不是,那么您可能会很高兴了解基于Rack构建的新一代所谓的微框架。而且由于Rails 3本身就是Rack应用程序,因此您不必为了获得Sinatra路由或Grape API的好处而放弃Rails。
这里是一些参考:
希望你觉得它有用!
我们使用Ruby来实现我们的测试自动化软件。这包括用于Selenium RC,WATIR和AutoIT的测试框架和驱动程序代码。
Ruby足够强大,可以创建可以与Selenium或WATIR等测试工具进行交互的综合应用程序,同时可以读取数据文件,与远程Windows UI进行交互并执行近乎透明的网络通信。全部在Windows或Linux上运行。
简洁的语法使其非常适合新手和没有经验的程序员阅读。尽管它具有完全的OO性质,但使这些程序员从一开始就很容易应用良好的(最近学习的)OO技术。
Ruby语法的灵活性还使DSL的使用和创建更加容易。这使技术含量较低的人员可以调用,阅读并可能在其中创建自己的测试。
我是一个webdriver用户。由于rake,webdriver使用ruby来自动化构建过程。有关详细信息, 请参见http://code.google.com/p/webdriver/
我将Ruby与Sinatra一起使用,这比Rails简单得多。我确实使用过Rails,但只是发现它变成了一个怪物,尽管与Java可用的Web框架相比,Rails仍然很棒。
但是,我喜欢的Ruby的主要功能是“ eval”和“ method_missing”,Rails实际上在ActiveRecord中使用了它们,以便您可以使用惊人的“ find_by-field-name-”查询。
在Boulder中,有一群优秀的Ruby用户每月聚会一次。提出了这一点-Ruby在Rails中的使用确实存在。普通的Ruby用户确实存在,正在寻求关注,展示了一些整洁的东西,并且可以在用户组会议上找到彼此。
他们也比Python组的披萨要好,Python组也于每月的同一天见面。只能选一个...