ruby与python
‘壹’ python难还是ruby难
一、异同对比选择
1、Python和ruby的相同点:
·都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。
·都是动态数据类型。都是有丰富的数据结构。
·都具有C语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。
·都是面向对象的语言,都可以作为大项目的开发工具。
·都有丰富的库支持。
·也有最宽松的版权许可,除了一些工具属于GNU世界。
·都有lisp特色的eval函数,也都能把函数作为参数。
·也有图形界面的ruby的专门编辑器。
·都获得了广泛的c库的支持。如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。
·都有完善的文档。
相关推荐:《Python视频教程》
2、和python相比ruby的优点:
·具有正则表达式和嵌入html的功能。python也有正则表达式,但没有ruby的应用方便和广泛。python的嵌入html项目才刚起步。ruby还有apache的mod模块。ruby本身也实现和很多unix工具,如racc,doctools。比python更亲近linux。
·比python功能更完整的面向对象的语法。
·ruby的整个库都是具有类继承的结构。
·他的基本的数据类型和运算符都是可以重载的。
·ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。python也在向这方面发展,但没有ruby做的彻底。
·ruby的类是更规范的单继承,还有接口等概念的实现。
·python可以实现在列表内的条件语句、循环语句,而ruby用“块”的方式来实现这个功能,比python的更灵活,更具有通用性。
·ruby具有类似lisp的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。
·附带一些unix工具,如racc等。
3、和python相比ruby的不足:
·最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。
·python的缩进表达方式比ruby的basic的表达方式更让人悦目,ruby程序的满眼的end让人不舒服。当然,ruby认为end的方式比python更先进。
·ruby还没有python的“自省”的能力,没有从程序文件中生成文档的能力。
·ruby没有国际化的支持。国际化支持在ruby的计划中。这是因为ruby的历史比python要短造成的。
·ruby没有类似jython的东西。
4、python和ruby的语言的选择:
从简单的就是好的来说,选python是没错的。python适合寻找简单语言的人,这很可能造成python更流行,因此也有更多的支持。但如果要追求更强大的语法功能,则ruby是好的选择。因为ruby和python的哲学有很多相似的地方,先从python入手,尽量用python,如果python的能力不足了,可以在找ruby。
ruby和python的比较,就像五笔和拼音输入法的比较。拼音作为入门的输入法和长久使用的输入法都没有问题。五笔适合更高要求的情况。如果追求性能的不妨学学ruby。对编程语言感兴趣,想了解各种编程概念的学ruby也会很兴奋。
二、两者各有特点:
1、Python从语法上来说更质朴一些,而Ruby更性感一些
Python的语法相对其他脚本语言来说,没有太多花巧的地方,显得比较死板一点,其实从Python强制代码缩进也可以看出来Guido设计语言的取向。语法死板的一面就是不容易玩出来更性感的东西,比方说Rails这样的框架,另外Python也无法做DSL这样的事情,但是语法死板的另一面就是比较规范,相对来说,更加适应软件开发的工程性要求,更容易组织大规模的团队进行开发。
Ruby的语法非常灵活,Matz设计ruby的出发点也是为了coding for fun,因此可以用ruby玩出来很多花样,运用足够的技巧,可以用Ruby写出来逼近自然语言的DSL,对于程序员来说,玩ruby确实充满了乐趣。Rails能在ruby社区诞生,而不是Python社区诞生绝对和编程语言有直接的关系。不过ruby语法灵活的另一面就是编程实现风格的多样性,这对于大规模团队的协作和管理是一个挑战。
2、Python的解析器实现更成熟,第三方库质量高
Ruby1.9解析器尽管已经有了很大的性能提升和很多新的功能,但是从源代码实现的角度来说,基本上是通过在Ruby1.8源代码上打patch来增加功能的。从源代码的结构来说,Ruby的实现太古老了,Ruby扩展起来比较困难,只能不断打patch。这也是为什么现在Ruby社区涌现出来那么多新的Ruby解析器实现的原因。从很大程度上来说,这制约了Ruby的发展速度。相对而言,Python解析器更成熟,也比较稳定。
在第三方类库的数量上来说,Ruby并不比Python少,但是高性能高质量久经考验的第三方类库Python要明显比Ruby多,事实上很多Ruby的第三方类库都不太成熟,因此这也很大程度上制约了Ruby的发展。
3、Python的应用领域非常广泛,而Ruby目前主要局限在在Web领域
Python应用的领域非常广泛,除了web开发以外,还被广泛用在服务器后端的高性能服务器实现,服务器后端的各种密集运算,全文检索,各种文本处理,系统管理等等,另外桌面应用领域wxPython也是一个很成熟的跨平台GUI框架。对于某些特殊的应用,比方说调用操作系统内核API,Python也可以完成的很好,比方说大量小文件的实时同步方案,就是用Python直接调用linuxKernel的inotify特性来实现的。所以可以说Python是软件开发领域的瑞士军刀,什么事情都可以做。
正是由于Ruby解析器和Ruby类库的制约,Ruby的应用主要局限在Web开发领域,目前Ruby的应用还无法延伸到web开发领域以外的很多地方。据说豆瓣早期就考虑过Ruby on Rails,但是因为Ruby不能做其他事情,而Python可以大包大揽,最后放弃Ruby选择了Python。
4、在Web领域Ruby是王者
随着互联网应用更进一步渗透到软件开发的各个领域,其实web开发占整个软件行业开发的比重也是越来越大。尽管Ruby在其他领域很受制约,但是在Web开发领域就是绝对的王者了。Rails框架的领先程度已经远远甩开了任何一个潜在的竞争对手十万八千里。因此尽管Ruby可能有这样那样的问题,但是说到Web开发,Rails几乎就是无可争议的唯一选择。
而Python尽管十分全面,却偏偏在web开发领域不彰,web框架虽然众多,却没有一个真正可以挑大梁,Django虽然在Python社区比较流行,但很多方面也有缺陷。现在的互联网应用往往都是多种语言混合编程,Ruby在Web以外的缺陷也可以用其他语言来弥补。
5、Python的包管理不如Ruby
尽管Python的第三方类库更高质量更成熟,但是Python社区缺乏Ruby Gem这样一个良好的包管理软件和包发布的网站。因此应用的构建显得不如Ruby那么方便,那么人性化。特别是在类库的版本升级上,就会遇到很多麻烦,不如Ruby Gem那么简单。
不过总的来说,Python和Ruby还是相似度极高的两种编程语言,即使两种编程语言都学习一下也不会浪费太多时间。如果我个人选择的话,会首选用Rails来构建web应用,再根据情况选择Python或者java处理一些服务器后端的运算。总之,未来还是一个混合编程的时代,我们需要多了解一些编程工具,然后根据需要看菜吃饭才行。
‘贰’ python还是ruby
从目前TIOBE的编程语言排行榜来看,Python大致位置在5、6名,而Ruby在10名左右,而Quora等着名网站就是用Python来写的,国内豆瓣等网站也是用Python开发的,现有应该有很多网站想用Python开发,但是找不到合适的Python工程师,近期来看学习Python来看应该是不错的选择。
但是目前Python有两个系列,一个是大多数用户支持的2.x系列,目前最高版本是2.7,另外一个是Python作者主推的3.x系列,目前最高版本是3.2。Python作者已经宣布将关闭2.x系统升级,强制大家采用3.x系列,这会不会像PHP升级到5版本,添加大量OO技术而造成复杂性增加,市场份额大幅下降,这种情况还有待观察。
Ruby最近发展很快,尤其是Ruby on Rail框架,大大减化了网站开发的工作量,并且简洁的语法也提高了开发效率。另外,问答类网站“者也”就是用Ruby开发的。但是总体来讲,Ruby还没有进行主流开发语言,在国内的工作机会还不多,但是未来的发展前景是比较好的。
打字不易,如满意,望采纳。
‘叁’ Ruby和Python都是用来做什么类型的程序的
Python和Ruby都是解释性语言,语法简洁明了,类型无需专门定义,例如int char等都不用声明,一般java ,C 等需要用10~30行代码量,python,ruby只需要几行就搞掂:
C语言
HELLO WORLD程序如下:
#include <stdio.h>
main()
{printf("Hello World!\n");
}
python:
print "Hello World!"
ruby:
puts "Hello World!" / print "Hello World!" 都可以!兼容性很好控制语句也是,C习惯也可以兼容,也可以for ...i ...in range()
ruby和python差不多,代码编写速度会快很多,用来实现程序逻辑测试,开发速度飞快;但是执行速度就差了,因为不定义类型的原因,这就只是个人的理解了;更多的,你可以多看看网上的专题,那会更详细。
‘肆’ ruby为什么没有python火
主要是适用范围的问题。ruby基本只用于网页后台开发而Python除了网页后台还有大量数据方向的应用(数据工程,数据分析)。
‘伍’ 为什么在国内 Python 比 Ruby 更流行
Python和Ruby有很多相似点,并且各有特点,国际上用的都挺多,但同国内情况一样,国际上Python也比ruby较多。
python是一个荷兰人开发的,而ruby是一个日本人开发的。Python成功案例多,易于教学,所以很多培训机构培养出一大批搞Python的。
ruby大多用于unix,有很多对windows的支持不如Python,易学但难精通,不过在国际上市场也有挺多,在国内少之又少。
在学术上,国内对于Python的研究探讨平台比ruby多很多。
所以国内Python更流行
‘陆’ ruby和python哪个强大
Ruby和Python都是基于Web应用程序和Web服务的编程语言,这两种语言有一定的相似之处,所以很多人就喜欢将这两者进行对比。那么ruby和python到底哪个强大呢?
Python
Python采用的是直接编程方法,主要目标的是使程序员显而易见。在Python中,只有一种“最好”的做法,这种理念导致了Python严格的语言布局。
Python的核心理念包括三个关键的层次原则:显式优于隐式、简单比复杂好、复合胜于复杂。
以上三个原则使得Python更加易于学习和阅读,同时这也是Python受到编程初学者青睐的原因。Python在介绍性编程课程中占有重要地位,语法简单,易于理解,另外Python的代码结构明确,开发人员可以很容易的定位错误,实现调试。
相关推荐:《Python教程》
Python的原理层次在语言的许多方面都是显而易见的。它使用空白来做流量控制作为语言语法的核心部分与大多数其他语言(包括Ruby)不同。缩进代码的方式决定了其动作的含义。这种空白的使用是Python“明确”哲学的一个很好的例子,Python应用程序的形状说明了它的逻辑和应用程序的行为。
Ruby
与Python相反,Ruby专注于“人类语言”编程,其代码阅读起来更符合人类的习惯,而不是机器的习惯。Ruby的发布者Yukihiro Matsumoto表示:“我设计Ruby来是我的惊讶最小化,我现在可以肯定全世界的程序员的思维都是相似的。”不同的情况,Ruby都可以不同的方法来实现相同的事情。
与Python不同,Ruby有一个“块”的概念,块由大量的代码组成。Ruby将OOP(面向对象编程)的概念发挥到了极限,一切都可以是一个对象,甚至全局变量都是在ObjectSpace对象中表示的。
类和模块本身是对象,而函数和操作符则是对象的方法。这种组合让Ruby变得十分强大,当然除了这些,Ruby的函数编程和lambdas函数也不容小觑。Ruby的粉丝认为它的优雅也是其顶级卖点之一。Ruby的“magical”功能和灵活性可以很好地跟踪错误。
社区:稳定与创新
虽然功能和编码理念是一门编程语言兴盛的主要驱动力,但是社区的贡献也是不容小觑的。而我们今天的主角Python和Ruby都拥有强大的社区。
Python的社区包括一个大型的Linux学术社区,因此会有很多数学和科学的学术用例。这种支持为社区提供了稳定性和多样性,未来随着Python在Web开发中的应用越来越多,用例也会增长,社区的作用会日渐重要。
Ruby的社区主要侧重于Web开发,与Python相比,Ruby社区的创新性更强,但是有时创新也会导致很多事情被破坏。此外,Ruby社区也比之前更加多元化,但距离Python的多样化水平还有一定差距。
总结
对于Web开发来说,Ruby和Python都有各自的优势,分别是Rails和Django这两个强大的框架,但是真要说哪个更强大,这个真的无法下定论,只能说各有各的优点,最终决定哪个好用的,还是你的编码水平和经验水平。
‘柒’ ruby和python哪个好学
Ruby和python都挺好学的。建议学习Python,语法的话,Python相对更简洁。而且Python应用场合更广泛,运维、网站开发、数据处理、科学研究都可以。
相关推荐:《Python入门教程》
Ruby和Python十分相似,有很多共同点,但也有一些不同之外,以下是Python和Ruby的对比:
1、Python和Ruby都是面向对象的语言,都是动态和灵活的。二者的主要区别在于他们解决问题的方式。Ruby提供了不同的方法,而Python通常只有一个,这既是优势也劣势。
2、最流行的Ruby框架是Ruby-on-Rails,跟Python的Django极其相似且同等高效,不过,如果开发偏重于大量计算和数据处理的应用,还是优先Python。
3、Python在数据科学和数学方面很受欢迎,所以在这里你可以找到很多的学者和教授。
4、Python的支持者是世界上规模最大和构成最多样化的一个团队,不仅有数以千计的个人开发人员,还有Google,Yandex,Dropbox,Mozilla,Microsoft(在Visual Studio中使用它),Intel等大公司,已经用Python创建了世界上最大的和最受欢迎的项目。
对于Python和Ruby编程的使用,要根据其特点进行选择,就其发展和就业前景而言,Python相对更好,对于想从事IT编程的人员来说,是一个好选择!
‘捌’ Python,Ruby,Go语言哪个更值得学习
你这问的,你的是不是哪个语言更有发展前景是不?
一,Python 简单易懂,入门快,偏向处理数据分析,图形化,脚本
现今流行的爬虫,数据分析,django开发
二,ruby, 简单易懂,入门快,偏向前端网站开发
三,Golang非常适合开发游戏服务器, 特别是手游服务器
你到网络查看每个语言的优势,劣势,适合开发什么项目,用这三门语言在现今社会偏向服务哪一类(如前端网站开发,游戏开发,后台开发等等)
就像用人一样,把每个人的优势劣势举出来,适合解决哪一方面。答案自然而然就浮出水面
然后你再选哪一门语言更适合你;千万不要让别人替你做决定或盲目听别人的建议。自己实践而定
‘玖’ 为什么我选择了Ruby而不是Python
伴随着RoR的风行,Ruby语言受到越来越多的开发者的关注,同为脚本语言,Python的地位却略显尴尬,什么样的原因,造成了这样的局面?
笔者认为有以下几个方面:
一、 RoR的推波助澜
笔者认为,Ruby的成功,很大一部分是由于RoR的带动。
几年前,如果你没听过RoR倒是情有可原,但如果今天,RoR对你来说,还是一个陌生词汇的话,那你就有点危险了。:)
什么是RoR呢?
全称,Ruby on Rails,简称,RoR或者Rails。
它是个全栈的(full-stack)web应用框架,它为开发者提供了构建一个web应用所需的完整基础结构,并且严格按照MVC(模型-视图-控制器)架构进行开发。
RoR致力于提高开发者的开发效率,希望通过尽量少的代码,完成尽可能多的功能。基于这样的考虑,RoR有两大设计原则,一是,不要重复自己 (Don''t Repeat Yourself);二是,惯例优于配置(Convention Over Configuration)。
使用RoR,你甚至可以通过简单的几条命令行、几行代码,就完成一个功能强大的web应用程序,这极大地提高了开发者的开发效率。
2004年7月,RoR一经发布,在短期内,便受到很多开发者的追捧。时至今日,RoR已经被全世界的开发者们所关注,它带给开发者的效率提升,是前所未有的;它带给业界关于软件开发的思考,也是意义深远的。
在RoR如此风行的大背景下,Ruby on Rails,这个需要使用Ruby进行开发的web框架,也自然地带动了Ruby语言的发展。
在下面的“Ruby语言受关注程度趋势图”上,可以清晰地看出,Ruby语言在RoR发布也就是2004年7月后,进入了高速发展期。
Ruby因为有了RoR这样的“杀手级”应用,变得春风得意,那么Python呢?
在《浅谈Python语言》一文中,我们提到了Python具有丰富的API库,在web开发方面,也有Django、Turbogears这样的一些框架,就运行速度而言,
Python比Ruby快;就社区而言,Python也比Ruby成熟,可是为什么Python没有产生一个像RoR这样的“杀手级”应用呢?
Python语言的创始人Guido在接受InfoQ采访时,是这样解释的:
“我不喜欢Killer
Application,因为那会让多数人或者社区将精力集中于一个地方。Python是一个应用广泛的语言,基于Python已经产生了很多好用的
Web框架,比如Django等。但是Python不Killer
Application,至少目前是这样,而且我相信随着Python社区的发展,会有很多Killer
Applications自然出现。我喜欢多样化的应用。”
通过这个观点,我们可以看出Python在其发展道路上,追求的是一种均衡,一种“大而全”。
“会有很多Killer Applications自然出现”,这点,我想我们需要拭目以待。单就“均衡”而言,笔者认为这很危险,作为一门脚本语言,试图做Java之类传统语言做的事情,不太可取。
以Java为例,在web应用上,有太多的框架可供选择,不错,“在不同的场景用不同的框架”,这想法很好。可是,在实际应用中,有多少开发者可以根据项目特点,正确、合理地选择框架?
与其到最后,用户还不知道该如何选择,还不如一开始就替用户做出一个选择。
作为Python的使用者,我更愿看到有个Python的“杀手级”应用出现,进而带动Python更快速地发展。
你可以说RoR成就了Ruby,可是Rails为什么偏偏选择了Ruby?!Ruby优势何在?
二、 Ruby的优势
1. 比Perl更强大,比Python更面向对象
“比Perl更强大,比Python更面向对象”,这是Ruby创始人Matz设计Ruby的初衷。
Python既支持面向过程的编程也支持面向对象的编程,而Ruby则是完全面向对象。
在Ruby中,任何东西都是对象,包括Python中的基本数据类型;每个过程或函数都是方法。
例如,取-3的绝对值,在Python中,是这样的:abs(-3)。
而在Ruby中,则是这样的:-3.abs。这种OO的方式,显得更加直观。
2. 强大的语法功能
单就语法的简单性而言,Ruby不及Python。但解决一些较复杂的问题,Ruby强大的语法功能,有助于降低问题的复杂度。
例如:
Ruby以“块”的方式来实现列表内的条件、循环语句,比Python的更灵活、更具通用性。
Ruby具有类似Lisp的彻底的函数方式的条件、循环语句等。
Ruby的迭代器功能可以将流程控制结构抽象化。
3. 强大的字符串处理、正则表达式功能
Matz认为:Ruby > (Smalltalk + Perl) / 2。
Ruby类库是对Perl语言功能的面向对象方式的重组,因为借鉴了很多Perl的东西,使得字符串处理、正则表达式这块,Ruby同样强大。
4. 不会僵住的“胶水语言”
同样是“胶水语言”,Ruby比Python更灵活。
使用过一段时间的Python,你会发现,Python比较依赖第三方的东西。相比较,Ruby则更依赖自身。例如,Ruby可以使用(UNIX的)绝大部分的系统调用,单独使用Ruby也可以进行系统编程等。
有优势,Ruby就一定可以成功了?Python同样也有很多优势!对,还得看当时所处的环境。
三、 时势造英雄
这点还得回到RoR的崛起。
Ruby,1995年12月正式发布,2000年进入美国;2004年7月,RoR正式发布。
RoR的出现时间,值得玩味。
在下面的“Java语言受关注程度趋势图”上,可以看到,2004年7月前后,Java处于一个相对“衰退期”。
提到Java,大家应该都会想到J2EE。
J2EE应用程序的广泛实现是从1999、2000年开始的,它的出现带来了诸如事务管理之类的核心中间层概念的标准化,但是因其开发效率、学习难度和实 际性能的问题,在实践中没有获得完全的成功。作为J2EE核心技术的EJB(2.x),更是因其高昂的学习代价、极低的开发效率和极高的资源消耗,备受指 责。
在这样一个大背景下,2003年,Spring框架诞生了。
Spring的设计思想在于“使J2EE开发更加简单”。这个设计思想,在包括Java领域在内的众多软件开发领域引起了广泛关注。软件开发者们开始思考,如何让开发向着一个更简单的方向发展。
RoR在这一时期出现,无疑是顺应了这样一个潮流。
可以这么说,是历史选择了RoR,当然也选择了Ruby。
遇到合适的机遇,还不够,俗话说得好:“众人拾柴火焰高”。
四、 众星捧月
Ruby的出现,受到了两大主流平台Java和.NET的极力追捧。
2006年9月,SUN雇佣了JRuby的主要开发者Charles Nutter和Thomas Enebo;一年不到,2007年6月14号,JRuby 1.0正式发布。SUN在其Java IDE NetBeans 6.0 M10中,更是集成了对Ruby/JRuby的支持。反观Python的Java实现——Jython,则没有这么幸运,发展至今,它并没有得到SUN的 支持。
而Microsoft,也在2007年7月,推出了Ruby的.NET实现——IronRuby的预览版。
相信SUN和Microsoft对Ruby的竞相推崇,必然推动Ruby的进一步发展。
基于以上几点,笔者认为Ruby的成功不是偶然,并且相信这样的成功还会持续下去。对于Python的未来,我们也将拭目以待。
‘拾’ Ruby和python哪个更易懂、灵活
Ruby是非常流行的构建网站技术,最着名的是Twitter,Basecamp,Github,Airbnb,Slideshare,Groupon。
Rbuy和Python都是面向对象的语言,都是动态和灵活的,这些技术的主要区别在于他们解决问题的方式。Ruby提供了不同的方法。
最流行的Ruby框架是Ruby on
rails,它和Django非常类似,因为这两个框架都是为了解决相同的任务。如果我们比较这些技术的社区,你会意外的发现他们是一样的,然而形成这些团体的人是不同的。Python在数据科学和数学方面很受欢迎,你可以找到很多的引导者。
当你开发Web应用程序时,可以用RoR实现,也可以用Django,两者都是非常快速高效的,如果开发偏重于大量计算和数据处理的应用,则可以选择Python。
Python的支持者是世界上规模最大和构成最多样化的一个团队,不仅有数以千计的个人开发者,同时还有诸如谷歌、yandex、Dropbox、Mozilla、微软等巨头公司,他们和其他公司一起,已经用Python创建了世界最大的和最受欢迎的项目。
与Rbuy相比,Python更加流行,目前已广泛应用于人工智能、云计算开发、大数据开发、数据分析、科学运算、网站开发、爬虫、自动化运维、自动化测试等领域,就业范围广,薪资待遇高,且入门简单、语法清晰。