Ste*_*zzo 16 ruby computer-science
我将在大学学习Ruby,Haskell和Prolog.现在,我想知道什么应该得到我的大部分注意力.我有半年的时间来做这三个,这意味着我需要决定一种语言来获得我的课外时间.其他我将学到的就是在课程中做得非常好.
我对Haskell和Prolog很熟悉,知道学习它们会教会我一些非常重要的计算机科学概念.我不太确定红宝石.
通过一些教程和介绍,我得到的印象是红宝石有很多浅薄的魔力.现在我问红宝石人:在我花了半年的时间学习它之后,我决定再也不用它了,我会得到什么,Python还没教过我.
这个问题并非旨在为红宝石"提出理由",尽管我意识到这是一个很有争议的潜在话题.
我现在使用Python进行所有CS工作.我也用它做了很多函数式编程.我也已经非常熟悉面向对象编程(在Java,Python和C#中).正如我所说,我会用Prolog做一些逻辑编程.
然后留给Ruby教我什么?
进一步淡化问题:
我对编写有趣的程序或酷的Web应用程序不感兴趣.我只对计算机科学课感兴趣.实现算法,数据结构等.(虽然玩得开心肯定不会受伤)
理想情况下,所讨论的概念需要在大约1.000小时内可以学习.
我对Rails一点也不感兴趣.在这种情况下,任何隐藏复杂性的技术都是有害的.
我无法帮助这个问题具有争议性.但是这个问题的理想答案将提到一个非常重要的理论计算机科学概念,红宝石帮助程序员使用和理解,以获得科学的辅助知识.
我想到的候选人是元编程和多线程.我不知道红宝石是否特别适合学习其中任何一种.
在大多数情况下,没有.Ruby的大多数优点/缺点都与Python相同,只不过Ruby稍微"功能".但是,如果您有Haskell作为选项,那么从Haskell获取函数编程比从Ruby学习更多.
其次,如果你从理论计算机科学的角度来看待事物,那么Ruby远非一种选择的语言.Ruby及其许多库都打破了很多标准的OOP教条,我相信很多学者会觉得这些教条很令人厌恶(这主要是基于我与各种教授的语言聊天).
从学术角度来看,我认为Haskell对你最具吸引力.如果您对AI或逻辑感兴趣,那么Prolog也是一个很好的选择.
总体而言,以下两个问题的答案是相同的:
两者的答案是:
它们都是动态的OO语言.Ruby有助于提高功能,而Python还有其他一些不错的东西(列表理解).总的来说,你不会学到很多东西,通常适用于计算机科学,从一个到另一个.