比较python和rubyPython教程

最近在考虑学习一门后端语言,在ruby和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的出发点也是为了codingforfun,因此可以用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开发领域以外的很多地方。据说豆瓣早期就考虑过RubyonRails,但是因为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社区缺乏RubyGem这样一个良好的包管理软件和包发布的网站。因此应用的构建显得不如Ruby那么方便,那么人性化。特别是在类库的版本升级上,就会遇到很多麻烦,不如RubyGem那么简单。

三、《ruby和python的比较》之更正

1、文档、开源项目、库支持,这些东西Ruby不要跟Python比,不是几个数量级的问题,何必貌似并列的排在一起。

2、Python确实没有把正则表达式模块内置到核心里面,但是却有re这个标准库的支持,当时的目的也是为了尽可能的把核心做到最小。我不太明白,使用标准库和内置有什么区别,甚至可以作为优点?且使用Python中的正则表达式也不过是多个import

re和调用时的几个字母而已,省下的无数个end足以抵销这个问题了。

3、至于嵌入HTML功能,Python里有C/Python双实现的Cheetah模板可用,据说托Zope的福,美国海军和法国政府在用,不知Ruby这个功能的成熟度如何?

WEB框架都支持构建在其上来提高效率。但是,似乎mod_ruby的更新,每年也只有几次。mod_python更有gnu.org这样的重量级应用,不知mod_ruby有没有?

5、另外,提到unix工具。Redhat

Linux的安装程序一直是用Python写的,如果你恰巧用ubuntu,那么,那个提示你更新系统的程序,也是用Python写的。

ruby”:”python

spark”=159,000:659,000。至于doctools,我更是无话可说,在google上只有15,800条记录,我到现在都看不出这个东西是干什么用的。所以找了个估计是类似的东西对比了一下,docutils,google的记录是25,400条。

7、“比Python库更完整的面向对象语法”。试问面向对象的目的是什么?再者,ruby能否像Python一样,绝大多数标准库根本不需要查文档,只要猜测一下大体上的名字,然后dir()一下,再help()一下就可以直接上手,用到第二次的时候,因为模块内东西实在太少,记忆太方便,就可以直接写出来的地步?另外,面向对象既不是什么银弹,也不是最先进的软件工程思想。

8、”ruby的整个库都是类继承结构的”,个人认为是Java的糟粕,反倒是当成宝学过来了。或许这也是ruby来拯救Java程序员的一项优势吧。

9、”基本数据类型和运算符都是可以重载的”,这个不是太清楚,不知Python中重载__add__之类的算不算。

10、”ruby主要的功能都是通过对象的方法调用来实现的,而不是函数”,Python中所有的东西都是对象,但并不都是类,不知这句还有什么意义。另外,推荐你不要太追求什么彻底,还是实用这个词比较有吸引力。

11、Python没有严格要求单继承是给程序员以灵活性。另外,关于接口,Python中只要定义了同名的函数就算是具有了相同的接口,玄学上升到了这个高度,我也有些迷糊了。至于接口,不要那么自信,ruby的所谓接口也不过是个mix-in。这个东西Python的几个大项目中也有过实现,只是因为对Python意义不明显,所以才没有更多的使用。

12、关于lisp的函数式编程,Python中有很多内置支持,如map、zip、filter等等,当然还有lambda。不要说支持,我们谈实用。Pythoner中尚且有些人认为函数式编程影响了代码可读性而尽量避免呢。所以,你认为支持什么东西之前,先想好这样东西算不算是个好东西。

14、呵呵,ruby居然没有国际化支持,真是个笑话,不知道当初那个小日本怎么想的?难道他英语过了四级?

15、至于jython,现在也有了jruby,可能是作者的原文比较早的缘故吧。Python也有很多种实现,像是jython,ironpython,pypy,pyrex等等。Python的优秀其实并不一定要通过用其他语言来实现才能体现出来。当然更不要说寄希望于要Java来解救水深火热中的ruby了。

另外么,有些ruby的缺点不要回避:

16、ruby没有本地化线程,而是用的伪线程,根本无法利用多核CPU的优势。CPython使用了本地化线程,但是因为使用了GIL所以也是无法利用多核CPU优势的。但是Stackless的出现完全可以解决这个问题,并且stackless更是将Python提高到了并行计算的高度,这个高度的竞争对手可以是Erlang,ruby自然不必窥探。其中的超轻量线程技术可以确保一台很烂的机器上跑几十万的线程还很轻松。基于Twisted的异步编程方式也提供了一种选择。

