知行编程网知行编程网  2022-12-11 01:30 知行编程网 隐藏边栏  11 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python难还是ruby难的相关知识,希望可以帮到处于编程学习途中的小伙伴


python难还是ruby难


一、异同对比选择

1、Python和ruby的相同点:


·

都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。


·

都是动态数据类型。都是有丰富的数据结构。


·

都具有C语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。


·

都是面向对象的语言,都可以作为大项目的开发工具。


·

都有丰富的库支持。


·

也有最宽松的版权许可,除了一些工具属于GNU世界。


·

都有lisp特色的eval函数,也都能把函数作为参数。


·

也有图形界面的ruby的专门编辑器。


·

都获得了广泛的c库的支持。如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。


·

都有完善的文档。

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的源码打补丁的方式来增加功能。从源码结构上看,Ruby的实现太老了,Ruby很难扩展,只能不断打补丁。这就是为什么从 Ruby 社区涌现出如此多新的 Ruby 解析器实现的原因。这在很大程度上制约了Ruby的开发速度。相对而言,Python解析器更加成熟稳定。

在第三方库的数量上,Ruby 并不比 Python 少,但是 Python 比 Ruby 拥有更多高性能、高质量和经过验证的第三方库。事实上,很多Ruby第三方库还不够成熟。因此,这也在很大程度上制约了Ruby的发展。

3、Python应用广泛,而Ruby目前主要局限于Web领域

Python 被用于广泛的领域。除了web开发,还广泛应用于服务器后端高性能服务器的实现,服务器后端的各种密集型操作,全文检索,各种文本处理,系统管理, etc. 另外,桌面应用领域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来处理一些服务器后端的操作。总之,未来还是一个混合编程的时代。我们需要多了解一些编程工具,然后我们就可以根据自己的需要吃饭了。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享