Ruby是做什么的(或者是Rails)?[关闭]


13

大多数编程语言都有一些影响其用法和适用性的设计决策。

例如:

  • Python专注于代码的可维护性/可读性,并且缩进已成为语言本身的一部分。
  • Java的意图是使跨平台的OOP比C ++更加“轻松”和“友好”
  • Objective-C是作为C的OO包装而构建的,当时还不知道C ++的未来
  • Erlang专为高度容错和并发系统而设计
  • PHP设计用于处理网页的动态创建
  • CoffeeScript旨在公开Java 脚本的大部分内容,并添加OOP语法糖,并在“幕后”等中隐藏JS的细微差别(全局等)。

每种编程语言都试图利用并利用特定的细分市场恕我直言。以上是我对编程语言的基本原理以及支配其发展和广泛采用性的观点。当然,还有更多,但是该列表仅用作示例

但是,我一直在努力地理解Ruby的创立原则及其日益普及的趋势。Ruby的流行是什么?还是设计Rails框架的一个人的天才?如果是后者,是因为Ruby使Rails的设计更好/更容易/更快了?凭什么?

根据其创建者最常被引用的原因是“ ...想要一种有趣的弱类型编程语言”-我不认为这完全是创建新编程语言的原因!恕我直言,无论使用哪种语言,编程都很有趣(每种语言都有一些不好的部分,但是要么绕过它,要么与它共存)。

那么,Ruby语言在当前语言中没有(或没有)利用什么利基呢?导致广泛采用的Ruby的“强项”(USP)是什么?Ruby以前没有做过(或者非常困难)做了什么?

我不是Ruby程序员,而是Ruby noob,所以很困惑。

免责声明:这不是一场大战,我不是在寻找Ruby vs编程语言类型的答案。我正在寻找导致广泛采用的基于Ruby的设计决策。Ruby满足于流行有什么利基?还是纯粹归因于Rails?

Answers:


11

我猜Ruby起飞的原因有很多:

  • Rails框架。Rails组合了许多有用的模式,以简化Web应用程序的开发并提高开发人员的生产率。将此与Java的冗长乏味的Web开发以及“一个人展示” .NET平台进行比较。在几分钟之内创建Weblog Web应用程序真是令人jaw目结舌。
    您可以在许多新的JVM Web框架(例如Grails,Play!)上看到“ Rails效果”。和Spring Roo。
  • Twitter和Github等成功案例。初创企业需要尽快进入市场,而使用Rails才有可能。成功的故事就是证据。
  • Ruby编程语言本身是美丽,强大和富于表现力的。恕我直言,Ruby是Rails成功的秘诀。
    看一下Cucumber和Sinatra的美丽,DSL的美丽。
  • 勇敢而勇敢的社区,不怕尝试和创新。
  • (个人意见,可能不是至关重要的原因)它是在日本创建的。没有什么比“日本制造”的形象更好。
    对我来说,学习在不同国家/地区创建的编程语言就像结识新朋友一样。这很有趣而且很有教育意义。
    Ruby /日本,OCaml /法国,Lua /巴西,Lisp /火星:)

5
好奇您所说的“ 一个人展示 .NET平台” 是什么意思,这不是我以前听过的吗?
Carson63000

2
Lisp /火星+1。哈斯克尔在哪里?
亚当

2
Haskell来自地球深处,那里有一群像开发人员一样的小矮人,其目的是使OO程序员感到困惑
Daniel Gratzer 2012年

1
@亚当“亚特兰蒂斯文明”
凯龙

13

这并不能直接回答标题问题,但是可以解决一些问题(即为什么创建Ruby)

Ruby创造者Yukihiro'Matz'Matsumoto的语录可能有助于解释什么启发了它的创作:

  • “我想要一种比Perl更强大,比Python更面向对象的脚本语言”
  • “我希望看到Ruby帮助世界上的每个程序员提高生产力,享受编程并感到幸福。这是Ruby语言的主要目的。”

因此,从根本上讲,Matz想要一种面向对象的语言,旨在为程序员带来幸福。


1
它是非常面向对象的。我的意思是+in 1+1是一种方法。
bpromas

5

Ruby(带导轨的结合器)使约定优于配置成为流行。

旧的(非红宝石)方式是

  • 用名为“生日”的字段定义数据库表“人员”
  • 用属性“生日”定义业务类“人”
  • 编写帮助程序类以在数据库和业务类之间传输数据
  • 创建一个gui,列表中的人如何
  • 创建一个GUI来编辑一个人的属性

使用约定优于配置,此操作的基本工作自动完成:

  • 你用代码定义一个人
  • 功能强大的解释器或代码生成器会自动为您创建数据库表,映射,gui元素

相反:您必须学习所有的惯例,因此在第一轮学习蓝宝石就很难了。

优点:一旦您了解了约定,就可以很容易地理解Rails开发人员对其他红宝石的代码,因为每个人都必须遵循相同的约定。

同时,关于配置的约定已进入许多编码生态系统


4

首先,Ruby是一种“当前语言”。也许您的意思是“ 1995年创建Ruby时流行的语言”。

我喜欢Ruby的原因与我喜欢Perl的原因相同:

  1. 它功能强大且富有表现力。我可以写大约一行Ruby代码,而不是五行Java或C ++。没有重复可以用最少的麻烦来排除。

  2. 它是动态的。方法和属性可以在运行时创建,因此我可以将对象包装在外部定义的对象(如数据库表)周围,而无需重复这些对象的定义,也无需重建应用程序。

  3. 关于语言(Programming Ruby),有一本很好的书,既可读又全面。

  4. 有一个用于公共域软件包的存储库,以及一个方便的命令行界面。

但是我比Perl更喜欢Ruby,因为它更具可读性。

有很多页面将Ruby与Python进行了比较。我喜欢他们两个。我更喜欢Ruby,但是我在Python方面的经验有限。


我记得曾经读过这篇文章,希望它(将成为Ruby)能够变得足够好,以取代《 Ruby编程》的前言中的Perl。
钻机2012年

@kevin:这些是语言的某些功能,我很清楚它们。但是,我想知道“创建Ruby的原因”,而不是“我想要一种有趣/弱类型的语言”(或者这本身就足够大了吗?
PhD 2012年

1
@Nupul:这些事情不是委员会做的。Matz提出了一个想法并撰写了Ruby。过了一会儿,他向其他人展示了它,其中一些人喜欢它。这就是LISP,Smalltalk,C,C ++,Pascal,Perl,Ruby和Python的创建方式。我认为大多数编程语言都一样。只有少数是由委员会或公司倡议创建的。
凯文·克莱恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.