17、刚刚开始学Python的时候,就听说过一句“Python是主流动态语言中最慢的”,后来才知道,说那句话的人根本没把ruby放在眼里。如果把ruby也算进主流动态语言里,那么就会出现一个比Python还慢了一个多数量级的语言了。

18、ruby流行么?是不是要走向PHP?php是个好东西,但是问题在于他只能作WEB编程,限制了PHP的应用范围,稍微需要系统一点的东西就要借助于C。而现在的ruby似乎也就是走着这条路。直到有一天,有人爆料”ruby是可以做客户端编程的”,赢得大家一片好奇。况且现在的ROR能否取代什么还是个未知数。从Java

WEB开发中解救出来的人们也并不都是走向了ruby。

四、评《选Ruby还是选Python?》

thread,仅仅由于部分模块不是threadsafe的而加入了GIL来限制应用多核CPU,而在我最近的测试中,在使用Twisted的异步线程之后,已经可以很好的利用多核CPU的计算能力了。执行效率上也不是一个数量级,自己试试就知道。

拿Java对比Python,可见作者创造力之强悍,哈哈。开源项目是很符合达尔文的自然选择的,难道Ruby的开源项目少倒成了优点了?另外,在Python中我也没见除了WEB

framework之外有什么项目有太多的重复。举个例子,pypcap就已经基本淘汰了pcapy了。

谈到资源,Ruby还有很长的路要走,所以提到双方都很强的时候,麻烦不要太并列化了。至于Java社区的人倾向于学Ruby,我个人认为只是被Java折磨惯了的开发人员目光太狭隘所致。语言是工具,面向对象也是工具,纯粹的面向对象并不见得高明到哪里去,Python也有函数式编程的支持,作者怎么没有提到。另外,Python的很多做法是以开发效率为第一目标的而不拘泥于各类形式,甚至为很多智力有限的人所广泛诟病的C++中的多继承,Python也可以支持。问题不在于支持了什么让你不喜欢的东西,而是让尽可能多的人用上他们喜欢的东西。另外,一直被Ruby开发者所认为的Python不够OO的一个例子就是取一个序列的长度,Python使用len(x)的方法。这个问题,如果Ruby开发者认为x.length就可以算是OO的话,那么Python也大可以直接使用x.__len__()来获取长度。从用方法来封装属性的Java角度讲,谁更OO一些呢,哈哈。

Ruby是一个日本人的作品,呵呵,这个就不多说了,不喜欢日本的国人有很多,在此我仅在技术层面就可以把Ruby贬低下去,无须用非技术的东西了。

关于Rubyon

提到ROR生成的目录有很多东西,要很久才可以都了解,这确实是IDE的综合症。在Python下,比较典型的例子是TurboGears,如果你希望了解整个应用程序的运行方式,你可以从核心cherrypy开始学习,然后开始使用TurboGears就没有什么可不了解的东西了。在这个角度上,ROR没有选择。再者,现在ROR可用的一种连接WEB服务器的方式scgi,当年也是Python的作品,又是一个在Python的阴影下活着的小东西。

未来的发展么,孤注一掷的Ruby还很难说,但既然是孤注一掷,风险还是蛮大的。而Python么,我也以为真的会平稳的发展,但是后来Micro$oft的加入,让我们都难以预料Python的未来到底有多大了。我们再回头谈谈作者一直讨厌的Python的多样性,在我看来Ruby可以超越Python的东西屈指可数,而Python超过Ruby的东西,自然是Ruby难以逾越的鸿沟。所以从编程语言的多样性考虑,也就不建议大家学Ruby了吧,少了一种选择,聚集一些人气总是好的。

五、python和ruby,我选谁?

其实python和ruby非常接近,比大多数别的语言要接近的多,所以喜欢用啥就用啥(大实话,虽然也是废话)。语法上的差别虽然有那么一点,大部分是syntaxsugar,我斗胆稍微列几个(python我也忘得差不多了,不对的大家尽管来鞭尸吧),但是主要差异还是设计思想上的:灵活vs明确.我不认为两者在生产力上会有什么差别,如果你熟悉的话。*注意,仅限语言本身的比较。

