我曾经发过这个比较,今天发的是第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。 博客文章
最好用的Lua脚本开发编辑器还支持Python,Perl,Ruby,NSIS
Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 ...
内容简介 本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。
Ruby 具有 Perl、small talk、Eiffel、Ada 和 Lisp 的混合特性。Ruby 旨在创建一种与命令式语言的功能取得平衡的新语言。 完整答案 2、Ruby的开发者是谁? Ruby 由 Yukihiro “martz” Matsumoto 于 1990 年中期在...
Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 ...
本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。
我的经验是,通过实例来学习和教授 Python要比采取同样的方式去接触比方说 Ruby 或者 Perl 更加容易,因为 Python 的语法里面条条框框以及特殊的处理场景要少得多。 它所专注的并非语言表现的丰富程度,而是你想要用...
涵盖Python2和Python 3共有特性 内容简介 · · · · · · 本书是权威的Python语言参考指南,内容涉及核心Python语言和Python库的最重要部分。本书内容简洁扼要、可读性强,书中还包括了一些没有在Python官方...
本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。
rbpyplnix Ruby,Python,Perl,Unix工具安全性
Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 ...
在工作中,他希望有一种比 Perl 强大,比 Python 更面向对象的语言。从1993年2月,他开始设计一个全新的自己的语言,1994年12月发布了第一个 alpha版本,并且将这种新语言定名为Ruby(红宝石)。 本教程内含多部中文...
kaitai_struct:Kaitai Struct:使用C ++ C#生成二进制数据解析器的说明性语言Java JavaScript Lua Perl PHP Python Ruby
它是多语言的,并且已经过PHP,Python,Ruby,Perl,Tcl和NodeJS的测试。 它与忠实地使用DBGP协议的任何调试器(例如PHP的Xdebug)连接。 Vdebug随附的Vim帮助文件中提供了使用上述所有语言设置调试的分步说明。 ...
它是多语言的,并且已经过PHP,Python,Ruby,Perl,Tcl和NodeJS的测试。 它与忠实地使用DBGP协议的任何调试器(例如PHP的Xdebug)连接。 Vdebug随附的Vim帮助文件中提供了使用上述所有语言设置调试的分步说明。 ...
15天精通Python-Python总结-Python基础-pyhthon小代码 Python总结 引言 语言分类 机器语言—汇编语言—高级语言(C语言—java/python)--php/perl/ruby C语言—面向过程 Java/python—面向对象 Python 是面向过程、...
Python 是一个有条理的和强大的面向对象的程序设计语言,类似于Perl, Ruby, Scheme, 或 Java.
语言性能C ++,Python,Perl,PHP,Java,NodeJS,Go,Ruby,Rust,Swift和D性能基准测试博客文章: 2016年: : 2016年: : 2010-2012年: : 这里的基准测试并没有尽力而为,因为它们从一个方面展示了语言的性能,...