【发布时间】:2010-11-25 11:37:07
【问题描述】:
Ruby on Rails 与 php、asp.net、jsp、python 和其他一些软件一道,已成为服务器编程行业的新竞争面孔。但是除了铁轨之外,红宝石还用于任何用途吗?它的所有成功都归功于 Rails 框架吗?这里有更多的问题被标记为 ruby-on-rails,而不是 ruby。但是,我认为 PHP 并没有用于服务器之外的东西,
想法?
【问题讨论】:
标签: ruby-on-rails ruby
Ruby on Rails 与 php、asp.net、jsp、python 和其他一些软件一道,已成为服务器编程行业的新竞争面孔。但是除了铁轨之外,红宝石还用于任何用途吗?它的所有成功都归功于 Rails 框架吗?这里有更多的问题被标记为 ruby-on-rails,而不是 ruby。但是,我认为 PHP 并没有用于服务器之外的东西,
想法?
【问题讨论】:
标签: ruby-on-rails ruby
首先,PHP 最初被构建为一种服务器语言。这是它通常不用于 Web 应用程序以外的任何东西的主要原因之一 - 它不是为它设计的,因此无法满足脚本桌面应用程序的要求。
Ruby 被设计为一种通用脚本语言,因此广泛支持多种不同的应用程序。它已被广泛用于从 Web 应用程序到 Web 服务器本身、智能图形库、图片识别引擎、线程数据库服务器和低级系统实用程序的所有内容。它在整个计算中具有广泛的用途。
Rails 无疑极大地推动了 Ruby 的普及,将其推向了脚本语言的前沿,催生了 40 多本书、18 次会议、几乎所有主要操作系统的发行版和 7 种不同的启动实现!
首先,Rails 的所有内部结构都是用 Ruby 本身编写的,但 Rails 开发人员使用的所有 Rubygems、库、sn-ps 或其他任何东西也是用 Ruby 编写的,并且很可能是为在 Rails 堆栈之外工作。
话虽如此,流行的 Web 框架并不是 为什么 Ruby 流行的原因。当然,它有助于引起人们对这种语言的急需关注,但这并不是人们日常使用它的原因。它适用于从 Web 应用程序到桌面 GUI 应用程序的所有应用,因为它具有简单、优雅的语法、干净、合理且完整的标准库,以及由社区代码、支持和工具链组成的广泛生态系统。
Ruby 被使用是因为它很摇滚。
【讨论】:
生物医学
Jules J. Berman, PhD, MD 写了一篇378 page book,介绍如何使用 ruby 解决生物医学领域最常见的计算任务。据我所知,这本书没有提到 Rails。
【讨论】:
plus 比实际求和两个数字所需的时间要多得多。
但是,除了铁轨之外,红宝石还用于任何用途吗?
天哪,是的。查看RubyForge,它早于Rails 和更早的RAA,以获取非Rails 内容的示例。在工作中,除了不可避免的基于 Rails 的 Intranet 应用程序之外,我使用 ActiveRecord 独立进行数据库工作、计划备份、XML 解析、FTP 下载、CSV 解析、操作 Excel 工作簿以及几乎任何其他出现的临时脚本工作。但我老了 - 在 Rails 成为 DHH 眼中的苹果之前,我就开始使用 Ruby。
在家里,我做过各种奇怪的事情,有些成功,有些则不太成功。然而,一切都很有趣,很少有与 Rails 相关的。
它的所有成功都归功于 Rails 框架吗?
没有。一些,但不是全部。确实,Rails 的成功很大程度上归功于 Ruby,如果没有它,它将会是一个不同的野兽。
Rails 无疑增加了对 Ruby 的接受度,将它推向了某种临界点,在这种情况下,足够大比例的开发人员(无论他们的意见如何)现在都听说过该语言,并对它可以做的事情有所了解用过。
是的,它很摇滚。
【讨论】:
在 Rails 出现之前,Ruby 确实是一种精品语言。它满足了 Perl 和 Python 的相同需求。在脚本领域,Perl 占据了至高无上的地位,Python 在过去 10 年中获得了极大的普及。 Ruby 在编写 Perl 和 Python 程序的人中很少使用或听说过。当 Rails 出现时,它对从事 Web 开发(通常使用 PHP)的人非常有吸引力,因此许多 Web 程序员选择了 Ruby,而其他人则认为没有理由从他们舒适的 Perl 和 Python 环境中切换。
大多数人仍然只将它用于 Rails,但它增加的曝光率导致更多的人将它“在野外”用于非 Web 任务。大多数地方已经有许多用 Perl 或 Python 编写的程序,并且没有理由切换。大多数 Linux 发行版都预装了 Perl 和 Python,但没有预装 Ruby。 Ruby 也没有那么多可用的第三方模块。
【讨论】:
所有广泛使用的供应(自动化)工具,如 Puppet、Chef、Capistrano 都是用 Ruby 编写的。语言的选择不是随机的,例如 Chef 也将 Ruby 用于所有配置语句,因为该语言具有表现力、简单且易于阅读。 Puppet 有自己的 DSL(域特定语言),旨在供系统管理员访问。 Ruby 使解释这种配置语言变得更加容易。
还有Vagrant - 用于创建和测试系统映像的工具是用 Ruby 编写的。 Bundler 将是另一个用于管理 gem 依赖项的优秀 Ruby 应用程序示例。
Metasploit framework 用于测试安全问题并帮助进行渗透测试。它已于 2007 年用 Ruby(之前用 Perl 编写)完全重写。
一个打包工具fpm 简化了创建包(deb、rpm、gem、python 模块、节点包、pear 等)的过程,也是用 Ruby 编写的。
Ruby 是通用的脚本语言(与 php 不同),可用于编写脚本。您可以用很少的几行代码编写带有正则表达式的简单文本文件解析器,而无需搜索所有内容,因为语法简单易学。
Ruby on Rails 绝对是最受欢迎的,并且引起了对 Ruby 语言的极大关注(这很棒),但还有许多其他应用程序,并且肯定会出现新的应用程序。
【讨论】:
脚本任务。
例如,我曾经使用 Ruby 将整个网站的内容(数百页)抓取到一个逗号分隔的文件中。它是为了将某人的静态 html 网站迁移到一个动态的、数据库驱动的网站。只是批量插入了csv。手工完成是不可能的。
【讨论】:
Shoes 是一个用 Ruby 编写的跨平台 GUI 工具包。
【讨论】:
正如其他人所说,一般脚本。 原因 我更喜欢将它用于一般脚本(通过 Python)很简单:内联正则表达式。不幸的是,Python 的正则表达式支持很笨拙,而对于脚本来说,正则表达式通常非常重要。
我什至认为我不必提及为什么它胜过 Perl。
【讨论】:
它也可以用于独立(使用解释器)和许多其他程序中的脚本。 Google Sketchup(用于 3D 建模)浮现在脑海中......
【讨论】:
它被用作 DSL 的基础。它非常适合此目的,因为它的语法非常灵活。例如,有一个名为 Rake 的 make 替换。
【讨论】:
Rubystein - 使用 Gosu 库克隆 Wolfenstein 游戏:)
【讨论】:
它用于编写各种应用程序。常用于写python之类的小脚本应用。
【讨论】:
Web 应用程序、脚本、一些游戏,你能想到的任何东西。我的一个朋友正在开发一个 ruby 到 as3 的编译器:D
【讨论】:
The Metasploit framework 是用 Ruby 编写的,modules 因为它也是用 Ruby 编写的。这已成为编写安全漏洞和进行安全研究的常用方法。
【讨论】:
RubyDNS:用 ruby 编写的 dns 服务器
【讨论】:
Homebrew,Mac OSX 的开源包管理器,完全用 Ruby 编写,是one of the most popular projects on github
【讨论】:
各种测试场景。以 WATIR 和 RSPEC 为例。
【讨论】: