個人理解PHP簡單的主要原因如下:
內(nèi)置API很完備
基本不要去找第三方庫,這對初學(xué)者來說,方便很多,效率高很多,畢竟找個第三方庫要熟悉、要研究,總歸不放心,語言直接就有了,
很多人都是直接google一下API然后拿來就用,我開始也是這樣的。
Java ?我們一個項(xiàng)目有100多個第三方包。。。 ,而且這100多個第三方包還是從幾百個包中挑出來的,可以腦補(bǔ)一下初學(xué)者自己去選第三方包!
編程簡單
初學(xué)者拿個php寫個面向過程的腳本,只需要查查API就可以了,30分鐘搞定;能快速搞定一個事情,能讓人產(chǎn)生成就感,這個非常重要;至于面向?qū)ο竺矗竺媛龑W(xué)也不遲呀。
C++和Java的面向?qū)ο髮τ诔鯇W(xué)者來說簡直就是噩夢,對象都沒有你跟我談面向?qū)ο??
如果用C或者C++寫面向過程呢? 嗯,除非你寫hello world,否則請先好好看看《UNIX環(huán)境高級編程》《Linux系統(tǒng)編程》。不懂操作系統(tǒng),你就別想寫C和C++程序,到一邊寫hello world或者冒泡鏈表這類簡單和數(shù)據(jù)結(jié)構(gòu)玩去吧 :)
并發(fā)和內(nèi)存管理簡單
(注:以下經(jīng)驗(yàn)來源于PHP 5.3)
并發(fā):nginx + php-fpm,完美的解決了大部分的并發(fā)問題,程序員只要關(guān)注寫業(yè)務(wù)邏輯即可,PHP中要用線程或者進(jìn)程,要么是很特殊的情況,要么是閑的蛋疼;
Java 和 C++ ?寫并發(fā)寫的吐血,線程、鎖、可見性、異步IO、Reactor模式......搞清楚這一堆你才能玩,一不小心出個問題都不知道怎么查。
內(nèi)存管理:JVM的垃圾回收沒問題一切都好,有問題定位和調(diào)優(yōu)就蛋疼了,平均一年有3 ~ 5次搞這個,24G內(nèi)存怎么dump?dump后怎么從生產(chǎn)服務(wù)器傳到開發(fā)服務(wù)器?傳下來后用MAT打開耗費(fèi)3個小時怎么辦?。。。不要問我,我也不知道怎么辦!
C和C++ ?碰上內(nèi)存問題你就死菜了:1年都定位不出來,然后只能另外寫個腳本定時每月重啟,這樣的事情我不會告訴你是在哪家公司遇到的,因?yàn)槲遗卤淮颍?br/>而我們的PHP業(yè)務(wù)運(yùn)行了3年,內(nèi)存泄漏內(nèi)存爆掉都發(fā)生過,很容易就定位出來了,但從來沒有說要調(diào)優(yōu)。
但寫好PHP并不容易,事實(shí)上用PHP把業(yè)務(wù)寫完很容易,但用PHP把業(yè)務(wù)寫好的話,需要非常扎實(shí)的基本功,要求寫代碼的人邏輯非常嚴(yán)謹(jǐn):
1)變量名本來是report,結(jié)果寫成了reprot,運(yùn)行OK,結(jié)果就是不對,面對一屏花花綠綠的代碼,你要是能一眼看出那就是天才! 2)==和===,不說了,新手100%必中,高手80%踩中! 3)isset vs empty,和上一個類似
你以為這幾個問題看起來都是小問題?這些問題原理很簡單,但是導(dǎo)致的業(yè)務(wù)問題就千奇百怪了:有的用戶正確有的用戶不正確,有的用戶早上正確但下午不正確,有的用戶用Chrome正確但用Firefox就不正確!
定位出來問題后,要么你想打自己三個耳光,要么你想打?qū)懘a的三個耳光!
所以我認(rèn)為PHP是最快上手的語言,但PHP同時也是對嚴(yán)謹(jǐn)性要求很高的語言!當(dāng)然,對初學(xué)者來說,PHP確實(shí)是世界上最好的語言 !
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com