1.ruby的case可以匹配很多东西:范围/数组,对象,正则表达,python没有case/switch而使用if/else比较死板点

2.python的缩进很漂亮,虽然有时会造成些许麻烦。ruby的end蛮难看的,所以大家都被逼当oneliner(玩笑)

3.感觉上ruby比python更OO,当然这也可能是因为python不提倡用那些改变对象内部构造的‘伎俩'造成的错觉

4.python有listcomprehension,ruby没有:(

5.python有真正的keywordargument,ruby用hash模拟,当然实际用起来没什么差别

6.python的self很讨厌,ruby没有那种繁琐的东西

7.reflection,ruby内置了很多方法,比如object.methods,而python把这些信息存在特殊的字典里。差不多

8.ruby的block功能很强,python的lambda只能返回单一值

11.ruby有单子方法,也就对对象单独定制,python不知道有没有类似概念

12.ruby有method_missing机制,python可以使用__getattr__截获未定义方法(fromqiezi)

13.ruby使用单继承+mixin,python使用多重继承,不过python也有mixin

14.ruby有attr_*系列语法helper,省却自己写一堆setter/getter,python的property方法还是得自己写setter/getter

15.ruby和python都使用ducktyping,不过python也有一套显式的interface机制(从zope3并入内核了么?)

16.ruby的函数调用括号是可省的,稍微少敲几下键盘。python默认没括号也不带参数的话返回函数本身的一个引用。

17.我不清楚python的metaprogramming能到什么程度,只好等大牛来说说了。只是觉得pythoner不常用那个,也许觉得会把程序逻辑搞得晦涩不明。

18.ruby从perl继承了一部分难看的东西,比如很多预定义的$x常量

19.ruby内建正则表达,方便一点

20.ruby的yield是用来callblock的。而python的yield是用来给generator输入输出值的。

21.python的库给我感觉命名规范有点不统一,有些方法用snake_case有些则用CamelCase,也许是库太多了遗留下的历史问题

22.python的三引号很漂亮,ruby的

23.ruby的类库设计中喜欢给方法添加别名,方便记忆。

另:ruby官方网站也提供了一些基本的比较。

六、两种语言的资源和学习曲线比较:

资源上,两者社区都很强,有趣的是,现在Java社区存在被Ruby同化的危险,至少我订阅的几个Javablog聚合中谈Ruby比Java还多。Ruby的社区较为集中,Python则比较分散。我总怀疑Ruby的日本用户较多,但因为不懂日文,很难确认这个想法。对于一个母语非英语的创始人,我总是有点恐惧,怕很难理解他,怕很难得到最新消息等等,虽然这个担心目前看来并无必要,不过,谁知道会怎么样呢!

Ruby比pyton更容易上手。从语言特征看,Ruby有很多有意思的创造,比如说block,但大规模的应用这些好玩的东西让程序变得混乱。Python语法强调简单,但是由于太灵活,简单得太过分,于是传统程序员经常会看到一些令人大吃一惊的表达方式。我不知道这应该算优点还是缺点,至少我认为语法过于灵活,容易导致不同程序员的代码风格差异过大,增加了学习成本。

初期入门,Ruby更容易,但一旦达到一定复杂度,那么Ruby的难度骤然加大。Python入门不容易,复杂的时候也不会太痛苦。rails有入门简单,深入难的问题。rails生成的目录是做什么用途?o/rmapping如何实现的?如何把数据从web中传递到数据库的。这些都是Ruby程序员早晚要面对的问题。Python则不会这样,如果搞不清楚这些,大概根本没办法开始。集成度太高的快速开发工具都有这个特点,无论是VB、Delphi,还是.net,有多少使用了半年以内的开发人员可以说清楚工程目录下面所有的文件的用途、每个文件中的语法?我相信很多很有经验的用户也未必说的清楚。

从架构上看,二者虽然实际上相差甚远,但最后表现出来的结果反而很相似。Ruby是纯粹的OO语言,而Python是函数和OO混合型。虽然Ruby也能用函数风格的编码方式,但实际上是模拟出来的。他们的这个差距对于普通的程序员影响并不大,毕竟看起来差不多。

总体来说,如果是非专业人员初尝开发,Ruby是合适的。对于专业的程序员,我还是建议选择Python。

七、从Python到Ruby

Python是一门非常优秀的语言,从Python迁移到Ruby,你将发现一些语法上的不同。

相似点

和Python一样,在Ruby中,…有一个交互提示(叫做irb).你可以在命令行中读取文档(通过ri命令来替代pydoc).没有特殊的结束一行的符号(新行除外).文字可以用多行,就像Python中的三个引号.List用[],Dict用{}(Dict在Ruby中叫“hashes”).Arrays的工作方式相同(2个Array相加成为一个更加长的Array,但是想这样a3=[a1,a2]合并,将产生一个包含数组的数组).Objects是有固定类型和动态转换的.一切都是object,变量名只是一个指向Object的指针.虽然关键字不同,但是exceptions的工作方式不变.你拥有嵌入文档的工具(在Ruby中叫做rdoc).

不同点

与Python不同,在Ruby中,…Strings是可以改变的。你可以使用常量(常量的值是不同改变的)。这里有些强制规定的书写要求(例如:class的名字以大写字母开头,变量名已小写字母开头)。这里只有一种容器(Array),并且是可以改变的。引号中的String限制不同。这里没有新风格的Class,Class只有一种风格。你无法直接访问属性,在Ruby中,都是通过方法调用实现的。在方法调用中使用(),是一种可选的策略。这里用private等等限制访问的关键字,来替代Python中的名字隐藏。“mixin's”用来替代多继承。你可以在任何时候修改已有的Class,并添加新的方法。用true和false来替代True和False(用nil来替代None)。在判断真值的时候,只有false和nil会被认为是假.其他所有的都认为是真(包括0,0.0,“”,和[])。用elsif替代elif.用require替代import.但是用法是相同的。用usual-style来注释文档(替代docstrings)同时用来生成文档。

八、从三个方面来进行Python和Ruby的比较:

1.各自所适用于什么应用

2.开发环境、运行环境

3.可移植性如何,因为项目最后计划移植到手机平台,如windowsCESymbina

【1.各自所适用于的应用场合】

查阅的结果似乎对于这两种语言的评价都很好,在网络开发上的性能都很好。都很适用于快速的应用程序开发,开发的效率很高。

Python:

摘取了跟项目有关的一些应用方面的叙述

跨平台开发:

Python以中立方式支持不同的一系列平台,如果用户使用的系统包含不同的平台,使用Python开发应用程序则再好不过;它这种适应性也可以为系统预留使用其它工具的可能。对于频繁更换平台用户,Python是个理想的选择。

互联网程序设计:

Python带有的标准模块可以对网络插槽进行初级和协议级别的通讯,比如,如果要从POP服务器上读取电子邮件,Python随带的库模块可以做到。另外,Python还支持XML、HTML和CGI库文件,所以利用它可以解析用户输入的需求,并通过网络服务器产生最佳质量的成果。

程序员还可为拥有Python内置解释器的Apache、Unix和Windows网络服务器编译模块。基于CGI程序的功效,可以很方便地执行Python语句而不用单独装载。

针对于python的网络编程,有一本很好的书:《python网络编程基础》

这本书全面介绍了使用Python语言进行网络编程的基础知识,主要内容包括网络基础知识、高级网络操作、WebServices、解析HTML和XHTML、XML、E-mail服务、FTP、使用Python操作数据库、SSL、几种服务器端框架(包括Socket服务器、SimpleXMLRPCServer、CGI和mod_python),以及多任务处理(包括Forking、线程和异步通信)等。本书实用性强,共提供了大约175个实例,6600行以上的代码,是帮助读者全面而快速地学习Python语言、编写网络程序的最佳实践。

Ruby:

功能强大,面向对象的脚本语言,可以使您方便快捷地进行面向对象编程,有时使用像Smalltalk、Eiffel或C++这样正式的面向对象语言来开发一些小项目显得有点”小题大做”,而Ruby刚好可以满足这些面向对象编程的需求.当然了,您也可以使用Ruby进行普通的面向过程编程。

Ruby支持很多网络协议,不管是高层的还是底层的。ruby提供了一些基本类,让你可以使用TCP,UDP,SOCKS等很多协议交互,而不必拘泥在网络层。这些类也提供了辅助类,让你可以轻松的对服务器进行读写。进行网络编程也是很不错。

【2.开发环境、运行环境】

Python:相比之下,就是没有一个很强的集成开发环境。有人说开源软件相对于收费的那种软件好用一些。

用得较多的几个:

Python自带的idle:不是python的IDE中最好的……

PythonWin:使用起来非常得心应手(就像使用Windows那样舒服)。它有个好用的编辑器,包括代码合并、语法标签高亮显示以及代码自动完成特性。PythonWin和有些IDE一样,不包含任何类型的表单设计器;但它提供一个优秀的调试器,具有监视、代码检查、交互调试窗口、断点、和其他调试器该有的功能。最重要的是,PythonWin很稳定,尽管有时候在Win95r2系统上使用时会奇怪地“停止响应”。界面上来说,PythonWin比较简单,但非常吸引人,很好的运用了可嵌入和可对接的元素(我有点偏爱Idle风格的“manywindowseverywhere”,它也为其他许多IDE所采用的)。PythonWin还集成了ActiveState的HtmlHelp版本的Python说明文档和PythonCOM。

eclipse的pydev插件,eclipse+pydev

Pydev基于Eclipse的,非常棒的Python环境,改进速度非常快。提供的一些功能

UliPad:

一个编辑器,你可以用它来进行你的文档写作,编程开发。它使用Python编程语言开发,用户界面基于wxPython。它除了想要完成一般编辑器的常用功能之外,最主要是想实现一种方便、灵活的框架,开发者可以方便地开发新的功能。而且有编程经验的用户还可以针对日常工作中的特别问题编制处理的插件,从而使之与自已的日常工作紧密结合起来。由于使用的是Python这种功能强大的编程语言,你可以方便地对本软件进行修改,从而满足自已的需要。

UliPad支持代码着色、智能补全、代码调试、Python类浏览、代码片段、Ftp功能、目录浏览等等强大功能,其Doc目录下的文档更是非常丰富,是你编写Python的绝世好帮手!

系统要求:

python2.4+

wxPython2.6+

我们最后选择的是UliPad,还是挺棒的。

Ruby有极好的高级调试器。

可以用netbeans的ruby插件或eclipse的ruby插件

Eclipse下安装开发环境的大致过程:

1.安装Ruby1.8.6One-ClickInstaller。

2.将EclipsePlatformRuntimeBinary压缩包解压到某个目录。

3.将RubyDevelopmentTools压缩包的内容解压缩到Eclipse相应目录下。

运行环境在其官方网站上下载相应的版本再安装即可,windows下面的安装较为简单,双击运行即可安装。

【3.可移植性】

Python:

由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、PalmOS、QNX、VMS、Psion、AcomRISCOS、VxWorks、PlayStation、SharpZaurus、WindowsCE甚至还有PocketPC!

Python在执行时,首先会将.py文件中的源代码编译成Python的bytecode(字节码),然后再由PythonVirtualMachine来执行这些编译好的bytecode。这种机制的基本思想跟Java,.NET是一致的。然而,PythonVirtualMachine与Java或.NET的VirtualMachine不同的是,Python的VirtualMachine是一种更高级的VirtualMachine。这里的高级并不是通常意义上的高级,不是说Python的VirtualMachine比Java或.NET的功能更强大,而是说和Java或.NET相比,Python的VirtualMachine距离真实机器的距离更远。或者可以这么说,Python的VirtualMachine是一种抽象层次更高的VirtualMachine。

可以安装一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用.在Symbina智能手机上支持C++和JAVA开发的两类程序,装上Python后,也就可以支持众多以Python开发的各种程序了。对于普通的手机用户,我们不用了解太多,只是安上Python这个平台就可以了,可以让我们的手机支持更多以Python开发的程序。目前在Symbian手机上已经有相当多的Python开发的程序,也都是比较实用的。

Ruby:

它大部分是在Linux上开发的,但是可以在很多类型的Unix,Dos,Windows95/98/Me/NT/2000/XP,MacOS,BeOS,OS/2等系统上运行。

【总结】

然后针对于Python跟Ruby在朋友的建议下还给出了如下一些参考意见,在此感谢他:

1.Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。

同一个问题用Python几个人分别写写出来的代码会很相近。但Ruby则设计思想不一样,用它写出来的程序太过于灵活,不同的人写出来可能相差会很大。

2.Ruby英文文档极度缺乏,中文文档就更不用说。Python社区相对成熟,也有一大堆的资料。

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

THE END
1.各个编程语言的优缺点,你适合哪种?太阳是白的TIOBE 编程语言排行前10中,各个编程语言的优缺点如下: Python:优点:易学易用,具有大量的第三方库和工具支持,适用于数据分析、人工智能等领域。 缺点:运行速度相对较慢,不适用于需要高性能计算的应用程序。 Java:优点:具有较好的跨平台性能,适用于大型应用程序的开发,提供了强大的面向对象编程能力。 https://www.cnblogs.com/alax-w/p/17119924.html
2.2023十大最牛编程语言排行榜以及各语言的优缺点缺点: 不适合移动计算 由于是一种解释性编程语言,所以速度较慢(相对其他编程语言而言) 数据库访问层有些不成熟 由于GIL(全局解释器锁),线程不好(这个是吉多都没解决的问题) C/C++ C和 C++ 在编程世界中占有重要地位。几乎所有的低级系统,例如操作系统和文件系统,都是用 C/C++ 编写的。如果您想成为系统级https://blog.csdn.net/weixin_42250835/article/details/131950945
3.计算机导论实验报告(精选15篇)4、UTP优缺点 f)缺点:对电波干扰敏感性较大,电气性较差。g)优点:直径小,重量轻、易弯曲、易安装、价格便宜。 4、双绞线导线色彩编码白蓝、蓝白橙、橙白绿、绿白棕、棕 5、双绞线的连接方法:直通线缆水晶头两端都采用T568A标准或T568B标准。交叉线缆一端采用T568A标准,另一端采用T568B标准应用场合 https://www.ruiwen.com/shiyanbaogao/6303505.html
4.Solidityvs.Vyper:不同的智能合约语言的优缺点看一下 Vyper 和 Solidity,你可以清楚地感觉到 Vyper 是从 Python 中汲取了灵感,而 Solidity 是从 JavaScript 和 Java 中汲取灵感。因此,如果你对于这几种语言更熟悉的话,那就能很好地使用对应的智能合约语言。 Vyper 旨在成为一种简约、易于审计的编程语言,而 Solidity 旨在成为一种通用的智能合约语言。编码的体https://new.qq.com/omn/20221208/20221208A086AM00.html
5.Copilot插件:开启AI编程新篇章Copilot插件支持多种主流编程语言和框架,如Python、JavaScript、React等。这意味着无论你使用哪种编程语言或框架,Copilot都能为你提供强大的代码补全和提示功能。这种跨语言支持使得Copilot成为了一个通用的编程助手,适用于各种开发场景和需求。 五、Copilot插件的优缺点分析 https://developer.aliyun.com/article/1420209
6.计算机专业学生职业生涯规划书(通用10篇)1、目前的优缺点和社会的形势 经过认真的分析我发现我发现我对工作认真负责,能够耐心专研专业课,有很强的团队精神,有很好的沟通交流能力,需要改善的地方是做事执行力不是很强,自制力有点差。但是我还有大学三年的时间足够盖伞这些缺点了。现在的社会是机遇与挑战并存的,现在社会上开设计算机专业课程的学校很多,导致现https://www.yjbys.com/jiuyezhidao/zhiyeguihua/3098608.html
7.顶级编程语言之对比:RustVSGo51CTO博客除了介绍这语言外,还会比较两种语言之优缺点。 Rust语言 Rust语言于2010年推出,其发明的主要目标在于全面提高安全性,出色模块化的设计,良好的并行性和语言性能。根据数据和研究,发现大约74.5%的开发人员喜欢和点赞Rust编程语言,从面世以来,使用Rust编程语言的项目越来越多。在2019年, Rust编程语言的使用量较前一年增长https://blog.51cto.com/u_15127566/2664598
8.python编程语言对比C++语言的优势与劣势在当今的计算机世界中,有许多编程语言可供选择。python编程语言和其他语言(如C++,Java)等都是非常流行的语言。在本文中,八维职业学校将对比分析 Python 与另一种语言的优劣并讨论其在不同领域的应用。 Python 是一种高级编程语言,由于其简单易学和语法简洁清晰,已成为许多开发者的首选语言之一。以下是 Python 的优势https://www.bwie.com/jsgh/8.html
9.19道必须掌握的C++面试题简单描述几个排序算法的优缺点? 答:选择、冒泡、快速、希尔、归并、堆排等。 1.快排:是冒泡排序的一种改进。 优点:快,数据移动少 缺点:稳定性不足 2.归并:分治法排序,稳定的排序算法,一般用于对总体无序,但局部有序的数列。 优点:效率高O(n),稳定 缺点:比较占用内存 问15:new和malloc的区别? 答: 1、https://www.w3cschool.cn/cpp/cpp-a9no2ppi.html
10.编程学习计划(系列八篇)这些编程语言之间有很多不同点,具有不同的应用场景和优缺点。因此,在选择编程语言之前,我们需要仔细思考所需的编程领域,例如机器学习、Web开发、游戏编程、系统开发等。我们可以根据自己所需的领域来找到适合自己的编程语言。2.学习基础语法一旦我们选择了编程语言,就需要学习它的基础语法。这是编程学习的第二步。在https://www.liuxue86.com/a/5151491.html
11.编程语言的排名编程语言的难度排名华为云为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:编程语言的排名。https://www.huaweicloud.com/theme/432484-4-B-undefined
12.高中信息技术课程标准(2)使用双向翻译软件,先将一段英文短文翻译成中文,然后将该中文内容再次翻译成英文,考察机器翻译的准确性,讨论机器翻译的优缺点。 (3)访问一个自然语言处理网站如:http://www-ai.ijs.si/eliza/eliza.html或http://alice.sunlitsurf.com/live.html,用自然语言与其中的机器人对话,通过寻找其“谈话”的破绽,讨论https://www.fqkhzx.cn/index/article/view/id/94.html
13.go语言有哪些优缺点go语言用来干什么Go 自带完善的工具链,大大提高了团队协作的一致性。 4. 执行性能好 虽然不如 C 和 Java,但相比于其他编程语言,其执行性能还是很好的,适合编写一些瓶颈业务,内存占用也非常省。 网页名称:go语言有哪些优缺点 go语言用来干什么 网页地址:http://chengdu.cdxwcx.cn/article/ddgcjgc.htmlhttp://chengdu.cdxwcx.cn/article/ddgcjgc.html
14.推荐几款主流好用的Python开发工具编程开发软件教程因此,在本文中,我将介绍一些常用的Python开发工具,并对它们的特点、优缺点进行比较,以帮助读者选择适合自己的Python开发工具。所以今天挑选了几款主流的编辑器进行介绍,都是功能比较丰富的IDE,至于大神使用的普通文本编辑器就不再此次考虑范围内,主要介绍PyCharm、Visual Studio Code、Jupyter Notebook、Spyder、IDLE这几https://www.jb51.net/softjc/927153.html
15.电子商务系统分析与设计第3章统一建模语言UML在线免费阅读面对这些建模语言,首先,用户没有能力区别不同语言之间的差别,很难找到一种比较适合其应用特点的语言;其次,这些建模语言实际上各有特点;再次,虽然不同的建模语言大多类似,但仍存在某些细微的差别,这极大地妨碍了用户之间的交流。因此在客观上,极有必要在比较不同的建模语言优缺点及总结面向对象技术应用的基础上,根据https://fanqienovel.com/reader/7106346964106611727
16.编程语言类型和优缺点是什么?Worktile社区编程语言类型和优缺点是什么 回复 共3条回复我来回复 这个人很懒,什么都没有留下~ 评论 编程语言是用于编写计算机程序的一种形式化语言。根据不同的目的和应用场景,编程语言可以分为多种类型,每种类型都有其独特的优点和缺点。 一、低级语言 机器语言:直接使用二进制代码编写,能够直接与硬件交互,执行效率高,但https://worktile.com/kb/ask/2421011.html
17.pascal编程语言有哪些优缺点问答Pascal编程语言的优点包括:1. 结构化:Pascal是一种结构化的编程语言,它强制程序员使用块结构、过程和函数,使程序的逻辑更清晰,易于理解和维护。2. 可移植性:Pascal编程语言具有很高的https://www.yisu.com/ask/64366899.html