測試工作需要使用指令碼語言編寫自動化程式,而指令碼語言的選擇對於初學者而言往往是一個相當困惑的問題。實際上指令碼語言之爭是一個相當源遠流長的問題,比如豆瓣Python編程小組中的文章:豆瓣在python和ruby之間為何選擇前者?從05年討論至今可謂曆史悠久。
當然豆瓣選擇python並不是為了拿python作為指令碼語言來使用,實際上豆瓣的開發有6成的代碼是python編寫,這似乎給選擇python的人更多的信心,至少python的應用並不像一般認為的那樣局限,對於python的優勢,可以在專門的書籍中找到答案,比如Learning
Python。好吧,我得承認,當我開啟這本書的時候,其實我已經選擇了python,這本書中所舉的優勢只是增加了我對於選擇的自信罷了。實際上對於一名測試人員,與其花費很多時間來詳細地比較語言的優勢和劣勢,不如在差不多的時候下決心去學習,因為畢竟任何一種“活著”的語言都有其生命力,頗有文無第一的味道。而我選擇python,理由其實很傻,一是招聘啟事上python出現的頻率很高;二是豆瓣;三……今年是蛇年,這個算嗎?
還是看看Learning Python的說法吧:
1、Software quality:readable, and hence reusable and maintainable. 可讀性強,因此重用性和可維護性都很好。這很好理解,因為python依賴whitespace區分代碼層級,漂亮而美觀。除此之外,python是物件導向的指令碼語言。
2、Develop productivity:python代碼一般只有C++或Java的1/3到1/5;且python作為解釋型語言,節省了compile和link的時間。
3、Program portability:絕大多數python程式都是跨平台的,因此經常作為shell tools和control language出現。
4、Support libraries:python的standard library中包括很多prebuilt&portable的函數。除此之外,python可擴充性強,包括homegrown library和很多第三方的application support software,比如NumPy被認為可以替換Matlab numeric programming system。
5、Component integration:python經常被作為product customization and extension tools。
6、Enjoyment:因為1和2^_^
一般而言,python的最大弱點是速度,但實際上這並不真正是一個問題。一些耗費時間的任務,比如檔案或者GUI相關,實際上是run at C speed。因為這些tasks直接dispatched to compiled C code inside the Python interpreter。
總之,Python是一個受歡迎的open source system,具有物件導向的優勢(polymorphism、operator overloading、multiple inheritance),簡單易學,值得選擇。
Python的官方網站:http://www.python.org
The Writer:Guido van Rossum
推薦的書籍:Learning Python;Programming Python;Python Pocket Reference
推薦的學習網站:http://www.codecademy.com/zh/tracks/python