Ruby有封装功能吗? 跟Python 相比哪个运行最慢? 哪个代码最短? 哪个逻辑结构最清晰?
发布网友
发布时间:2022-05-16 17:38
我来回答
共2个回答
热心网友
时间:2023-11-07 20:18
所有的语言都有封装功能,逻辑结构清楚不清楚是靠程序员
松本行宏如约于圣诞节发布了Ruby 1.9。根据Ruby的惯例,小数点后面第一位如果是单数,那么就表明这是一个实验版本,不推荐用于产品环境。所谓“产品环境”,对于目前的Ruby来说,基本上就是Ruby on Rails。从目前RoR社群的反映来看,确实有人正在尝试用Ruby 1.9配合RoR,但是尚属玩票性质。我询问了一些处在真实项目中的RoR团队,目前还没有人打算在自己的项目中使用Ruby 1.9。
在Ruby社群里的半仙级人物Mauricio Fernandez在这里总结了Ruby 1.9的主要新特性,洋洋洒洒的一大篇,充斥着鸡毛蒜皮的语法糖衣,我看了半天,愣是没看到几个特有意义的东西。其实Ruby 1.9的最重大变化在内不在外,新的虚拟机Yarv把Ruby的性能大大提高了。在CSDN上的一篇转载报道中提到,在一个Fibonacci序列的评测对比中,Ruby 1.9的性能较之Python 2.5.1还要快出两倍。当然,仅凭借一个测试就断定Ruby 1.9的性能快于Python是幼稚的,但是现在可以肯定地说,Ruby脑袋上那顶“速度最慢的动态语言”的大帽子肯定要摘掉了。
有人认为,这下子不得了了,Ruby要称霸动态语言了。你想想,Ruby已经几乎拥有了所有梦幻般的语言特性,神奇的动态能力,强大的支持库,内置的跟Perl可以比肩的正则表达式,Smalltalk级别的纯而又纯的面向对象特征,简洁明快的风格,跨语言整合也非常容易,唯一的缺点就是速度慢。现在连这个缺点都被弥补了,Ruby还能挡得住吗?其他的动态语言都该歇菜了。
虽然我也算是一个Ruby语言的拥护者,但是我并不这么认为。特别是,我不认为Ruby 1.9能够对Python造成实际的威胁,更谈不上“赶尽杀绝”。原因很简单,Ruby是一种魔幻语言,而Python是一种简约语言,Python的支持者也大多数是简约主义的忠实信徒。对于他们来说,一种语言越是魔幻,就越无法获得他们的信任。
什么是魔幻语言呢?这是我杜撰出来的说法。对编程语言进行分类有很多方法,其中人们常用的比如非常“过程式语言”,“面向对象语言”,“函数式语言”等,这是按照在这种语言中原始的看待程序的方式来划分。还有比如“编译型语言”和“解释型语言”,这是按照语言翻译发生的时间来划分的,还有一些别的分法。不过我一直觉得,根据语言本身的设计风格和拥护者的气质也可以把语言划分成“魔幻语言”和“简约语言“两类。
所谓”魔幻语言“,主要代表作品有C++、Perl、Javascript和Ruby。这些语言拥有丰富的特性,聪明的技巧和意想不到的奇效,永远有发掘不完的奇技淫巧,总能找到让人匪夷所思的”yet another way"。反过来,“简约语言”崇尚清晰直接,够用就行,要求从代码容易理解,宁可笨一点、累一点、多写一点代码,反对出人意料的技巧,反对故弄玄虚。C、PHP、Python和Lua这一派语言的代表作。而Java和C#从语言设计来说,一开始还是比较简约的,但是近来越来越魔幻,而且标准库设计相当繁复。但我倾向于将它们归于简约语言一类,因为虽然在其中也有很多技巧,但是这两种语言社群的总体风格是比较质朴的。VB的传统是典型的简约,老式的VB6和VBA都是典型的简约派,新的VB.NET虽然也能玩出魔幻来,但是根本上还是更亲近简约语言。
魔幻语言通常看上去更加引人入胜,能够做一大堆让人目瞪口呆的事情。魔幻语言的拥护者,通常都热衷于这种智力竞赛,他们发掘语言中每一个死角,寻找有趣的技巧组合,一遍遍地寻找更好的方法和思路,对语言层面的技巧如痴如醉,乐此不疲。在魔幻语言的社群里,“语言高手”是备受尊崇的,他们可能不知道怎么响应一个HTTP请求,但是却能够用不少于6种方式来写一个for循环。他们写的代码是一种谜语般的艺术,出谜语和猜谜语的人们都能从中获得巨大的精神满足。
简约语言就土多了。通常做一件事情就那么一两种方法,你真的没多少花花肠子可绕。光看代码根本不看不出你的道行,随便一个受过一点专业训练的人也能看透你葫芦里卖的什么药,在代码里找成就感,基本没戏。当然,这并不是说简约语言的“能力”要比魔幻语言差,或者是会*你的思维。相反,简约语言让你把注意力集中在哪些真正与问题相关的地方,而不是语言本身的表达方式上。因此从工程上看,简约语言更适合大规模、协作式的软件开发。
从长时间的比较来看,简约语言无疑受到更广泛的支持。
魔幻语言如果进行有效地控制,也可以以简约的方式来使用。这其中有两种途径,其一是通过有效的*方式使语言的应用归于质朴。比如Java和C#本身具有很多魔幻特性,是有资格称为魔幻语言的,但是整个社群的风气比较单纯,很少人喜欢炫技耍酷,语言的应用风格被有效地*在一个“简约子集”之中。第二条路径是通过魔幻实现质朴,C++大师Andrew Koenig曾经用这个观点来为C++的复杂辩护,但是C++在这方面做得并不好。要说这方面的成功案例,Ruby on Rails倒算是一个。RoR在实现中用了很多奇技淫巧,但是在这个框架之上开发Web应用,却显得比PHP更简约直观,这就是通过魔幻达到简约的例子。
回到开头的话题,Ruby是一个典型的魔幻语言,而Python则是简约派的代表。两个语言的支持人群在审美观念和开发风格方面差距非常大。初学Ruby和Python的人,都会感受到一种欣喜和兴奋,但是原因却不太一样。Ruby的学习者会惊喜于很多新的表达方式,比如 :attr_accessor 之类的魔幻特性,而Python学习者则会惊喜于实现具体功能的简洁性。可以说从一开始他们追求的就是不同的东西。随着学习的深入,Python开发者当然也会发现Python中的不少深入的特性,不过却并不倾向于滥用它们。长次以往,Python人群对任何语言的魔幻面都会产生一种厌恶感。我认识的一个Django开发者,就明确表示,就算RoR比Django开发效率高一点,也绝不使用Ruby,因为Ruby这个语言充满了“不必要的小聪明”。
从性能上来说,Python的性能获得大幅度提升的机会不太大,但我并不相信YARV能够真的让Ruby在速度上享有对Python的明显优势,两者的运行时效率最终应当在同一个数量级上,因此,语言的选择主要还是取决于风格和审美倾向。据此,我判断Python的开发者不会大规模转向Ruby,Ruby的发展也不会对Python构成实质的冲击。两种语言都将成为最主流的应用开发语言。
热心网友
时间:2023-11-07 20:19
越高级越慢ruby慢
Ruby跟Python哪个执行速度更快?
嗯。有些人说ruby快些。只是开发快。有些人说python快些。ruby发展的晚些,在某些情况下的确比python快些。不过python底层本身就是C写的。它本身脚本的执行效率相当高。这些差距基本可以忽略不计。所以一个程序的快慢首先取决于算法。本身的执行速度你可以测试一下,差别不大。ruby在某些领域里开发速度的...
Ruby和python哪个更易懂、灵活?
与Rbuy相比,Python更加流行,目前已广泛应用于人工智能、云计算开发、大数据开发、数据分析、科学运算、网站开发、爬虫、自动化运维、自动化测试等领域,就业范围广,薪资待遇高,且入门简单、语法清晰。
ruby和python哪个强大
Ruby的社区主要侧重于Web开发,与Python相比,Ruby社区的创新性更强,但是有时创新也会导致很多事情被破坏。此外,Ruby社区也比之前更加多元化,但距离Python的多样化水平还有一定差距。总结 对于Web开发来说,Ruby和Python都有各自的优势,分别是Rails和Django这两个强大的框架,但是真要说哪个更强大,这个真...
做WEB开发C# PHP PYTHON RUBY哪个效率高?哪个学习周期短?
C#优势:界面代码分离,所见即所得的开发 [其他语言都是杂合型,代码和html混在一起,大项目很难维护]强大的visual studio.net 的开发环境,这是其他任何一种web语言都比不了的。如果实现的比较简单,也可以使用MVC框架 windows下asp.net MVC或者sharepoint是不错的选择 PHP下cake PHP也是不错滴 ...
什么语言是最短的?
C的语言风格很垃圾,说实话。但是C的功能比较强大,因为他能直接操作底层硬件。高级语言,例如C++,Java,Python,Ruby等,之所以叫“高级”,就是因为他们有很多现成的数据结构类型。比如链表,字典,这些在高级语言中一般都能够找到类似的结构或者是直接能找到对应哪个的结构。因为现在的这些老师,以前都是...
程序语言Python?
Python区别于其他面向对象语言的关键有两点。首先,Python强调空格和编码结构,从而令开发者的代码具有良好的重用性。其次,执行脚本之前无须编译Python代码,这就是它为什么被当作脚本语言的原因。 Python易于扩展 Python语言有一个引人注目的优势,它可以针对语言无法完成功能的函数调用函数库。Python还具有有些相当有用的工具...
编程python语言?
③可扩展:python语言本身由C语言编写而成的,你完全可以在python中嵌入C,从而提高代码的运行速度和效率。你也可以使用C语言重写python的任何模块,从根本上改写python。 ④解释型:python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。 ⑤面向对象:python语言具备所有的面向对象特性和功能,支持基于类的程序开发。
编程语言排名(最受欢迎的编程语言排名)
5、RubyRuby是一种简单快捷的面向对象编程而创的脚本语言,由计算机科学家松本行弘于上个世纪90年代研发,这使得它成为广泛使用的最年轻的语言之一。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。Ruby语言通常非常直观,按照编程人认为它应该的方式运行。尽管这个语言本身是面向对象的,它也支持过程化、...
Ruby模拟键盘输入字符串
因为没有使用 chop!,所以得出结果将为假,$salut[0] 实际上就等于 $salut[0]\n.新行是由 STDIN 对象从 gets 方法接收的输入产生的.使用回车将会在值末尾添加一个换行符. autoit和按键精灵 按键娃娃这些属于按键工具 可以模拟控制 ruby,lua,php,python vb6.0,C#,java erlang等这些可以模拟控制 C/C++ 汇编 ...
Python有什么缺点呢?
1. - 运行速度慢,因为Python是解释型语言,是一种高级语言,代码会在执行的时候,一行一行的使用解释器翻译成底层代码,翻译成机器码,而这个过程非常耗时,所以他运行过程中,比很多语言的代码都慢了很多。- 线程不能利用多CPU,这是Python最大的确定,GIL即全局解释器锁(Global Interpreter Lock),是...