`

Python, Ruby和Perl (2)

阅读更多

我曾经发过这个比较,今天发的是第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多,这个让我奇怪)。

 

分享到:
评论
1 楼 oolala 2011-08-04  
也有想看一下python的想法。

相关推荐

    SWIG 公开 C/C++ 代码,包括 Ruby、Perl、Tcl、C# 和 Python

    C 和 C++ 被公认为...SWIG 允许您向广泛的脚本语言公开 C/C++ 代码,包括 Ruby、Perl、Tcl 和 Python。本文使用 Ruby 作为公开 C/C++ 功能的首选脚本接口。要理解本文,您必须具备 C/C++ 与 Ruby 方面的相应知识。

    python-ruby-golang:比较python,ruby和golang

    python-ruby-golang click(Python),thor(Ruby)和cli.go(Golang)的比较,用于构建非常简单的命令行工具。 快速开始 有关更多信息,请参见每个子目录中的README.md。 博客文章

    最好用的Lua,Python,Perl,Ruby,NSIS开发编辑器

    最好用的Lua脚本开发编辑器还支持Python,Perl,Ruby,NSIS

    ruby-2.5.1.tar.gz

    Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 ...

    PYTHON参考手册 第4版_修订版

    内容简介 本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。

    Ruby面试题和答案(2024年收集更新)

    Ruby 具有 Perl、small talk、Eiffel、Ada 和 Lisp 的混合特性。Ruby 旨在创建一种与命令式语言的功能取得平衡的新语言。 完整答案 2、Ruby的开发者是谁? Ruby 由 Yukihiro “martz” Matsumoto 于 1990 年中期在...

    ruby编程学习笔记及demo

    Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 ...

    Python参考手册(第4版·修订版).[美]David M.Beazley(带详细书签)

    本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。

    python练习题目.rar

    我的经验是,通过实例来学习和教授 Python要比采取同样的方式去接触比方说 Ruby 或者 Perl 更加容易,因为 Python 的语法里面条条框框以及特殊的处理场景要少得多。 它所专注的并非语言表现的丰富程度,而是你想要用...

    Python程序员案头必备:《Python参考手册 (第4版)》(高清.书签.英文完整版)

     涵盖Python2和Python 3共有特性 内容简介 · · · · · · 本书是权威的Python语言参考指南,内容涉及核心Python语言和Python库的最重要部分。本书内容简洁扼要、可读性强,书中还包括了一些没有在Python官方...

    Python参考手册(第4版)

    本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和Python库...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。

    rbpyplnix:Ruby,Python,Perl,Unix工具安全性

    rbpyplnix Ruby,Python,Perl,Unix工具安全性

    ruby-libs-2.0.0.648-35.el7_6.i686.rpm

    Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。 Ruby 可以用来编写通用网关接口(CGI)脚本。 Ruby 可以被嵌入到超文本标记语言(HTML)。 Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。 ...

    ruby中文资源大全

    在工作中,他希望有一种比 Perl 强大,比 Python 更面向对象的语言。从1993年2月,他开始设计一个全新的自己的语言,1994年12月发布了第一个 alpha版本,并且将这种新语言定名为Ruby(红宝石)。 本教程内含多部中文...

    kaitai_struct:Kaitai Struct:使用C ++ C#生成二进制数据解析器的说明性语言Java JavaScript Lua Perl PHP Python Ruby

    kaitai_struct:Kaitai Struct:使用C ++ C#生成二进制数据解析器的说明性语言Java JavaScript Lua Perl PHP Python Ruby

    vdebug:Vim的多语言DBGP调试器客户端(PHP,Python,Perl,Ruby等)

    它是多语言的,并且已经过PHP,Python,Ruby,Perl,Tcl和NodeJS的测试。 它与忠实地使用DBGP协议的任何调试器(例如PHP的Xdebug)连接。 Vdebug随附的Vim帮助文件中提供了使用上述所有语言设置调试的分步说明。 ...

    Vdebug:多语言DBGP调试器客户端(PHP,Python,Perl,Ruby等)

    它是多语言的,并且已经过PHP,Python,Ruby,Perl,Tcl和NodeJS的测试。 它与忠实地使用DBGP协议的任何调试器(例如PHP的Xdebug)连接。 Vdebug随附的Vim帮助文件中提供了使用上述所有语言设置调试的分步说明。 ...

    15天精通Python-Python总结-Python基础-pyhthon小代码.docx

    15天精通Python-Python总结-Python基础-pyhthon小代码 Python总结 引言 语言分类 机器语言—汇编语言—高级语言(C语言—java/python)--php/perl/ruby C语言—面向过程 Java/python—面向对象 Python 是面向过程、...

    python2的学习方法

    Python 是一个有条理的和强大的面向对象的程序设计语言,类似于Perl, Ruby, Scheme, 或 Java.

    langs-performance:C ++,Python,Perl,PHP,Java,NodeJS,Go,Ruby,Rust,Swift和D性能基准

    语言性能C ++,Python,Perl,PHP,Java,NodeJS,Go,Ruby,Rust,Swift和D性能基准测试博客文章: 2016年: : 2016年: : 2010-2012年: : 这里的基准测试并没有尽力而为,因为它们从一个方面展示了语言的性能,...

Global site tag (gtag.js) - Google Analytics