回复内容:
引用一下孟岩的区分标准
Ruby是一种魔幻语言,而Python是一种简约语言
好吧看我的说明,我也是偏魔幻的爱好者
Ruby 和 Python 太相似了,取舍大部分都是个人喜好上的原因。比如我就觉得 Python 的 “There is only one way to do it.” 比 Ruby 的 “There are many ways to do it.” 要好,这不光是考虑团队协作的问题,更重要的是自己能很快明白自己三个月前写的没有任何注释的代码是在干什么。当然也有很多人觉得自由和灵活要比可读性来的重要,所以我说这个是个人喜好的原因。
客观上的 Ruby 比 Python 的优势我想到的有这么几个:
Block 应该是语言层面上 Ruby 比 Python 更酷的地方,Python 的匿名函数(lambda function)制约太多,属于鸡肋(BFDL GvR 不认可函数式编程的许多方面)。
OS X 上的话,Ruby 比 Python 最重要的优势可能是 MacRuby 的存在。我大胆猜测以后 MacRuby 将成为 Objective-C 之外(如果不是完全替代的话)的苹果官方语言。MacRuby 除了能更加方便快捷的创建 Cocoa 应用外,ruby block 使得利用 OS X 的 Grand Central Dispatch 变得容易,在以后的多核、混合核(CPU+GPU)应用上非常重要。
劣势:
Ruby 的硬伤之一在于性能。官方实现 Ruby 1.9 比 CPython 逊色不少。另外 Python 拥有诸如 Numpy, Psyco, PyPy, Cython 等多种性能倍增的途径,相比之下 Ruby 想要提高性能的途径则非常有限。
Ruby 的硬伤之二在于第三方包。Ruby 传入英语世界并大规模流行起来的时间不长,大部分的第三方包都和 Web 相关,Web 领域外的包数量远远不及 Python。特别是在科研等方面的区别非常明显,很多学科领域都有基于 Python 的成熟应用,而几乎找不到 Ruby 的相关包。这除了历史渊源,也和 Python 更加简洁的语法(很多用 Python 做研究的人不是计算机专业的)以及前述的性能倍增器(主要是 Numpy 和 Scipy)有密切的关系。
Ruby的写法更加灵活,写起来更加舒服,但是这也导致不同人的代码风格差异很大,协作起来需要更多的精力。
刚在G+上写了篇帖子,贴一下。有些观点和前面的观点有所重复,请见谅。
正文如下:
本周的Pycoder's Weekly不错,第一个Topic是:
“What are the advantages of Python over Ruby?”
Python和Ruby阵营之间似乎一直在争论谁更好(貌似Ruby阵营的人们更狂热些),不信可以试试google一下“Python Ruby”。上面这篇文章我目前还没看,在看之前先说说我的个人看法:
Python优于Ruby的地方:
a) Python开发人员的背景丰富多彩,阵营规模很大,这直接导致了Python的各种lib比Ruby多很多很多很多
b) 和Ruby相反,Python的哲学是“做一件事情有且只有一种方法”(There should be one-- and preferably only one --obvious way to do it.)。Ruby的信徒会觉得这样非常boring,但是我觉得这一点减轻了人们在开发时的认知负担和选择成本,对于提高开发效率是很有帮助的。同时,这个特点使得不同的人用Python写出来的代码不至于相差很大,这对于团队合作也是很有用的。(这点也导致了Python中是有公认的Best Practice的,但是Ruby中就很难找到一个公认的Best Practice)
c) Python在面向对象上做的并不好,其实是把面向过程和面向对象杂糅起来了。(随着Python 3的发展相信这点会有所改观)我个人虽然感觉这样不太好,但是实际用的时候就会发现,不强调面向对象其实能够减轻程序员的认知负担,写起代码来会比较随心所欲,对于c程序员来说也更容易接受。(好吧,如果你觉得这点是Python的缺点,那么其实你也是对的~)
d) Python开始慢慢走进大学一年纪的教科书,可以预见,未来的Python开发者阵营会继续不断壮大。(当然Ruby的阵营也会越来越大)
e) Python解释器,特别是CPython,目前比现有的Ruby解释器快很多。这点Ruby的发明人Matz也是很想再重新写个Ruby的虚拟机,但是苦于要做的事情很多,不知道什么时候能完成。Ruby的运行效率目前来看实在太慢了些。(当然程序运行效率和代码是如何写的也有很大关系,想让Ruby程序尽可能快的话,除了一般的程序优化方法外,还要注意要多用built-in的东西,因为它们是用c写的,运行快)
f) Python的语法比较简单,容易上手。
说了这么多Python优于Ruby的地方,现在再来说说我觉得Ruby优于Python的地方:
a) 第一个印入我的脑海的优点是:有趣!当你开始慢慢学会使用Ruby后,你就会觉得Python的代码比较死板。这是因为Ruby从Perl中继承的一条哲学是和Python完全相反的:“每一件事情总是有多种做法”(Having more than one way to do the same thing)。所以程序员的创造力就完全被激发出来了。当你看到某个问题的一种前所未见又十分优雅的解决方案时,你会有一种混杂着强烈喜悦的惊讶的——写(优美的)Ruby能够激发人的灵感。
b) Matz在设计Ruby的时候就想方设法让Ruby成为一个“人性化”的语言,力求使Ruby程序员感觉到使用Ruby是一件愉悦的事情。你能从Mixin、程序块、元编程、极具包容性的语法等等当中获得一种喜悦。
c) 纯粹的面向对象,极其强大的元编程功能。Ruby是纯粹的面向对象。CSDN的范凯曾经说过:“你学习了Ruby以后,你就会发现,原来Java/C++所谓的面向对象就是TMD的山寨版本的面向对象,原来面向对象还可以这样玩啊”。Ruby的元编程能力还有宽松的语法使得使用Ruby可以很轻松的开发DSL(Domain Specific Language),这一点Python是搞不定的。
d) Ruby on Rails!要不是DHH开发出了RoR不知道现在还会有多少人在用Ruby。毋庸置疑,RoR是快速Web开发的神器。为什么RoR那么牛?有一个很重要的原因就是RoR将Ruby的元编程能力发挥到了极致,“甚至到了一种变态的程度”(Matz语,见《松本行弘的程序世界》P.S.想要了解Ruby设计思想的话此书一定要读一读,起码是部分章节)
e) Ruby吸收了很多语言(Lisp、Smalltalk等等)的特性,对于程序员来说了解一下Ruby对于开阔思路是很有帮助的,它能帮助你更好的看清你之前一直使用的语言的限制之处在哪。
暂时就想到这么多,应该还有很多补充的空间。我使用Python和Ruby的时间也很短,所以还是多多参考些Python和Ruby双料大牛们的意见吧~
Ruby:Metaprogramming Ruby
Python:写python metaprogramming的只在部分书章节里有阐述
这是Ruby和python的最大区别。如果你的应用要写api(code)generator,要设计某种形式的DSL,需要语言的OO模型像一块橡皮泥,这是用Ruby的好时候。
其他方面,python的语法设计长期对团队更有利,简洁统一。
我前后想了好几遍,还是觉得这两个语言除了语法糖味道不一样就没什么区别了
生产力是检验语言优秀能力的唯一标准。
python用的人多,用户层面小白多,写手更良莠不齐一点。
ruby,基本用的人都是语法糖爱好者,各种炫技都能看到,真oo无双嗯。
虽然我python用的多一点,但是当我想去看看脚本语言的好书的时候,我发现大部分时间要去看ruby的书才能有不错的提高。比如metaprogramming ruby。
虽然是很旧的问题,但高票回答实在不爽
直接上代码吧
# 语法混乱,很魔幻的rubyrequire 'sinatra'get '/' do 'Hello world!'end
Python我在2002年开始学习的。当时它是脚本语言之王,所以同一个时代用ruby不爽,用python爆强。 用了13年后, python已经用到熟了。就象是英语一样,很“中国”式的熟练。 不过这么多年经历中,经常被ruby震动。 无论是WEB, 测试, 运维配置, 工具。 总能看到ruby忽然出来优美的东东出来,远超过python几条街。 无语,只能低声下气的,用着烂烂的python包,不满意,自己动手改一下,凑和着用。
最近在用puppet,晕死,又是ruby写的。ansible果然 还是python的风格,快速来一脚,也不管好不好,歇了。 憋屈。 所以只能支持用puppet。
叹气,ruby还是要学啊,perl, java, php一个少不了。 命苦。
不过,大数据方面,人工智能,图像处理,GUI等方面,python的积累还是很厚的。很少见ruby的身影。 hbase shell那个东东是ruby的。

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能