精華區beta CSSE 關於我們 聯絡資訊
※ [本文轉錄自 Programming 看板] 作者: Killertcell (殺手T細胞) 看板: Programming 標題: [文章] python 創始人訪談錄 1: 關於 django 和 ruby 時間: Wed May 23 23:43:19 2007 轉載自Google論壇裡面python最熱門的一個主題: 【聽譯大師說話】是我最近打算搞的一個系列。我以前覺得看這些大師訪談並沒有什麼意 思,他們的想法大多在書本和網站都有所介紹,他們本人也接受了很多訪談,估計說的也 都是些套話,所以沒必要看。最近聽了兩個訪談,一個是採訪 python 創始人 Guido van Rossum 的,另外一個是采訪 php 創始人 Rasmus Lerdorf,讓我感觸很深,很多以前的 一些困惑得以解釋。我想這些訪談節目應該讓更多的人知道,所以我覺得應該 把這個系列搞下去,一是鍛鍊自己的聽力,二是更好的學習技術。我的英語水平不算太好 ,好在我也算是一個程序員,相信做此類訪談的翻譯要比英語專業的人要 更準確一點,而且我聽譯的內容大多是我喜歡的,也有興趣做下去。我不是干這個事情的 最合適的人,但是很多比我更合適的人卻不願意做它,所以大家只能湊合 看了。我儘量做到不翻譯錯,如果有那些地方說的不對,希望大家指正。 下面是這個【聽譯大師說話】系列的第一篇的第一節《 python 創始人訪談錄 1: 關於 django 和 ruby 》 主持人: Chris DiBona (Google 開源網站負責人) and Leo Laporte (Twit 網站創始 人) 被採訪人: Guido van Rossum (python 創始人) Leo : Python 缺少一些本地的 gui 庫吧,只有 tk 什麼的, 你覺得這是不是一個問題 呢? Guido: 現在這越來越不成為一個問題了,因為越來越多的人使用 web 來做任何事情。 Leo :web 就是界面了 Guido: 但是的確也不解決什麼問題,正如我說的:" python 的 web 框架比語言中的關 鍵字還多" , 我個人最喜歡的一個,也是我長期的選擇框架是 django Leo :我正打算問你 django 的事情, 最近有人寫了一篇文章,我想是在 rails 網站上 最先介紹的,它測試了,django , rails 和 perl 的 web 框架,django 的速度是最快的,遠遠超過其他。 Guido: 這很有趣,我沒聽說過這個。 C:你怎麼測試一個 web 框架啊? Leo :他們設置一些 web 測試應用程序,建立一系列的事務測試案例來測試事務操作, django 的速度相當的快,相當的快。 跟我們講講django 吧 Guido:我是一個對 django 非常滿意的用戶,並在項目中使用了一些 django 。我將 django 稱為"第二代" python web 框架, 第一代是指 zope 和 twisted, django 是由兩個在堪薩斯新聞報社工作的 小夥開發的,並非是一個很有名氣的地方。 Chris:很奇怪,Zope, plone 也是來自報紙網站的 Leo :他們要流程化他們的工作流,這對他們可是很重要的事情。 Guido:也許是這個原因吧,堪薩斯的這家報社希望建立一個給當地人提供信息的本地網 站,該網站必須對讀者的響應非常及時,必須很快地發佈內容,並不 是簡單把文章發佈到網站上這樣誰都可以做的事情,它必須很容易更換整個網站的外觀, 添加一些新的創意,一些新功能,增加一些新的應用。例如,發佈本地體 育賽事新聞,提供關於球隊鏈接和照片等各種感興趣的信息,他們希望這東西能很快運作 。我想他們做這個有兩年了吧,這兩個小夥子和一群編輯在一起工作,編 輯為他們提供內容。在工作的同時,他們覺得有必要做一個框架,他們從他們的第一個網 站應用中提取了框架。 通過編輯對他們不斷提出的對網站修改需求, 他們對框架增加更好的靈活性,後來他們決定說"我們開源吧",他們的想法得到了報社的 支持。然後有趣的事情就發生了。我想現在報社還在部分地使用 django 吧,這兩個小夥可能也不再在報社工作了,他們開始了 django 開源項目。我覺 得最棒的一點是,我跟這兩個人談過好幾次,看了他們的 演示,瞭解他們是如何工作的,他們的確做到了開源。他們有很好的許可證協議,就我而 言,最重要的是,整個過程,他們運作用戶社區的方式,他們的做法,他 們尋求在混亂,民主之間的平衡,讓許多用戶添加功能,提供想法,但是又不失去原有的 想法和框架的靈活性,我覺得做的非常的棒,使得 django 成為 一個越來越好的產品, 這已經遠遠超過當時堪薩斯報社所需要的。 Leo :那個測試是在 ruby on rails 的 wiki 網站上的 Guido: 現在能訪問嗎,我想看看 Chris:ruby on rails 的 wiki 無法訪問了吧 Leo :不,就在那裡,文章是 framework performance, django 網站關於這篇文章的鏈 接是壞的,他們測試了 symfony, 不是 perl 的框架,是一個 php 的 web 框架,以及 rails, django , django 相當的快,幾十倍的。 Guido: 哇,我知道 django 開發組的確花費了相當的時間使得他們的模板機制運行的相 當流暢 Leo :他們當然使用了 modpython 以獲得更好的性能。 Chris: modpython 是一個 apache 的 python 模塊,使得 python 的運行更加快速 Leo :我要看看 django ,的確令人印象深刻 Guido:當然,我強力推薦它 Leo :我也看過 turbogear , 我經常上的一個網站"doggdot" ( http: //doggdot.us/ ) 是用 turbogear 做的 Guido:什麼名字?這名字太難聽了 Leo :doggdot.us 結合了digg, slashdot, del.icio.us into , 它是用 turbogear 寫 的,這也是另外一個 python web 框架,看來還有許多其他的 python web 框架吧。 Guido:哦,看來 turbogear 和 django 現在正在競爭 web 開發的市場份額 Leo :我喜歡 ruby on rails , 我喜歡 ruby 的一個原因是,它從很多方面很像 python Guido: 的確,它看上去很像 python Leo :當然了,不過它的面向對像是從頭做起的,任何東西都是對象(everyting is object ) Guido: 在pyton中任何東西也都是對象(everyting is object ),但是並不是任何東 西都是類(everyting is class ),因為這是我喜歡的方式。 Leo :跟我們講講這個吧,為什麼你喜歡這樣 Guido:因為不是任何編程都會自然而然的採用面向對象的方式,比如一個很極端的例子 ,很不幸,在 java 中寫一個 helloworld 程序 要六七行的代碼,你無法避免聲明類 , 因為方法要定義在類中,這就要輸入很多。 Leo :在 ruby ,數字也是對象 Guido:在 python , 也是這樣的 Leo :是嗎?在 ruby 中很容易重載一些函數,使得面向對象的做法很乾淨,也很簡潔 Guido: ruby 和 python 的不同在於, 在 ruby 中,你總是在類中定義函數,如果你不 明確指出函數屬於哪個類,那麼你可能在一 個默認的類中定義函數,在 python 中,所有的數據對象都是類,但你可以在類以外定義 函數,比如 module (模塊),作為函數的名字空間, 函數是對象,模塊是對象,但是它們並不像類那樣工作。 這麼實現跟 ruby 只是不同的 選擇而已 Leo :你這麼做肯定有你的理由吧 Guido:最近我聽到一些對於 ruby 的抱怨,的確有點讓我吃驚,ruby 的執行速度比 python 慢很多,我想這的確影響到你剛才提到的一 些性能測試的結果 Leo :而且ruby 的線程也不是本地化的,這的確是個大問題 Guido:哦,天哪。 鏈接:http://blog.csdn.net/koalant/archive/2007/05/10/1602982.aspx 原文轉載自: http://0rz.tw/672Fk -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: Killertcell 來自: 140.123.106.141 (05/23 23:46)
qrtt1:python 還可以編成 bytecode 真是太可怕了 05/24 16:48
Tiberius:pypy 真可怕 XD 05/25 02:01
Tiberius:http://codespeak.net/pypy/ 05/25 02:01
huge:pypy..不怎麼好聽呀 XD 05/26 01:24
huge:雖然中文也是有點吃力呀 ^^". 不過依然感謝分享 05/26 01:26
abcdefghi:面向對象......Orz 對岸的人真的習慣這種翻譯嗎 ? 06/03 15:50