你在Ruby中用什么代码编写代码?与其他语言相比,Ruby擅长什么?

时间:2009-02-03 01:19:04

标签: ruby

我决定学习Ruby,我想问一下你认为Ruby比其他语言更好的东西,它拥有的设施,以及当今行业中语言的地位,以及其他语言,它是强大的竞争者?它的目标受众是什么,网络开发人员/ GUI程序员/ 10行脚本编写者?请给我你的意见:))

9 个答案:

答案 0 :(得分:8)

就个人而言,我有两个Ruby用例:

维护脚本。我在工作中有很多任务,我将其归类为“维护”。这些任务包括操作excel电子表格中的数据和导入SQL Server数据库,以清理充满文件的目录,以生成我不想手动创建的测试数据。其中一些脚本是快速的10行脚本,其中一些扩展到我经常使用的小应用程序中。

有一些事情让Ruby真的很高兴:

  1. 开始使用脚本非常简单。像Rake这样的工具是为组织任务而设计的,我不需要为了开始而创建一堆额外的框架垃圾。

  2. 库。我知道其他语言应该拥有更高级的库,但到目前为止Ruby的库已经满足了我的需求。而RubyGems使得安装库非常容易,无需手动下载和安装它。

  3. Ruby拥有许多内置功能,使阅读和处理文件非常简单。

  4. DSLs。有许多重复的任务,并且有助于创建特定于域的语言。 Ruby具有非常灵活的语法,它具有一些功能方面,使您在编写程序时具有很大的灵活性。通常,您可以将常用功能包装到适合您任务的DSL中。

  5. 我使用Ruby(在较小程度上)的另一件事是 web开发Ruby on Rails框架是我主要使用的框架,但在宣布它与Ruby on Rails合并之前,我曾经使用过Merb。

    我喜欢Ruby on Rails,因为我喜欢Ruby的所有原因。事实上,Ruby的主要特点是Ruby on Rails非常棒。 Rails本身是一种用Ruby编写的领域特定语言,它使Web开发变得更加有趣(在我看来)并且可以加快速度。

    我认为很多人对Ruby的看法与此相同,社区似乎仍然非常活跃和充满活力。我认为这是一种很好的语言,可以用来相当长一段时间。

答案 1 :(得分:4)

我使用Ruby编写除Excel宏和重载/长期运行数学函数之外的所有内容。我通常首先在Ruby中对后者进行原型设计。我暂时没有编写任何非Web用户界面的东西,并且会考虑使用Ruby来做到这一点,尽管说实话我会三思而后行。 shoeswxRuby很有趣。如果我要写一个游戏,我认为我的有限野心将由gosu

迎合。

现在,“一切”主要包括:

  • Rails和相关的东西
  • 任务自动化和脚本
  • Project Euler拼图编码

“它做得更好?”有点主观。我更喜欢Python和Perl,至少部分是因为它基本上是面向对象的设计。我喜欢它的简洁性,接近Perl但更具可读性。我喜欢内置类的开放性,让我添加方法而不是创建新类。我对出现的各种替代实现以及为新问题域应用舒适语法的潜力着迷。

它不是闪电般快(虽然它变得越来越快)但说实话,大多数它足够快:我在10毫秒到10微秒的程序之间没有明显不同的体验。

答案 2 :(得分:2)

Ruby是一种很好的语言,可以设计和使用“内部域特定语言”,简称DSL。 DSL是专门用于表示某个特定业务领域的符号; “internal”用于区分与宿主编程语言不兼容的符号(例如,项目构建文件的XML符号)和作为宿主语言变体的符号(例如,Ruby的等效于Make,称为Rake) 。参见例如Martin Fowler's article

答案 3 :(得分:1)

Ruby在与文本处理相关的任何事情上都更好,并且非常善于灵活,也就是说,让开发人员能够编写非常优雅,可读的代码。如果你想要速度,这不是一个地方,但对于很多事情来说并不重要。

如果我必须给Ruby一个擅长的东西,那就是它的基本设计是非常易读的--Matz在Beautiful Code中写到这一点,编写良好的代码是一篇将想法传达给其他人的文章,而不是计算机。

答案 4 :(得分:1)

与python相比,我最喜欢红宝石的东西是块和retry命令。它非常有用,可以使代码更清晰易读。

答案 5 :(得分:0)

学习Ruby的一个最大原因是充分利用其出色的RoR框架来构建Web应用程序。除此之外,Ruby几乎可以做其他流行语言所能做的一切。 Ruby有更好的文档记录,有大型社区,特别是在RoR的情况下使用最佳实践。 Ruby具有很棒的可读性。它有一些很好的概念,如mixins,blocks等,这使它成为一种优秀的OO语言。

答案 6 :(得分:0)

ruby​​非常适合原型。令人惊讶的是,你能用多快的速度在ruby中编写概念证明。语言为您提供了所需的一切,让您不受阻碍

答案 7 :(得分:0)

@gs:Ruby最近揭穿了重试设施。


Ruby中的Lambda表达式使用非常轻量级的语法,使它们伪不可见。

提供了匿名块之类的模糊内容,(我目前还没有意识到有这种规定的许多其他语言)。

语法一致性存在,即使有可用于替代他人的习惯,它也具有接近英语的情绪,创造了一个即使是最无知的新手也会感到舒适的环境。代码要短得多,而且紧凑。传统的C / Java和Python咒语。

一切是一个对象。

它允许内部特定于域的语言操作和控制。

我可能会列出更多数据,甚至可能更多;我倾向于每天写一些我需要的小而快的脏程序;我没有在它编写很长时间,但它肯定是初学者应该研究的东西。我知道我喜欢与它合作:)

如果你想学习Ruby,你应该考虑this。您还应该阅读this

The Ruby Programming Language
(来源:rubyinside.com

答案 8 :(得分:0)

在我之前使用Perl脚本的每种情况下:系统管理脚本,文本处理,访问Oracle,LDAP等数据库。可能95%的当前编程都是用Ruby完成的。 Web应用程序的框架,如Ruby on Rails& Merb的。