通过学习Ruby,Python程序员将获得什么?

时间:2010-10-24 14:27:53

标签: ruby computer-science

我将在大学学习 Ruby Haskell Prolog 。 现在,我想知道什么应该得到我的大部分注意力。我有半年的时间来做这三个,这意味着我需要决定一种语言来获得我的课外时间。我将学习的其他内容足以在课程中做得很好。

我对Haskell和Prolog非常熟悉,知道学习它们会教会我一些非常重要的计算机科学概念。我对红宝石不太确定。

通过一些教程和介绍,我得到的印象是ruby是很多浅层魔法。现在我问红宝石人:在我花了半年的时间学习它之后,如果我决定不再使用它,那我将获得什么,Python还没有教过我。

这个问题并非旨在为红宝石“提出理由”,尽管我意识到这是一个很有争议的潜在话题。

我现在使用Python进行所有CS工作。我也用它做了很多函数式编程。我也已经非常熟悉面向对象编程(在Java,Python和C#中)。正如我所说,我会用Prolog做一些逻辑编程。

Ruby留给我的是什么?

进一步淡化问题:

  • 我对写作很有兴趣 程序,或酷的Web应用程序。 我只对计算机感兴趣 科学位。实现算法,数据结构等。 (虽然玩得开心肯定不会受伤)

  • 理想情况下,所讨论的概念需要在大约1.000小时内可以学习。

  • 我对 Rails 一点都不感兴趣。在这种情况下,任何隐藏复杂性的技术都是有害的。

我无法帮助这个问题具有争议性。但是这个问题的理想答案将提到一个非常重要的理论计算机科学概念,红宝石帮助程序员使用和理解,以获得科学的辅助知识。

我想出的候选人是元编程和多线程。我不知道红宝石是否特别适合学习其中任何一种。

5 个答案:

答案 0 :(得分:8)

在大多数情况下,没有。 Ruby的大多数优点/缺点都与Python相同,只不过Ruby稍微“功能”。但是如果你有Haskell作为选项,那么从Haskell学习函数式编程比从Ruby学到更多。

其次,如果从理论计算机科学的角度来看待事物,那么Ruby远非一种选择的语言。 Ruby和它的很多库都打破了很多标准的OOP教条,我相信很多学者会觉得这些教条很令人厌恶(这主要是基于我与不同教授的语言聊天)。

从学术角度来看,我认为Haskell最吸引你。如果您对AI或逻辑感兴趣,那么Prolog也是一个很好的选择。

答案 1 :(得分:5)

Ruby和Python在真正的CS方面非常相似,你的大脑将从中获得 - 差异在很大程度上是美观和务实的。它们基本相同的领域:

  • 这两种语言都是强有力的动态类型。
  • 两者都支持许多范例,如功能,面向对象等。
  • Ruby有一点绒毛/糖(类似于Perl),而Python认为显性比隐含更好。

如果您对口译员,框架和测试感兴趣,那么battle这两者是值得的,但从理论的角度来看,您将从Haskell或Prolog中学到更多

答案 2 :(得分:5)

以下两个问题的答案总体上是相同的:

  • 如果我已经了解Python,我将从Ruby学到什么?
  • 如果我已经了解Ruby,我将从Python中学到什么?

两者的答案是:

  • 除了略微不同的做事方式外,没什么重要的。

它们都是动态OO语言。 Ruby有助于提高功能,而Python还有其他一些很好的东西(列表理解)。总的来说,你不会从一个学到另一个学到很多通常适用于计算机科学的知识。

答案 3 :(得分:3)

我已经专业编程超过20年,并且有许多不同的语言,从汇编和C到各种SQL。当我需要做某事时,拥有该范围为我提供了一个很好的工具箱。

每种语言都有自己的优势,知道在你的职业生涯中,它们将会有什么帮助。没有语言是最终的,所有的编程语言和你知道的语言越多,你就能完成的越多,你就越容易学到新的语言。

答案 4 :(得分:1)

如果您想学习计算机科学知识,请学习Scala。这是未来的计算机科学语言。看看你是否可以学习那个;)

否则,如果你想在学习之后想要更有市场,Ruby是一门很好的学习语言,因为它可能是最容易找到工作的。

算法和数据结构都很好,但不要忘记架构和高级设计。这非常重要 - 能够设计出不易设计的大型东西。在3个选项中,Ruby有很多东西可以在这里展示。 Scala也是如此。

所有语言都可以做CS的东西,所以我看不出语言会有多大的损害。当然,一种语言可能比另一种语言更优雅,但人们过去常常用C和C ++来表达CS级别的内容,所以,如果你只是想学习概念而不是成为概念,你就不会出错流动的语言。

一旦您了解了一组概念,就可以更容易地理解使用这些概念的任何语言。