國(guó)外開(kāi)發(fā)者談為何放棄PHP而改用Python
我之所以放棄PHP,原因首先是語(yǔ)言。PHP實(shí)際上不是一種語(yǔ)言,而是一種巨大的插件結(jié)構(gòu),以一種高層的形式來(lái)展示低層的庫(kù)。而大部分開(kāi)發(fā)者使用的 語(yǔ)言實(shí)際上是對(duì)C功能 (curl, mysql, gd, etc.)的包裝,通常情況下它們的庫(kù)展示得很簡(jiǎn)單。因而這導(dǎo)致了PHP的API不一致。
PHP語(yǔ)言的第二個(gè)問(wèn)題是語(yǔ)言的管理問(wèn)題。PHP語(yǔ)言實(shí)際上是由委員會(huì)來(lái)設(shè)計(jì)的,而且沒(méi)有人來(lái)制定任何共識(shí)性的標(biāo)準(zhǔn)。PEAR有自己的標(biāo)準(zhǔn),PHP有自己的標(biāo)準(zhǔn),這導(dǎo)致SPL classes更具Java風(fēng)格,而PEAR卻截然不同。
從事PHP開(kāi)發(fā)11年來(lái),我認(rèn)識(shí)了很多PHP領(lǐng)域的專(zhuān)家級(jí)開(kāi)發(fā)者,它們對(duì)PHP也有很多看法。除了上文提到的委員會(huì)問(wèn)題以及標(biāo)準(zhǔn)混亂問(wèn)題之外,由于PHP的使用范圍非常廣,向后的不兼容對(duì)代碼造成了很大的破壞。
還要提到的一點(diǎn)是PHP缺乏很多現(xiàn)代語(yǔ)言的特性?,F(xiàn)在再來(lái)說(shuō)說(shuō)Python:
Python語(yǔ)言的創(chuàng)建方法幾乎與PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum領(lǐng)導(dǎo)的,語(yǔ)言的開(kāi)發(fā)由單一的人員主導(dǎo),因此它的開(kāi)發(fā)、管理以及長(zhǎng)期運(yùn)營(yíng)會(huì)保持很好的連續(xù)性。Guido和Python的核心開(kāi)發(fā)者通過(guò)PEP 創(chuàng)建標(biāo)準(zhǔn),而且通過(guò)公共接口展示標(biāo)準(zhǔn)是如何創(chuàng)建的。而且,Guido如果想到的語(yǔ)言特性不夠好,也不會(huì)出現(xiàn)在語(yǔ)言層中(如沒(méi)有++運(yùn)算符,而且比較符中沒(méi) 有分配)。
延續(xù)性的特點(diǎn)也延伸到了整個(gè)Python社區(qū),所以你很難發(fā)現(xiàn)不同項(xiàng)目中的Python截然不同。
我最喜歡的Python的一個(gè)特點(diǎn)就是它的清晰。當(dāng)打開(kāi)Python中的一個(gè)文件的時(shí)候,我會(huì)清楚地知道里面大概有什么樣子的代碼,聯(lián)想到很多次我被PHP的這一點(diǎn)搞得焦頭爛額,我覺(jué)得這個(gè)特性非常有用。
總之,Python的系統(tǒng)級(jí)特性非常不錯(cuò)。
Python另外一個(gè)很棒的特性是直白性。需要namespace(命名空間)?文件的名字就是命名空間;需要模塊?只需要用一個(gè)__init__.py文件代替;需要重命名功能?只需要new_func = old_func。
相關(guān)文章
關(guān)于爬蟲(chóng)和反爬蟲(chóng)的簡(jiǎn)略方案分享
這篇文章主要給大家介紹了一些關(guān)于爬蟲(chóng)和反爬蟲(chóng)的簡(jiǎn)略方案的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家理解和學(xué)習(xí)爬蟲(chóng)與反爬蟲(chóng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
2019-nCoV 全國(guó)新型肺炎疫情每日動(dòng)態(tài)趨勢(shì)可視圖
大家被新型冠狀病毒搞的人心慌慌,每天宅在家里那也去不了,今天小編給大家分享2019-nCoV 全國(guó)新型肺炎疫情每日動(dòng)態(tài)趨勢(shì)可視圖,需要的朋友可以參考下2020-02-02
TIOBE編程語(yǔ)言排行榜前20的語(yǔ)言入門(mén)書(shū)籍推薦
這篇文章主要為大家推薦了TIOBE編程語(yǔ)言排行榜前20的語(yǔ)言入門(mén)書(shū)籍,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
如何免費(fèi)獲取 Jetbrain 全家桶使用兌換碼的正確姿勢(shì)(推薦)
這篇文章主要介紹了免費(fèi)獲取 Jetbrain 全家桶使用兌換碼的正確姿勢(shì)(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
多種語(yǔ)言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的網(wǎng)頁(yè)編碼切換解決方案歸納
多種語(yǔ)言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的網(wǎng)頁(yè)編碼切換解決方案歸納2012-06-06
國(guó)外開(kāi)發(fā)者談為何放棄PHP而改用Python
本文作者作為一名從事PHP開(kāi)發(fā)11年的資深開(kāi)發(fā)者,卻放棄了PHP而改用Python。2009-09-09
Hadoop環(huán)境搭建過(guò)程中遇到的問(wèn)題及解決方法
這篇文章主要介紹了Hadoop環(huán)境搭建過(guò)程中遇到的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-08-08
selenium使用webdriver.Chrome()報(bào)錯(cuò)的問(wèn)題解決辦法
這篇文章主要給大家介紹了關(guān)于selenium使用webdriver.Chrome()報(bào)錯(cuò)問(wèn)題的解決辦法,文中通過(guò)圖文將解決的辦法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09

