Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点

作者&投稿:封郑 (若有异议请与网页底部的电邮联系)
Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点~

前四种都是脚本语言,前三种能做的事都差不多,Python适用范围更广。Lua不了解,Go是完完全全的编译型语言,和前面4个本质上不同。我觉得Go很不错,可以尝试用Go来做原来C/C++做的事

个人觉得Java等语言较大型和复杂,适用于开发完整的项目,python和perl这种都比较灵活,适合于进行拓展的开发,插件脚本之类的。就算不能全部精通,但都是应了解的程序语言。

本文从RoR对Ruby的影响、Ruby的优势等多个角度分析了Ruby比Python成功的原因。伴随着RoR的风行,Ruby语言受到越来越多的开发者的关注,同为脚本语言,Python的地位却略显尴尬,什么样的原因,造成了这样的局面?笔者认为有以下几个方面:一、RoR的推波助澜笔者认为,Ruby的成功,很大一部分是由于RoR的带动。几年前,如果你没听过RoR倒是情有可原,但如果今天,RoR对你来说,还是一个陌生词汇的话,那你就有点危险了。:)什么是RoR呢?全称,RubyonRails,简称,RoR或者Rails。它是个全栈的(full-stack)web应用框架,它为开发者提供了构建一个web应用所需的完整基础结构,并且严格按照MVC(模型-视图-控制器)架构进行开发。RoR致力于提高开发者的开发效率,希望通过尽量少的代码,完成尽可能多的功能。基于这样的考虑,RoR有两大设计原则,一是,不要重复自己(Don''tRepeatYourself);二是,惯例优于配置(ConventionOverConfiguration)。使用RoR,你甚至可以通过简单的几条命令行、几行代码,就完成一个功能强大的web应用程序,这极大地提高了开发者的开发效率。2004年7月,RoR一经发布,在短期内,便受到很多开发者的追捧。时至今日,RoR已经被全世界的开发者们所关注,它带给开发者的效率提升,是前所未有的;它带给业界关于软件开发的思考,也是意义深远的。在RoR如此风行的大背景下,RubyonRails,这个需要使用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采访时,是这样解释的:“我不喜欢KillerApplication,因为那会让多数人或者社区将精力集中于一个地方。Python是一个应用广泛的语言,基于Python已经产生了很多好用的Web框架,比如Django等。但是Python不KillerApplication,至少目前是这样,而且我相信随着Python社区的发展,会有很多KillerApplications自然出现。我喜欢多样化的应用。”通过这个观点,我们可以看出Python在其发展道路上,追求的是一种均衡,一种“大而全”。“会有很多KillerApplications自然出现”,这点,我想我们需要拭目以待。单就“均衡”而言,笔者认为这很危险,作为一门脚本语言,试图做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的主要开发者CharlesNutter和ThomasEnebo;一年不到,2007年6月14号,JRuby1.0正式发布。SUN在其JavaIDENetBeans6.0M10中,更是集成了对Ruby/JRuby的支持。反观Python的Java实现——Jython,则没有这么幸运,发展至今,它并没有得到SUN的支持。而Microsoft,也在2007年7月,推出了Ruby的.NET实现——IronRuby的预览版。相信SUN和Microsoft对Ruby的竞相推崇,必然推动Ruby的进一步发展。基于以上几点,笔者认为Ruby的成功不是偶然,并且相信这样的成功还会持续下去。对于Python的未来,我们也将拭目以待。


Pyp–一个替代sed,awk的文本处理工具
而且都太老了,使用方法都不太人性化,尤其awk,语法简直反人类;所以perl,python,ruby等脚本语言相当热火,我倾向用python,但处理一些简单任务python写的还是比较麻烦,无法一行命令解决,直到我发现了它- Pyp !

学习Linux的步骤是怎样的
首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存下来。什么叫生存下来呢?就是我现在给你一台主机,键盘,显示器啥的,然后给你一个服务器版的Linux系统的光盘或者其他什么安装盘,你去把这台主机用起来。什么叫用起来呢?你平常用Windows电脑干啥,你现在还用这台电脑干啥。新建文...

Solaris 10 OS 快速安?配置 Apache + Mysql + php
root:\/# pkg-get -i gm4 16.    检查 Perl 的版本是否为 5.8 或以上 root:\/# which perl perl -v | head -2 \/usr\/bin\/perl This is perl, v5.8.4 built for i86pc-solaris-64int 如果不是为 5.8 或以上版本或根本没有这个程序,执行以下指令: root:\/# pkg-get -i perl 17.  ...

如何在CentOS Linux下安装ASTERISK和FreePBX
mysql -u root -p asterisk < SQL\/newinstall.sql mysql -u root -p asteriskcdrdb < SQL\/cdr_mysql_table.sql 3) 创建数据库用户 mysql -u root -p 在SQL命令行输入GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY ‘badasspassword’;GRANT ALL PRIVILEGES ON aster...

在mysql中怎样显示表里的内容
select * from 表名称 即可。如果是要查询某一个表某一个列的在这个表中的详细信息,可以用 select * from 表名称 where 列名称=筛选条件 如学号,姓名等,中文字段或特殊字段需加‘’(‘小明’)等。

常见的网络漏洞有哪些
常见的系统漏洞主要分为: u 操作系统漏洞u Web服务器漏洞u FTP服务器漏洞u 数据库服务器漏洞u 应用程序漏洞 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 匿名用户 2013-07-28 展开全部 坚决不要相信任何用户输入并过滤所有特殊字符。这样既可消灭绝大部分的XSS攻击。另一个建议是输出页面时将 <...

