您當(dāng)前位置: 主頁(yè) > 資訊動(dòng)態(tài) > IT知識(shí)庫(kù) >
本文作者做了11年的PHP,不過最近開始投向Python陣營(yíng)了。下面將對(duì)PHP和Python兩種語(yǔ)言各自的特性進(jìn)行一些描述,也許對(duì)你為項(xiàng)目選擇合適的語(yǔ)言也有一定的幫助。
看PHP和Python:PHP的問題
我之所以放棄PHP,原因首先是語(yǔ)言。PHP實(shí)際上不是一種語(yǔ)言,而是一種巨大的插件結(jié)構(gòu),以一種高層的形式來展示低層的庫(kù)。而大部分開發(fā)者使用的語(yǔ)言實(shí)際上是對(duì)C功能 (curl, mysql, gd, etc.)的包裝,通常情況下它們的庫(kù)展示得很簡(jiǎn)單。因而這導(dǎo)致了PHP的API不一致。
PHP語(yǔ)言的第二個(gè)問題是語(yǔ)言的管理問題。PHP語(yǔ)言實(shí)際上是由委員會(huì)來設(shè)計(jì)的,而且沒有人來制定任何共識(shí)性的標(biāo)準(zhǔn)。PEAR有自己的標(biāo)準(zhǔn),PHP有自己的標(biāo)準(zhǔn),這導(dǎo)致SPL classes更具Java風(fēng)格,而PEAR卻截然不同。
從事PHP開發(fā)11年來,我認(rèn)識(shí)了很多PHP領(lǐng)域的專家級(jí)開發(fā)者,它們對(duì)PHP也有很多看法。除了上文提到的委員會(huì)問題以及標(biāo)準(zhǔn)混亂問題之外,由于PHP的使用范圍非常廣,向后的不兼容對(duì)代碼造成了很大的破壞。
還要提到的一點(diǎn)是PHP缺乏很多現(xiàn)代語(yǔ)言的特性。現(xiàn)在再來說說Python:
PHP和Python:Python的優(yōu)美之處
Python語(yǔ)言的創(chuàng)建方法幾乎與PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum領(lǐng)導(dǎo)的,語(yǔ)言的開發(fā)由單一的人員主導(dǎo),因此它的開發(fā)、管理以及長(zhǎng)期運(yùn)營(yíng)會(huì)保持很好的連續(xù)性。Guido和Python的核心開發(fā)者通過PEP創(chuàng)建標(biāo)準(zhǔn),而且通過公共接口展示標(biāo)準(zhǔn)是如何創(chuàng)建的。而且,Guido如果想到的語(yǔ)言特性不夠好,也不會(huì)出現(xiàn)在語(yǔ)言層中(如沒有++運(yùn)算符,而且比較符中沒有分配)。
延續(xù)性的特點(diǎn)也延伸到了整個(gè)Python社區(qū),所以你很難發(fā)現(xiàn)不同項(xiàng)目中的Python截然不同。
我最喜歡的Python的一個(gè)特點(diǎn)就是它的清晰。當(dāng)打開Python中的一個(gè)文件的時(shí)候,我會(huì)清楚地知道里面大概有什么樣子的代碼,聯(lián)想到很多次我被PHP的這一點(diǎn)搞得焦頭爛額,我覺得這個(gè)特性非常有用。
總之,Python的系統(tǒng)級(jí)特性非常不錯(cuò)。
Python另外一個(gè)很棒的特性是直白性。需要namespace(命名空間)?文件的名字就是命名空間;需要模塊?只需要用一個(gè)__init__.py文件代替;需要重命名功能?只需要new_func = old_func。
--- 版權(quán)最終歸艾銻無限所有http://www.dyfgwiyq.cn/ 如需轉(zhuǎn)載,請(qǐng)標(biāo)明出處。
相關(guān)文章