Python 和 Ruby 的相同点:
都强调语法简单,都具有更一般的表达方式。
Python 是缩进,Ruby 是类 Basic 的表达。
都是动态数据类型。
语言扩展能力,都具有可移植性,比 perl 的可移植性更好。也都可以作为嵌入语言。
GNU世界。
lisp 特色的 eval 函数,也都能把函数作为参数。
Ruby的专门编辑器。
tk、Tk、SDL、FOX 等,Ruby 计划实现 SWIG 接口。
和 Python 相比 Ruby 的优点:
tml 的功能。Python 也有正则表达式,但没有 Ruby 的应用方便和广泛。
Python 的嵌入 Html 项目才刚起步。
Ruby 还有 Apache 的 mod 模块。(Python DOES have now - cloud)
Ruby 本身也实现和很多 Unix 工具,如 Racc,Doctools。比 Python 更亲近 Linux。
Python 功能更完整的面向对象的语法。
Ruby 的整个库都是具有类继承的结构。
他的基本的数据类型和运算符都是可以重载的。
Ruby 主要的功能都是通过对象的方法调用来实现的,而不是函数。Python 也在向这方面发展,但没有Ruby做的彻底。
Ruby 的类是更规范的单继承,还有接口等概念的实现。
Python 可以实现在列表内的条件语句、循环语句,而 Ruby 用“块”的方式来实现这个功能,比 Python 的更灵活,更具有通用性。
Ruby 具有类似 Lisp 的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。
nix 工具,如 Racc 等。
和 Python 相比 Ruby 的不足:
Ruby 的强大所引起的。它没有 Python 的简单性好。比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。
Python 的缩进表达方式比 Ruby 的 Basic 的表达方式更让人悦目,Ruby 程序的满眼的 end 让人不舒服。当然,Ruby 认为 end 的方式比 Python
Ruby 还没有 Python 的“自省”的能力,没有从程序文件中生成文档的能力。
Ruby 没有国际化的支持。国际化支持在 Ruby 的计划中。这是因为Ruby 的历史比 Python 要短造成的。
Ruby 没有类似 Jython 的东西。
Python 和 Ruby 的语言的选择:
Python 是没错的。Python 适合寻找简单语言的人,这很可能造成 Python 更流行,因此也有更多的支持。但如果要追求更强大的语法功能,则 Ruby 是好的选择。因为 Ruby 和 Python 的哲学有很多相似的地方,先从 Python 入手,尽量用 Python,如果 Python 的能力不足了,可以在找 Ruby。
总结:
Ruby 和 Python 的比较,就像五笔和拼音输入法的比较。拼音作为入门的输入法和长久使用的输入法都没有问题。五笔适合更高要求的情况。如果追求性能的不妨学学 Ruby。对编程语言感兴趣,想了解各种编程概念的学 Ruby 也会很兴奋。