我曾经发过这个比较,今天发的是第2版。为了和原来的比较,您可以查看 Python, Ruby和Perl。
这一年多以来,我使用Python的频率很高,可以说,现在我能熟练的使用Python。我用Python完成过以下功能:
(1) Telnet Server 和 Web 管理界面
(2) Clearcase 脚本 -- 查找最新版本是不是都打上了标签,某行代码是谁,哪一个版本第一次引入的,根据关键字自动设置view
(3) 测试 -- 模块测试,测试核对数据工具
(4) 代码生成工具
草草估计,应该也有5000行以上的代码。(Python 5000行代码不是Java或者C++)
我经常使用的一些Python Library:
socket
subprocess
re
string.Template
logging
unittest
sys
getopt
threading
glob
xml.etree.ElementTree
经常用到的Python“高级”技术是:
List Comprehension,这个我非常喜欢
类属性
反射
自己设计的异常
用到的设计模式:
Singleton (多线程和单线程都有)
State
Factory
因为无论是在工作的Solaris/Linux/Windows,还是自娱自乐的Mac上,这一年半以来脚本语言我几乎只用Python。坦白说,我对它的感情好了很多。我现在不讨厌写len(str)或者len(list),因为我已经习惯了。虽然缩进我仍然认为不太好,但实际工作中,我通常不会出现这个问题。这也许得益于我的Vim用的不错。下面我小小的总结一下Python的优点:
(1) 几乎任何平台都能跑,只要有支持C的编译器。我在Solaris, Linux, Mac和Windows上使用Python,版本都是2.6.x。我有计划升级到2.7.x,不是因为性能,是因为增加了一个类似于LinkedHashMap这样的container。
(2) 现在公司几乎都允许你使用Python(很多公司Ruby是不能使用的)。
(3) Python在Unix上的使用习惯和C/C++几乎一样,这个比Java好很多。你要在Java里面捕捉信号,或者要得到进程号,都比较复杂。后者甚至需要用到Native Interface,我曾经为Log4j写过一个插件。
(4) Python的库非常非常丰富。
(5) Python的性能不和Lua,但是比Ruby好很多。和Perl比较我不知道,但据说正则表达式的性能略差。但在实际工作中,Python的性能不是我的障碍。
(6) Python的文档现在觉得也不错,最重要的是Python的Tutorial写的真好。我建议新手看Tutorial,不用看其他任何书籍就可以开始工作了。
(7) Python的List Comprehension非常好用,怎么用怎么爽。这个Ruby比不了。
再来谈谈Ruby吧。其实我不知道有多少朋友是用Ruby,但是不用Rails的。以前我就是,自己用Ruby写工具。我写过百度mp3自动下载top100的工具,写过bug分析的工具。至今为之,我都觉得Ruby的语法很纯粹,用Ruby写程序很享受。我最近又拣起了Ruby,因为开始学习Rails了。怎么说呢,Ruby的语法太灵活,它有几个最大的特点:
(1) Block
(2) Meta programming & SDL -- 这个Ruby太强大了
(3) Rails
现在Rails没有前几年火了,但是Rails却成熟了很多 (Ruby也成熟了很多)。无奈,企业对Ruby的认知不如Python,Perl好。
最后说说Perl,今年我用Perl写了一段deliver的代码。写了一个Perl的Logger库,比较简单的。坦白说,Perl应该被淘汰了。它很难用,很容易忘记,需要记忆太多的潜规则。我知道很多欧美的“资深”企业还有很多Legacy的Perl代码和Perl(er),但是这们脚本语言老了,它不应该再在新的项目中使用。我不偏激,因为我用过。我们team最熟练的perl程序员都需要打印两张A4的纸,存放那些$?的符号是什么意思。Perl程序相对不好维护。我想不出使用Perl的理由,因为能用Perl的地方,几乎都可以使用Python代替。(他们告诉我,Perl(er)比Pythoner多,这个让我奇怪)。
分享到:
相关推荐
C 和 C++ 被公认为...SWIG 允许您向广泛的脚本语言公开 C/C++ 代码,包括 Ruby、Perl、Tcl 和 Python。本文使用 Ruby 作为公开 C/C++ 功能的首选脚本接口。要理解本文,您必须具备 C/C++ 与 Ruby 方面的相应知识。
python-ruby-golang click(Python),thor(Ruby)和cli.go(Golang)的比较,用于构建非常简单的命令行工具。 快速开始 有关更多信息,请参见每个子目录中的README.md。 博客文章
尽管Perl曾是动态语言的首选,但现在已被Python和Ruby取代。Perl的面向对象机制复杂,学习曲线陡峭,而Python和Ruby则提供了更直观、更简洁的语法。对于需要大量正则表达式处理的特殊场景,Perl仍有其优势,但对于...
- 多语言支持:同时支持Lua、Python、Perl、Ruby和NSIS的语法高亮、代码提示和格式化。 - 调试功能:内置或集成调试器,允许开发者对各语言进行断点调试。 - 项目管理:支持多项目,方便切换和组织不同语言的代码。 ...
这个压缩包文件"生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip"包含了多种编程语言实现的数据中心分析器组件,这表明该工具可能支持跨平台和多语言集成。以下是对这些编程语言在数据...
- **可移植性**:相较于Perl等其他脚本语言,Python和Ruby拥有更好的跨平台兼容性。 - **图形界面编辑器**:虽然Python的编辑器选择更多样化,Ruby也有专门的图形界面编辑器。 - **库支持**:它们都有大量的库可供...
Perl语言虽然在Python和Ruby之前就已经是重要的动态语言,但现在Perl已经开始衰落,取而代之的是Python和Ruby。Perl虽然面向对象性设计显得不够完整,并且其语法在易读性方面被认为有诸多不足,这使得它对于学生来说...
Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 ...
内容简介 本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。
Python的优势在于其通用性,它可以替代C、C++、Java、Ruby等语言的部分功能,并在许多方面表现出更高的效率和便利性。例如,C语言需要处理复杂的内存管理和指针操作,而Python通过自动内存管理简化了这一过程;C++的...
Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 ...
本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。
我的经验是,通过实例来学习和教授 Python要比采取同样的方式去接触比方说 Ruby 或者 Perl 更加容易,因为 Python 的语法里面条条框框以及特殊的处理场景要少得多。 它所专注的并非语言表现的丰富程度,而是你想要用...
LAMP 是一种流行的 Web 开发平台,由 Linux、Apache、MySQL 和 PHP、Perl、Python 或 Ruby 等脚本语言组成。LAMP 具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点,是目前最流行的 Web 开发...
涵盖Python2和Python 3共有特性 内容简介 · · · · · · 本书是权威的Python语言参考指南,内容涉及核心Python语言和Python库的最重要部分。本书内容简洁扼要、可读性强,书中还包括了一些没有在Python官方...
"rbpyplnix" 提到了Ruby、Python、Perl这三种流行的脚本语言以及Unix工具的安全性,这暗示了我们将探讨这些语言在Unix/Linux环境中可能面临的安全问题及相应的防护措施。 首先,我们来了解一下Ruby的安全特性。Ruby...
除了Perl之外,Python和Ruby也是流行的脚本语言。它们各有特点: - **Python**:以其简洁明了的语法而闻名,非常适合快速开发。 - **Ruby**:以其灵活的语法和强大的元编程能力著称,常用于Web开发。 #### 七、更多...
标题和描述均提到了"pythonchallenge level2官方方法集",这表明文章主要聚焦于Python Challenge网站上第二级挑战的官方解决策略集合。Python Challenge是一个知名的编程谜题网站,通过一系列精心设计的谜题来测试和...
2. **面向对象**:Ruby的面向对象更为彻底,几乎所有的元素都是对象,而Python虽然也支持面向对象,但在某些方面如全局变量和函数的处理上,没有Ruby那么面向对象。 3. **性能**:Python通常在执行速度上略胜一筹,...
本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。