几年前,我的一位朋友建议我学习Ruby。我已经学习了PHP和VB.NET,但我从来没有学过Ruby。
哪里可以从Ruby开始?什么是Ruby主要用于?与PHP相比,您如何描述它?蟒蛇? VB?
如何在Ubuntu 9.04上设置它? Windows Vista或7 Home Premium?我可以在“无网络”盒子上的现有(Apache)虚拟服务器中设置Ruby on Rails吗?
答案 0 :(得分:5)
Ruby最适合于I / O绑定任务,其中原始计算速度不是问题。幸运的是,绝大多数实际编程问题都受I / O限制,Web应用程序就是一个特别好的例子。 Ruby社区花费大部分时间和精力来编写和发布专为在Web服务器上运行的代码,这是它真正发挥作用的地方,但我已经成功地用Ruby编写了桌面应用程序。 MacRuby是一个非常好的例子,可以在桌面环境中充分利用Ruby。对于Web服务器,您有很棒的项目,例如Rails,Sinatra以及Rack生态系统的其余部分。像Data Mapper这样的项目非常适合桌面和Web服务器使用。 Ruby在移动环境中很少使用,因为性能在那里是一个非常重要的问题,但是如果你已经确定它就会can be done。
与VB相比,嗯...... VB出现了很大的需求。我会说VB非常适合初学者,但个人成长的空间很小。虽然Ruby对以前没有接触过任何东西的初学者有好处 - 但对于已经习惯了其他语言风格的人来说,这可能是一个挑战。但是,Ruby不会限制您作为程序员的增长:Ruby几乎拥有您可能想要的所有编程语言功能(有一些值得注意的例外,如模式匹配和多个函数参数)。实际上,这些都是权衡取舍;没有编程语言可以为您提供一切。与PHP相比,Ruby除了可能是Web服务器部署之外,还在每个领域都有所不同。 PHP无处不在。在大多数情况下,您可以假设您的Web主机默认安装它。另一方面,Ruby需要相当多的经验才能正确部署,尽管Phusion Passenger已经大大改善了这种情况。与Python相比,说实话,它们相比之下非常好。为了不用“Snakes”开始任何火焰战争,并且因为我自己同时使用Ruby和Python,我称之为平局。使用两者都有很好的理由,在大多数情况下,它们可以互换使用。很少有适用于Ruby的应用程序,Python不能很好地执行,反之亦然。总的来说,我自己更喜欢Ruby,但我有很多关于Python的东西,我在Google App Engine编写了很多Python。也就是说,您也可以通过JRuby在该环境中运行Ruby。
如果你想开始使用Ruby,最好的去处是Try Ruby (in your browser)。这应该给你一个品味,让你评估语言。如果你喜欢它,请从official site获取一份副本。正如其他人所提到的,“镐头”这本书很棒。有free version online,但它主要适用于该语言的旧版本。 "dead-tree" edition应该是最新的。如果你刚开始,我强烈推荐使用1.9。仍然有许多库与1.9不兼容,但是如果你刚刚开始,那么你可能关心的所有库都应该是最新的1.9。如果你不需要,最好不要再重写大量的代码,加上1.9的速度要快得多。
在安装方面,在Windows上,最好使用“One Click Installer”。在OS X上,它应该预先安装了一些特殊的OS-X特定的调整。在所有其他平台上,我强烈建议从源代码编译最新的稳定版本。您可以使用apt-get
,这样可以工作,这当然要容易得多,但是现在您会遇到困难,因为Ruby社区和Debian人员往往不同意应该安装的东西,有时候库作者做出错误的假设。如果您从源代码编译,一切都将在默认位置结束,并且您将拥有最新的代码。如果您使用的是Ubuntu,请不要忘记sudo apt-get install build-essential
。
答案 1 :(得分:3)
'Pickaxe book'是我学习语言的最佳资源。对于免费资源,Ruby-doc很难被击败 - 大量的入门信息。有很多很棒的网站,但Ruby Inside非常适合Ruby上的一般新闻。
真的Ruby是一种通用编程语言,因此可用于您提到的所有领域。特别是,有一个非常流行的Web编程框架,称为Ruby on Rails。
比较编程语言总是有争议的,但Ruby可以被描述为一种纯粹的面向对象语言,具有非常强大的动态编程方面。它与Smalltalk一脉相承。你会发现Ruby是一种非常简洁的语言,即比Java更少的键盘攻击;-)。它的执行速度不如Java,C或PHP,但通常对于除系统编程之外的所有内容都足够快。
答案 2 :(得分:2)
我发现在Ruby中学习编程的唯一最佳来源是Ruby website itself,特别是'Pickaxe' book的第1版,可以在线免费获得。
我是一名C ++程序员,我广泛使用Ruby来测试我的应用程序,以及编写快速实用程序应用程序。在我开始编写应用程序的C ++版本之前,我还用它来编写用于演示项目的测试平台应用程序。
答案 3 :(得分:1)
你可以在ruby-doc.org上开始学习ruby,它包含第一版Programming Ruby(稍微过时,但仍然是学习ruby的很好资源)以及官方API文档。如果您愿意投入一些资金,您还可以购买当前版本的Programming Ruby或The Ruby Programming Language。
至于ruby的用途:我怀疑它最常用于网页编程。其次是系统管理,日志文件处理,网页抓取等脚本语言。
答案 4 :(得分:1)
Ruby是一种通用脚本语言,因此几乎可以做任何事情。但真正使Ruby成为一种语言的事情之一就是Ruby on Rails
与Python相比,我认为Ruby是Python的小妹妹。非常类似的语法,用法等。有些人可能喜欢Ruby(因为,比如用它构建领域特定语言很容易),有些人可能喜欢Python(因为他们喜欢显式,比方说)。我总是建议阅读Zen of Python:如果你同意大部分内容,请学习Python,如果你对许多要点有重大问题,那就试试Ruby吧。
与PHP相比:Ruby是一种没有C大括号的脚本语言,并且OO设计更多的中心舞台(是的,我知道你可以用PHP做OO)
与VB相比:它不是BASIC?它在Unix上运行,在Windows上运行不佳? (对比VB在Windows上运行得很好而在Unix上运行很差)。用Ruby编写GUI程序并不容易......但是,毕竟我们在Unix上。