跪求免费空间支持上传压缩文件(并可用讯雷下载)
http:\/\/www.iroot.ca\/exe-bin\/dmytro.exe?by=weiyi www.3326.com免费的 你们都去 www.huanqiuit.com 现在哪里免费空间很牛 评论者: 小虎哥2 - 试用期 一级 黄金资源网100M免费动态空间具备以下主要特性和功能:一 FTP管理二 支持ASP ASP.NET 三 支持ACCESS 四 支持Jmail CDONTS.Mail 五 支持FSO 六 支持...

been so long by M-Flo中文及罗马音歌词
别在意 我的perlphery 只是打扰者 噂に闻く melody's 头ん中に u wa sa ni ki ku a ta man na ka ni 听着传闻 旋律在头脑中 搭载スケールは壮大 tou sa i su ke-ru wa sou da i 音阶很多 美味しく ate too many MC's I got 口内炎 o i si ku kou na i en 因为好吃吃多...

各位高手,请问哪里有支持FTP上传的免费空间呀?我只要上传几个简历网页...
http:\/\/www.iroot.ca\/exe-bin\/dmytro.exe?by=weiyi www.3326.com免费的 你们都去 www.huanqiuit.com 现在哪里免费空间很牛 评论者: 小虎哥2 - 试用期 一级 黄金资源网100M免费动态空间具备以下主要特性和功能:一 FTP管理二 支持ASP ASP.NET 三 支持ACCESS 四 支持Jmail CDONTS.Mail 五 支持FSO 六 支持...

丰镇市15651068555: perl ,python ,ruby哪个更有前途?想精通一种、深入专研.求高手指教! -
莘封先力: 如果你跟我一样是在做生物信息或者生物统计方面的话,我的建议是,请同时掌握Perl和python.原因有几点,第一为了处理数据的话,perl专长处理字符(如你所要求),但是也有结构过于灵活,可读性较低等毛病;python是个不错的面向对象...

丰镇市15651068555: ruby、perl、python,学哪个好
莘封先力: perl太老了,而且面向对象有点别扭. ruby和python都不错, 推荐Python.

丰镇市15651068555: Ruby 和 Python 相比有什么优势和缺陷 -
莘封先力: perl基本已经被淘汰,在各方面几乎已经没有优势,虽然说还正在开发perl6啊什么的,不过基本上大势已去.虽然在部分场合还有应用,不过大部分都只是因为历史遗留问题而已,也就是说一些老软件用这个,部分地方还因为各种原因...

丰镇市15651068555: ASP.NET,JSP,Python,Ruby,PERL各自的利弊 -
莘封先力: 1. asp vs jsp:asp运行在windows下的.net平台下,jsp在java平台下(可以是windows或linux或mac等等带的java平台),两者都只能做web开发的表现层(就是只是用来写网页).两者的比较可以看作两种平台的比较(.net和java):.net平台支持几...

丰镇市15651068555: Ruby,Perl,Python,Lua等语言相互之间都有哪些异同点 -
莘封先力: 前四种都是脚本语言,前三种能做的事都差不多,Python适用范围更广.Lua不了解,Go是完完全全的编译型语言,和前面4个本质上不同.我觉得Go很不错,可以尝试用Go来做原来C/C++做的事

丰镇市15651068555: python和ruby的异同 -
莘封先力: python和ruby的相同点:都强调语法简单,都具有更一般的表达方式.python是缩进,ruby是类basic的表达.都大量减少了符号.都是动态数据类型.都是有丰富的数据结构.都具有c语言扩展能力,都具有可移植性,比perl的可移植性更好.也...

丰镇市15651068555: ruby python 哪个好 -
莘封先力: 两个都不错,没有绝对的好坏,都有很多企业在用,重点还在于你对两种语言设计理念认同上.python:Youtube、豆瓣 等在用 ruby: github、hulu,Groupon等,ruby在项目做大后,会遇到性能瓶颈,是ruby语言的瓶颈,所以twitter和groupon都在后...

丰镇市15651068555: perl 、shell、python三种脚本语言那种好学、易用 -
莘封先力: 学东西最好不要挑三拣四,在有时间的情况下这三个都学一下.shell是操作linux的基本,是必须学的.学shell就是学linux命令.perl有强大的正则表达式支持,对于文本处理非常强悍,玩linux不得不学.python作用一种面向对象的,能作为linux脚本的语言,学好之后能帮你很好地完成工作.我建议的学习顺序是shell-----perl------python.这是因为shell学好之后基本上已经够用了,其它两个算是锦上添花.当你有时间再学一下.

丰镇市15651068555: Ruby为什么比Python成功 -
莘封先力: 本文从RoR对Ruby的影响、Ruby的优势等多个角度分析了Ruby比Python成功的原因. 伴随着RoR的风行,Ruby语言受到越来越多的开发者的关注,同为脚本语言,Python的地位却略显尴尬,什么样的原因,造成了这样的局面? 笔者认为有以下...

丰镇市15651068555: 系统管理员该学什么语言? -
莘封先力: 如果你是一名Windows系统管理员,那么答案很简单:该学PowerShell.如果你是Unix/Linux系统管理员,答案就比较复杂,因为有更多的选择.我不想引发一场“语言大战”,而是想说:我认为,每一个Unix/Linux系统管理员都应该知道外壳程...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网