從C++轉用Python,好語言能延長你的生命

從1991首次發佈,Python語言憑藉其易上手易使用等特點迅速吸引了大批開發者,招徠了極高的人氣,在編程領域的佔有率也因此一直處於穩步上升之中。根據最新的數據,Python排名第七,作爲一門還很年輕的語言,Python的位置已經相當令人振奮了。
隨着腳本語言的風靡以及諸如Ruby、PHP、Perl等競爭對手的出現,會給Python帶來哪些影響;Python正致力於新版本的升級而且將修正其中的歷史問題,指的又是什麼;新版本的體驗如何……帶着諸多問題記者採訪了使用C++轉而使用Python的賴勇浩。
記者:你原來使用的是C++,轉到Python的原因是什麼?對於Python這門語言的優越性你更有體會,能否談一下?
賴勇浩:我原來使用了大約四年的C++,轉到 Python 首先是因爲工作需要——其實是接觸 Python 後爲其所吸引吧。談到 Python 的優越性,這是一個見仁見智的問題,一直爭論不斷。如果非要我說,我覺得它的優越性在於你將擁有更多的時間關注你的業務本身、擁有更的時間陪伴你的家人、擁有更多的時間閱讀(或睡覺、交友、運動、旅行等)。
這等於說,使用 Python ,能延長你的生命。爲什麼這樣說呢?因爲 Python 支持面向過程、面向對象、函數式編程以及其它編程風格;簡潔而極具表達力的語法和豐富而實用的組件都讓我們能夠事半功倍地完成任務。舉個例子,我最近在 Google Code 上創建了一個開源項目——遊戲人工智能演示(點擊進入鏈接 ),它完全使用 Python 編寫,已經完成了兩個簡單的 demo 。每一個 demo 都是如此短小,整個框架是如此清晰,舍 Python 而誰能如斯?使用 Python 編程,編程就成爲了快樂。
記者:能否談談如今Python語言的地位以及它的主要應用面?
賴勇浩:Python 近幾年已經進入了最流行的編程語言的前十名,可以說是最成功的腳本語言之一。據我所瞭解的,Python 最重要的應用面在於 Web 和遊戲開發;在國外也有很多企業應用和桌面項目都是使用 Python 開發的,但國內相對就少些。07年8月我在《遊戲創造》撰文描述了腳本在遊戲業中的現狀、優勢和前景(點擊進入鏈接 )。Web 方面,隨着 Web2.0 勢力的進一步擴張,對服務器性能也提出了新的要求,我的老師兼朋友沈崴適時地研製了純粹基於 Python 的 http 服務器端框架 Eurasia3(點擊進入鏈接 ),preview版本已經到達單進程單線程每秒響應 7000 多個請求的驚人性能,值得關注。
記者:腳本語言的風靡但也出現了諸如Ruby、PHP、Perl等競爭對手,你認爲這會給Python帶來哪些影響?
賴勇浩:任何一個語言期望獨步天下都是不現實的,人無完人,物無完物,競爭對手的存在纔是自身進化的動力。同時值得一提的是 Python 社區一直以溫和開放著稱,事實上 Python 程序員也是 Ruby 最早的支持者,他們也大多有着濃厚的 C++、Perl、PHP 等老牌語言的開發經驗。作爲典型的務實派,他們關注實現,他們努力將其他語言的優點融合進來使之符合自身的務實哲學。Ruby 的崛起和PHP的日益強大,正好提供了足夠多的特性讓 Python 學習、進化、和完善自身。
賴勇浩:對於 Python 的升級版,我一直在關注。在 9 月初的時候,我在自己的博客中發表了對 Python 3.0 alpha 1 的試用報告(點擊進入鏈接 ),後經整理、潤飾,發表在07年11期的《程序員》雜誌上。
毫不掩飾地說,我對 Python 的升級版本是非常期待的。新版本的Python 在一定程度上降低了語言的複雜性,比如現有版本 dict 類的 haskey() 函數就違背了接口一致性並在性能上有所損失。新版本去除了這個成員函數,維護了接口的一致性,也提升了性能。對於現在的 Python 版本,我比較期望的是接納 wxPython 爲默認的 GUI 庫。不過現在看來可能性比較小;另外還有一個期望是能夠去除 GIL (全局解釋器鎖),以使程序員能夠更容易地獲得多核 CPU 的性能優勢,但實現的可能性更小。
記者:在版本升級的報道中,“it's come to many people's realizations that there are some problems with the original design”卻又沒有細說,你認爲“original design”指的是哪些?
賴勇浩:Python 是一個成熟的腳本語言,但絕不完美。因爲從它的發展歷程來看,初期的很多設計都受限於 Guido 的能力,留下了不少缺陷,比如前文提到的 GIL 。幸運的是 Python 社區和 Guido 都非常的開明謙遜,接受了很多意見和建議(詳見PEPs:http://www.python.org/dev/peps/),並給出了可行的修改計劃。我們可以看到 Python 正在完善自身,如 3.0 版本的變化主要是去除自身的一些特性。去除,這正是完美之道。
談到帶有缺陷的最初設計,2002年Guido 在 OSCON 上名爲《Python Regrets》的演講(點擊進入鏈接 )是我能找到的唯一比較詳盡的一份談論 Python 設計缺陷的資料。從 Py3.0 alpha 1版本來看,新版本做出的修正大體上都對應着這份 PPT 裏舉出的條目,可見 Guido 果然是直面缺陷,身體力行。【記者:吶不喊】
簡介
賴勇浩,現供職於網易廣州,致力於高效能編程和遊戲人工智能的研究。好編程,好讀書,以在博客(http://blog.csdn.net/lanphaday)上與大家分享心得爲樂。
 
發佈了18 篇原創文章 · 獲贊 0 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章